如何在oracle中的同一数据库上创建完整模式的副本

时间:2014-11-06 17:27:42

标签: oracle oracle11g oracle10g database-administration

我想在同一个数据库上创建架构的完整副本。最好的技术是什么?

我心里想的很少:

  1. Datapump Over Db link
  2. 网络链接上的IMPDP
  3. EXPDP,然后是IMPDP。
  4. 每种技术的优点和/或缺点是什么?

2 个答案:

答案 0 :(得分:21)

您不需要花哨的网络链接或任何只是expdp / impdp命令。 首先导出所需的架构:

expdp fromUser/fromPword schemas=sourceSchema directory=DUMPDIR dumpfile=dump.dmp logfile=explog.txt

提示:确保该用户能够写入DUMPDIR或您称之为的任何内容

然后使用remap_schema参数重新导入架构:

impdp toUser/toPword directory=DUMPDIR dumpfile=dump.dmp logfile=implog.txt remap_schema=fromUser:toUser

如果你真的想使用network_link参数(因此你不会因某些原因创建转储文件),那么我建议你阅读thisthis
您也可以找到有关您问题的详细信息here

答案 1 :(得分:2)

试试这个:

Copy schema into same database

我测试过并且有效。但你必须创建一个像评论中提到的公共链接。

如果您创建一个重新映射表空间的.par文件,则可以重复使用它。当然有一些搜索替换。

O并且不要忘记将transaform放在.par文件中:

TRANSFORM=oid:n

否则您可能会收到错误。