当复制不是选项时,拥有数据库的实时副本的最佳解决方案

时间:2013-11-27 02:34:46

标签: sql-server sql-server-2008-r2 database-replication log-shipping

最近,我不得不实现事务复制,以便在另一台服务器上拥有该数据库的实时副本,以便进行报告。在配置复制时,我意识到很多表都没有主键,所以我无法发布我想要的所有表。

第二个选项是实现合并复制,但是会为所有表添加GUID列。由于它是供应商应用程序的数据库,因此供应商警告我们不要“触摸”数据库结构,因为数据库结构的任何更改都可能导致其应用程序中断。因此,合并复制不再是一种选择。

在这种情况下,我一直在为其他可用选项做一些研究;我唯一能找到的就是Log Shipping。我知道它会使我的数据库处于只读模式,但(据我所知),因为这是我留下的唯一选项,它将严格用于报告目的,我认为我可以忍受这个。

有人可以建议更好的解决方案吗?或者Log Shipping是我唯一的选择吗?

它是SQL Server 2008 R2 64位数据中心版。

1 个答案:

答案 0 :(得分:2)

您的其他选择是:

  1. 数据库镜像,并使用快照进行只读操作。管理快照可能会很痛苦。

  2. 升级到SQL Server 2012,并在可用性组中使用可读辅助节点。这可能是钱包里的痛苦。

  3. 你提到了日志传送,但根据你的后续评论我不认为很清楚,每次你将日志恢复到日志发送的副本时,你需要踢出所有可能正在运行的用户报告。这是因为您需要对数据库进行独占访问才能还原日志。这是“你得到你付出的代价”的另一种情况 - 如果你愿意,你可以登录到Express实例(如果你的数据库支持它),但这不是一个完全无懈可击的解决方案。

相关问题