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