我需要创建一个项目,其中有两个本地和远程数据库。远程数据库需要每天与本地数据库同步,反映本地数据库中所做的更改。我正在使用JAVA。数据库是ORACLE。我有 JAVA/JPA 代码,可以对本地数据库执行 CRUD 操作。如何将更改同步到远程数据库。

有帮助吗?

解决方案

我不会在 Java 中执行此操作,而是寻找本机 Oracle 数据库同步机制/工具。这会

  • 更快地实施
  • 更稳健
  • 更快的复制 事件
  • 更多 '正确的'

其他提示

请查看一些同步产品。我工作的Sybase的SQL Anywhere就是这样一个产品。您可以获得可用于探索选项的开发人员/评估副本。我相信Oracle也有类似的东西。

基本思想是能够跟踪中央数据库中发生的变化。这通常通过为每行保留时间戳来完成。在同步期间,远程数据库提供上次同步时间,服务器向其发送自此以后已更改的所有行。请注意,已在中央数据库中删除的行将需要一些特殊处理,以确保它们从远程数据库中删除。

真正的双向同步要复杂得多。您还需要将更改从远程数据库上载到中央,并且还必须在远程和中央数据库中以不兼容的方式更改同一行的情况下实施一些冲突解决策略。

一般问题太复杂了,不能在这里解释,但我希望我能够提供一些有用的指示。

问题在于,您所要求的范围可以从中等难度(对于简单而不是非常强大的系统)到非常复杂的产品,这可以使小团队在一年内忙碌,具体取决于要求。

这就是为什么其他答案说“找到另一种方式”的原因。 (基本上)

如果你必须为课堂作业或其他事情做这件事,那么这是可能的,但它可能不会快速,健壮或容易。

你需要两侧的服务器软件,一种将未知表转换为可以通过网络传输的数据的方法(以及足够的元数据,以便在另一方重新创建它),你可能想要跟踪数据库更改(可能带有标志或时间戳),这样您就不必每次都发送每条记录。

这是一个很难解决的问题,我们无法提供太多帮助。如果我不想为客户这样做,我会至少引用他一年的工作时间,以使其更加可靠。

祝你好运

Oracle具有复杂的复制功能,可以同步数据库。 了解更多信息。

从您的评论中看来,您正在使用Oracle Lite:这支持复制,其中包含 Lite文档

从未使用它,但 http://symmetricds.codehaus.org/ 可能有用

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top