使用java在不同服务器上同步两个表的有效方法
我们有一个从各种外部系统更新的源表。我要求目标表(在不同的服务器中)与此源表同步。目标表不是源表的精确副本,在将数据插入/更新到目标表之前,必须进行一些数据处理 我想到了以下逻辑 我们每15分钟运行一次java消费代码,它获取创建时间戳的记录,而不是之前更新的记录,并存储在使用java在不同服务器上同步两个表的有效方法,java,sql,database,optimization,jdbc,Java,Sql,Database,Optimization,Jdbc,我们有一个从各种外部系统更新的源表。我要求目标表(在不同的服务器中)与此源表同步。目标表不是源表的精确副本,在将数据插入/更新到目标表之前,必须进行一些数据处理 我想到了以下逻辑 我们每15分钟运行一次java消费代码,它获取创建时间戳的记录,而不是之前更新的记录,并存储在CachedRowSet中。并调用一个以CachedRowSet为参数的存储过程,其中完成数据处理并将数据插入/更新到目标表中 您认为上述方法有效吗?因为我们每次更新都要处理超过一百万条记录 此外,在中的源表中删除记录时,将不
CachedRowSet
中。并调用一个以CachedRowSet
为参数的存储过程,其中完成数据处理并将数据插入/更新到目标表中
您认为上述方法有效吗?因为我们每次更新都要处理超过一百万条记录
此外,在中的源表中删除记录时,将不会使用上述方法复制!您能否建议在这种情况下应该做些什么类似于数据库用于保存点和回滚的技术。
只要源表中有一些变化,例如CRUD。按照目标表所需的格式保留更改脚本。您可以定期将这些更改推送到目标服务器。由于源表由各种外部系统更新,您需要在源表上设置触发器以保存脚本日志。您可能需要从Maatkit工具中签出mk table sync:
你需要小心你桌子周围的差异 以下是一些现有的解决方案:
根据时间戳进行同步时,应确保两台服务器也从同一(NTP)服务器同步时钟。。。不过,我宁愿设置一个主从模式,在远程位置复制数据,根据需要进行处理(存储成本低廉,您可以将所有同步问题留给数据库本身),然后将处理后的数据存储在单独的表中。mk-table-sync是一个Perl实现。用户正在寻找基于JAVA的解决方案,JAVA可以调用命令行脚本。让我选择使用开源工具,或者从头开始重写一个,我想我很想了解这个工具。这比看起来要复杂得多。