Mar*_*les 5 replication oracle oracle-10g duplication minus
我有一个关于我拥有的两个数据库(在 Oracle 10g 中)的问题,我们称它们为 A 和 B。A 有一些信息(在各种表中),我希望 B 从 A 获取一些表的部分副本,并不断检查A 中的更改并在 B 中“同步”它们。
我想问你一些方法、技术或者想法,知道我不能对 A 做任何改变(只是选择,没有触发器)。
我提前感谢您的帮助和耐心(对于可能的编辑)。
附加信息:
感谢您的回答,我不知道它是否相关,但我找到了 MINUS 运算符,尽管我不确定它是否适用于“子表”(选择)。
您的选择相当有限,因为您要求“不断检查...同步”和“不能对 A 进行任何更改”。诸如物化视图日志、dbms_alert、流和备用数据库之类的东西都不在表中。
如果 A 中的表不断更新其所有行,那么(如 Jack Douglas 所说)物化视图将是最容易设置的。在更有可能的情况下,A 中的大多数记录不会时时更改,您可能希望在 B 上设置一个(或多个)包,从 A 中选择以在 B 上根据需要进行合并和删除。这将仅与运行频率保持同步,但鉴于您的要求,它可能是您能做的最好的。
具体来说,您的包应执行以下操作:
如果您想避免多次点击 A 中的表,您可以将整个表插入到 B 上的全局临时表中,然后从那里执行删除/合并。
关于减号:
减号可以告诉您 A 查询中不在 B 中的所有行。通过将其与 B 减去 A 查询合并,您可以获得所有不同的行,但这可能需要更长的时间来处理甚至在添加插入/更新部分之前。如果 A 没有得到更新或删除,那么您可以插入第一个减号的结果,但 aninsert into B...where not exists A...仍然会更快更简单。
| 归档时间: |
|
| 查看次数: |
1661 次 |
| 最近记录: |