我有两个表,其中表A中的主键被引用为表B中的外键。我想知道将这两个表从一个Oracle DB迁移到另一个Oracle DB的方法。如果适用,请告诉我们流程和任何假设。
答案 0 :(得分:2)
在没有索引或约束的情况下在新数据库上创建空表。
通过并行的nologging链接复制数据。
http://www.bobbydurrettdba.com/2012/06/21/fast-way-to-copy-data-into-a-table/
如果表被分区,我会一次做一个分区。
创建并行8 nologging索引。
将索引更改为源中的任何内容(可能是noparallel日志记录)。
创建外键约束enable novalidate。
答案 1 :(得分:0)
通常expdp
/ impdp
( export & import )为数据库之间的数据传输执行操作。
对于您的特殊情况,只需迁移这两个表,就足以将相关的外键 DEFERRABLE INITIALLY DEFERRED
设为:
ALTER TABLE TableB ALTER CONSTRAINT fk_tabB_A_col1
DEFERRABLE INITIALLY DEFERRED;
除非您在迁移结束前发出提交,否则不会产生任何问题,前提是数据是一致的。