Centos7下Oracle 11g r2 本地/远程 用exp/imp命令快速导入导出数据 实践笔记

时间:2022-07-24
本文章向大家介绍Centos7下Oracle 11g r2 本地/远程 用exp/imp命令快速导入导出数据 实践笔记,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

oracle导入导出不像mysql那么方便,这边记录下oracle本地/远程导入导出(imp/exp)实践过程

【用 exp 数 据 导 出】:

1. 将数据库TEST完全导出,用户名system 密码manager 导出到/usr/local/oracleData/daochu.dmp中

导出本地数据库

exp system/manager@TEST file=/usr/local/oracleData/daochu.dmp full=y

导出远程数据库

exp system/manager@10.10.10.12/TEST file=/usr/local/oracleData/daochu.dmp full=y

2.将数据库中system用户与sys用户的表 导出到/usr/local/oracleData/daochu.dmp中

导出本地数据库

exp system/manager@TEST file=/usr/local/oracleData/daochu.dmp owner=(system,sys)

导出远程数据库

exp system/manager@10.10.10.12/TEST file=/usr/local/oracleData/daochu.dmp owner=(system,sys)

3 将数据库中的表table1 、table2 导出到/usr/local/oracleData/daochu.dmp中

导出本地数据库

exp system/manager@TEST file=/usr/local/oracleData/daochu.dmp tables=(table1,table2)

导出远程数据库

exp system/manager@10.10.10.12/TEST file=/usr/local/oracleData/daochu.dmp tables=(table1,table2)

【用 imp 数 据 导 入】:

1.将/usr/local/oracleData/daochu.dmp 中的数据完全导入 TEST数据库中

导入本地数据库

imp system/manager@TEST  file=/usr/local/oracleData/daochu.dmp  ignore=y

导入远程数据库

imp system/manager@10.10.10.12/TEST file=/usr/local/oracleData/daochu.dmp  ignore=y

2.将/usr/local/oracleData/daochu.dmp数据库中system用户中的table1和table2导入到TEST数据库的system用户中的table1和table2

fromuser=源库中的用户名 touser=目标库中的用户名 换句话说 :源库中的用户名导入到目标库中的用户名

导入本地数据库

imp system/manager@TEST file=/usr/local/oracleData/daochu.dmp fromuser=system  touser=system tables=(table1,table2) ignore=y

导入远程数据库

imp system/manager@@10.10.10.12/TEST file=/usr/local/oracleData/daochu.dmp fromuser=system  touser=system tables=(table1,table2) ignore=y

补从(2020-07-23线上oracle服务迁移)

数据导出:

1 将数据库TEST整库导出,用户名system密码manager 导出到d:prod2020-07-23FULL.dmp中

exp system/manager@TEST file=d:prod2020-07-23FULL.dmp full=y

full=y 表示全库导出。full总共有2个可选项yes(y)/no(n),缺省情况下full=no,这时只会将该用户下的对象导出,也就是说下面的代码只会把system用户下的表导出

exp system/manager@TEST file=d:prod2020-07-2SYSTEM.dmp
exp system/manager@TEST file=d:prod2020-07-23SYSTEM.dmp full=n

2 指定aa用户与bb用户的表导出,管理员用户system密码manager 导出到d:prod2020-07-23AA_BB.dmp中

exp system/manager@TEST  file=d:prod2020-07-23AA_BB.dmp owner=(aa,bb)

数据导入:

1 将d:prod2020-07-2SYSTEM.dmp中的数据整库导入 imp system/manager@TEST file=file=d:prod2020-07-23FULL.dmp full=y

2 将d:prod2020-07-2SYSTEM.dmp中的数据按用户名导入TEST数据库中。

   imp system/manager@TEST file=d:prod2020-07-2SYSTEM.dmp
 
   imp  system/manager@TEST file=d:prod2020-07-2SYSTEM.dmp fromuser= system touser= system

其中fromuser= system为.dmp文件里的对象的原先的owner, touser= system 为作为导入的对象的新的Owner

忽略/插入数据:

imp system/manager@TEST file=d:prod2020-07-2SYSTEM.dmp ignore=y

其中ignore=y告诉imp.exe把数据直接插入到相应对象(并且如果导入的对象里面有其他的对象,如约束,索引等,会在数据插入后被创建)。

3 将d:prod2020-07-2SYSTEM.dmp中的表tb_operator 导入

imp system/manager@TEST file=d:prod2020-07-2SYSTEM.dmp  tables=(tb_operator)

只加载结构,不加载数据,如果只要表的结构等定义(约束,触发器),而不要里面的数据,可以加上参数rows=N