remap_tablespace 注意事项(转载)

https://blog.csdn.net/e_wsq/article/details/78374020  转自

https://www.cnblogs.com/xialiaoliao0911/p/7523921.html  关于Linux下使用expdp和impdp命令对Oracle数据库进行导入和导出操作

remap_tableremap_tablespace多组对象转换的话,每组对象之间用逗号隔开

tables多张表时,每张表之间用逗号隔开

 

Remap_tablespace如果需要转换多个表空间,如A1转换成B1A2转换成B1,有如下两种方式

remap_tablespace=A1:B1 remap_tablespace=A2:B1

remap_tablespace= A1:B1, A2:B1

 

Remap_table如果需要转换多个表名

同一个schema的情况下,如A1转换成B1A2转换成B1,有如下两种方式

remap_table=A1:B1 remap_table=A2:B1

remap_table= A1:B1, A2:B1

 

 

impdp关于tablesremap_tables的一些注意事项

1.       expdp时写上tables=()表示导出某些表;impdp时不写tables条件表示导入dumpfile中的所有表,impdp时写tables=()条件表示只导入指定的表,当然如果tables=(dumpfile中的所有表)也就是导入dumpfile中的所有表;且如果用system执行impdp时则tables=()必须加上schema.表名,否则会默认是为system下面的表,会导致报错

 

2.       remap_table如果在同一个schema下进行,虽然不要加remap_schema但是remap_table冒号前面的表名一定要带schema信息,冒号后面的表名一定不能带schema信息

 

3.       remap_table如果在不同schema的情况下进行,如user1.A1转换成user2.B1user1.A2转换成user2.B1必须加remap_schemaremap_table冒号前面的表名一定要带schema信息,冒号后面的表名一定不能带schema信息

有如下两种方式

remap_table= user1.A1:B1 remap_table= user1.A2:B1 remap_schema= user1: user2

remap_table= user1. A1:B1, user1.A2:B1 remap_schema= user1: user2

 

 

schema只导出导入表并重命名的标准方式如下

expdptables写上schema.表名并用逗号隔开

impdp时需要remap_schema, tables可写可不写,remap_table冒号前面的表名加上schema,冒号后面的表名不加schema

expdp system/123456 tables=t01.test101,t01.test102,t01.test103 directory=DATA_PUMP_DIR dumpfile=t011.dbf

 

<span "="" style="word-wrap: break-word; color: rgb(102, 102, 102); font-family: 宋体, Arial; font-size: 10.5pt;"> impdp system/123456  remap_schema=t01:t_101 tables=t01.test101,t01.test102,t01.test103  remap_table=t01.test101:test10101,t01.test102:test102,t01.test103:test103  directory=DATA_PUMP_DIR dumpfile=t011.dbf


一个案例
A服务器导出用户 ESB 的一张分区表 ESB_LOG
expdp system/123456 directory=DATA_PUMP_DIR dumpfile=ESB_LOG.dmp logfile=ESB_LOG.log tables=ESB.ESB_LOG

导入到B服务器的part用户,变成 ESB_LOG (没有加 tables=ESB .ESB_LOG ,其实加不加无所谓,反正 ESB_LOG.dm就是只有一张表 ESB .ESB_LOG )
impdp system/123456 directory=DATA_PUMP_DIR dumpfile=ESB_LOG.dmp logfile=ESB_LOG.log remap_schema=ESB:part remap_tablespace=ESB07:part,ESB08:part,ESB09:part,ESB10:part,ESB11:part,ESB12:part,ESB:part

导入到B服务器的part用户,表名改为 ESB_LOG2 (加了 tables=ESB .ESB_LOG,其实加不加无所谓,反正ESB_LOG.dm就是只有一张表ESB.ESB_LOG )
impdp system/123456 directory=DATA_PUMP_DIR dumpfile=ESB_LOG.dmp logfile=ESB_LOG2.log  tables=ESB .ESB_LOG remap_schema=ESB:part remap_tablespace=ESB07:part,ESB08:part,ESB09:part,ESB10:part,ESB11:part,ESB12:part,ESB:part  remap_table=ESB .ESB _LOG:ESB _LOG2
posted @   RedArmy  阅读(4853)  评论(0编辑  收藏  举报
编辑推荐:
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
点击右上角即可分享
微信分享提示