如何同步 MS SQL Server 数据库?有没有什么工具,最好是开源的?
答案1
对于计划和临时数据库同步,您可以使用ApexSQL 差异(用于对象模式同步)和ApexSQL 数据差异(用于记录同步)
它们不能用于实时同步。在我看来,最好使用数据库镜像进行实时同步
答案2
正如其他人所说,SQL Server 2008 中有很多内置方法可以使两台服务器实时或按计划同步。
您应考虑以下几点:
- 两台服务器的距离有多远(即它们之间的带宽和延迟是多少)?
- 这两个数据库有多大?
- 数据变化的频率是多少?变化量是多少?
- 数据实际上是否发生了变化,还是只有新数据添加到现有数据中?
根据答案,您可以选择最适合您需求的方法;除了已经描述的方法(复制和镜像)之外,请记住您还可以做一些其他的事情:
- 大号航运
- 使用集成服务导出/导入数据。
- 备份/恢复。
- 拆卸、制作物理副本、附加。
答案3
您看过内置的镜像功能吗?Technet 有一个简短的描述这里. 主服务器将其事务日志记录发送到辅助服务器,然后辅助服务器重播事务日志。
镜像可以同步或异步设置。
答案4
我有一个博客文章描述如何为非域服务器设置数据库镜像。但是,这并不允许您同时激活两个 SQL Server,要做到这一点,您需要进行某种形式的复制。根据数据的访问方式,如果全部读取,则还不算太糟;如果在一台服务器上读取,在另一台服务器上读取/写入,同样也不算太糟;如果是写入/写入,那么您将经历一些“有趣”的时刻。