Java 嵌入式数据库到独立数据库
Posted
技术标签:
【中文标题】Java 嵌入式数据库到独立数据库【英文标题】:Java Embedded Database to Standalone Database 【发布时间】:2017-05-29 06:54:04 【问题描述】:我正在开发 java 项目。它是一个桌面应用程序(金融应用程序)。
我想在用户离线时将所有数据保存在嵌入式数据库(H2 数据库)中,当用户在线或单击某个按钮时,将所有新数据保存在独立数据库(My SQL 服务器)服务器上。 现在我有点迷失了这种情况。 有人能描述一下这应该怎么做吗?或者这可能吗?
【问题讨论】:
就是想明白,比如离线是什么意思。是您的后端服务器已关闭还是您的数据库服务已关闭。您能否进一步详细说明以准确回答您的问题? 这不是网络应用。这是 PC 应用。所以离线意味着用户无法连接到互联网。 【参考方案1】:基于假设,因为您的问题似乎指向低于要求,
-
你有本地 H2 数据库
mysql 可能在其他网络上。
如果您在应用程序上保存一些数据,则转到 h2 数据库
如果您连接到 Internet,则数据应转到与运行应用程序的 h2 本地数据库不同的主机上的 mysql 数据库。
解决方案:
您需要添加复制工具,将数据从一个数据库无缝复制到另一个数据库。
请参考其中一个不错的工具:https://www.symmetricds.org/
如果您有任何其他要求,请告诉我。也请在提出问题时提供足够的细节。谢谢。
【讨论】:
是的,这正是我的意思,但 h2 数据库不是服务器基础数据库,它是一个嵌入式数据库(就像 sqlite) 确实如此。已在其中一个项目中完成了 sqlite 到 sqlite 的复制。请参阅 symmetricds 支持的数据库:symmetricds.org/doc/3.0/html/databases.html 不,我没用过【参考方案2】:使用复制器工具将数据从 H2 DB 复制到 Mysql DB 是一种方法。
实现相同目的的其他方法不是在客户端机器上创建一个沉重的内存数据库实例,而是您可以在客户端机器上某个位置的文件中写入相同的数据,并编写一个调度程序来检查心跳套接字,如果 ping 到您的服务器成功,您可以读取文件并将数据上传到您的实际数据库服务器。此外,编写自己的调度程序和数据上传程序将为您提供更多控制权。
任何复制器工具的其他问题是数据类型兼容性。
如果你想继续使用任何复制工具 - 你可以看看 Tungsten Replicator - https://docs.continuent.com/tungsten-replicator-4.0/deployment-oracle-fromoracle.html
【讨论】:
以上是关于Java 嵌入式数据库到独立数据库的主要内容,如果未能解决你的问题,请参考以下文章
stm32 嵌入式开发 中ADC独立多通道DMA传输数据实验总结