【问题标题】:Database Replication after Data Load数据加载后的数据库复制
【发布时间】:2017-04-14 21:48:11
【问题描述】:
我正在尝试了解数据库复制(SQL Server 或 Golden Gate)对于每晚完全重新填充源数据库的情况的影响。澄清一下,所有现有的表都会被删除,然后使用相同名称的新表以及所有数据重新加载数据库。
根据我的理解,即复制使用事务日志...我假设它还会重复删除表的过程,而不是识别差异并仅添加新数据。对吗?
【问题讨论】:
标签:
sql
sql-server
database-replication
oracle-golden-gate
【解决方案1】:
您可以使用 OracleGoldenGate 设置复制,以便它执行您希望它执行的操作。
- 可以复制 TRUNCATE TABLE 命令,也可以忽略它
- 源表的填充(INSERT/批量操作)可以被复制或忽略
- 如果目标上已经存在一行(意味着存在具有相同 PK 的行)并且您在源上插入它,您可以更新目标或删除旧目标并插入新目标,或者忽略它
数据库复制基于重做(事务)日志。只有记录在源数据库上的特定事件才能被复制。但是整个复制引擎可以在复制更改时进行一些额外的转换。