2017-05-29 90 views
-1

在Java项目中工作,这是一个桌面应用程序(财务应用程序)。将Java嵌入式数据库转换为独立数据库

我想,当用户在脱机保存在嵌入式数据库(H2数据库),当所有的用户数据都在网上或点击一些按钮保存所有的新数据的独立数据库(我的SQL Server)服务器。 现在,我在这种情况下失去了kindda。 有人可以描述这应该怎么做或这是可能的。

+0

只是想了解,像你这是什么意思离线。它是否像您的后端服务器停机或您的数据库服务停机。你能否详细阐述它来准确回答你的问题? – Nik

+0

这不是一个网络app.this是PC application.so离线的意思是,用户没有连接到互联网。 –

回答

1

基于假设你的问题似乎指向下面的要求,

  1. 你有本地H2数据库
  2. MySQL可能是其他网络上。
  3. 如果您节省应用的一些数据,那么转到H2数据库
  4. 一个你连接到互联网上的数据应该去mysql数据库是由H2本地数据库,其中应用程序运行目前存在的主机上。

解决方案:

你需要添加从一个数据库无缝地将数据复制到另一个复制工具。

参考一个漂亮的工具:https://www.symmetricds.org/

让我知道如果您有任何其他要求。提出问题时也请提供足够的细节。谢谢。

+0

是的,这正是我的意思,但H2数据库而不是服务器基础数据库它是一个嵌入式数据库(就像sqlite) –

+0

这是真的。已完成将sqlite复制到sqlite的项目之一。对称数据库支持的对称数据库:https://www.symmetricds.org/doc/3.0/html/databases.html –

+0

不,我没有用过它 –

0

使用复制工具复制从H2数据库到MySQL数据库的数据是单向的。

达到相同的另一种方式是,而不是创建客户端机器上了沉重的内存数据库实例可以在一些位置写入文件客户机上相同的数据,写一个调度程序,它会检查心脏的跳动的套接字,如果ping到您的服务器成功,您可以读取文件并将数据上传到您的实际数据库服务器。另外编写你自己的调度程序和数据上传器将会给你更多的控制。

与任何复制工具,另一个问题是数据类型的兼容性。

不过,如果你想用工具 - 你可以看看钨复制任何复制先走 - https://docs.continuent.com/tungsten-replicator-4.0/deployment-oracle-fromoracle.html