【问题标题】:Log Shipping vs Replciation Vs Mirroring in SQL server 2012SQL Server 2012 中的日志传送与复制与镜像
【发布时间】:2015-02-23 22:24:02
【问题描述】:

我有一个 SQL Server 2012 数据库,目前用作事务数据库和报告数据库。应用程序读取/写入同一个数据库,并且报告也针对同一个数据库生成。

由于一些性能问题,我决定维护数据库的两个副本。一个是事务数据库,应用程序将访问它。另一个数据库将是事务数据库的精确副本,并且仅供报告服务使用。

以下是要求:

  1. 报告数据库应与事务数据库每隔一小时同步一次。也就是说,报告数据库的陈旧数据最长可达 1 小时。

  2. 必须是只读数据库。

  3. 主要意图不是恢复或可用性。

我不确定哪种策略(事务性日志传送、镜像或复制)最适合我的情况。另外,如果我更频繁地执行同步操作(比如每 10 分钟一次),是否会对事务数据库或报告服务产生任何影响?

谢谢

【问题讨论】:

  • 查看 AlwaysOn 技术 - 它主要用于高可用性,但它适用于也可用于报告的数据库的 副本等等

标签: sql-server-2012 transactional-replication database-mirroring log-shipping


【解决方案1】:

我强烈建议您使用处于只读状态的备用数据库。并且每 15 分钟你的 sqlserveragent 有一个预定的作业:a) 在主数据库中生成一个新的 .trn 日志文件,并且 b) 将它恢复到备用文件(你的报告数据库)。唯一的问题是:使用此技术,您的会话将在代理恢复 .trn 日志文件时断开连接。但是,如果您可以停止恢复作业,运行您的报告,然后重新激活它,就没有问题。似乎正是您所需要的。或者,如果您的报告运行速度很快,可能不会断开连接……如果我没有错,还可以将还原作业配置为等待打开的会话完成或关闭它。如果您没有找到,我可以明天为您检查最后一个疑问..

一旦它在同一个 sql server 实例中运行,您就不必担心额外的许可...

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-06
  • 1970-01-01
  • 1970-01-01
  • 2010-09-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多