.net - 始终保持多个数据库同步

标签 .net oracle sqlite synchronization

我有一个台式电脑 (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/

相关文章:

java - Android - 如何通过文件名获取文件?

sqlite - 如何在 SQLite 中分段更新 blob?

Java/Tomcat与Oracle 10g连接

oracle - 在Oracle APEX中使用BLOB类型列

python - sqlalchemy没有这样的表: user

c# - 在 TLS : The remote server return an error : 234 AUTH TLS OK 上使用 FtpWebRequest 的问题

c# - 使用 .NET 在 mySQL 中保存机器人状态数据

c# - 正则表达式:匹配表达式周围最接近的开闭花括号内的所有内容

c# - 从 ViewModel 在 View 上创建一个自动生成的 DropDownList

sql - 日期在不同服务器上显示不同