我有一个台式电脑 (Windows 7) 网络,这些电脑在地理位置上彼此分开(通过 LAN 连接)。
该网络有一个 Oracle 后端。
我想在每台 PC 上本地安装一个数据库(其中大约 12 台,目前正在考虑 SQLite,但对其他可能性持开放态度)。
我需要确保本地数据库始终保持彼此同步并与 Oracle 数据库保持同步,或者至少只要存在网络连接(网状拓扑)。
同步只涉及一个表。
这个问题有哪些可能有效的解决方案?最好是您之前使用过的东西。
最佳答案
由于我在这方面的知识不多,所以我不确定这是否会完全解决您的问题,但是阅读这个问题我意识到您需要一个数据库复制软件包,所以我想建议您是否可以查看SymmetricDS 我为什么建议这样做? 来自其官方网站的基本介绍。SymmetricDS 是免费使用的开源软件
SymmetricDS is open source software for multi-master database replication, filtered synchronization, or transformation across the network in a heterogeneous environment. It supports multiple subscribers with one direction or bi-directional asynchronous data replication. It uses web and database technologies to replicate tables between relational databases, in near real time if desired. The software was designed to scale for a large number of databases, work across low-bandwidth connections, and withstand periods of network outage.
By using database triggers, SymmetricDS guarantees that data changes are captured and atomicity is preserved. Support for database vendors is provided through a Database Dialect layer, with implementations for MySQL, Oracle, SQL Server, SQL Server Azure, PostgreSQL, DB2, Informix, Interbase, Firebird, HSQLDB, H2, Apache Derby, Greenplum, and SQLite included.
同步可以配置为定期推送数据或拉取数据。 SymmetricDS 允许在两层或多层节点之间进行同步,如以下场景中可能需要的那样:
- 一些区域服务器从总办公室同步 偏远地区
- 数十个销售点 (POS) 注册节点使用嵌入式 与商店服务器同步的数据库
- 使用部门类数据库的数千个商店服务器节点 与区域节点同步
特点
- 数据通道 - 表同步被分组为独立的 channel
- 保证交付 - 同步数据保证到达 目标目的地。如果同步失败,同一批 数据将被重试,直到它成功或手动干预是 采取。所有其他数据同步因失败而停止 仅限 channel 。
- Transaction Aware - 数据更新通过 相同的原子性
- 集中配置 - 所有配置都从 中央注册服务器
- 多个部署选项 - 独立引擎、网络应用程序、 嵌入式软件组件
- 数据过滤和重新路由 - 允许本地化密码和 敏感数据过滤/路由
- HTTP 传输 - 可插入传输默认为表示状态 传输(REST 风格)HTTP 服务
- 有效载荷压缩 - 可选择压缩传输数据
- 通知方案 - 推送(滴流数据)或拉取(滴流轮询 数据)变化
- 对称数据协议(protocol) - 一种易于使用的快速流式数据格式 生成、解析和加载
- 插件 API - 通过扩展和插件添加自定义 积分
- 双向表同步 - 可以同步同一个表 进出主机系统,同时避免更新循环
- 数据库版本控制 - 按版本指定数据同步 目标数据库
- 自动创建数据库 - 可选择允许创建和升级 数据库架构
- 可嵌入 - 小到足以嵌入或引导到另一个 应用程序(即 POS 应用程序)
- 多模式 - 自然支持多数据库模式 通过数据通道的存在
- 主键更新 - 捕获“之前”和“之后”的数据 更改,允许更新主键数据
- 远程管理 - 通过 Java 管理进行管理 扩展 (JMX) 控制台
- 远程数据库管理 - SQL 可以在 通过同步基础设施的远程数据库
- 初始数据加载 - 使用初始或 恢复数据负载
希望我的回答对您有所帮助!
关于.net - 始终保持多个数据库同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28398090/