我们有两台 SQL 2005 机器。一个用于生产数据,另一个用于运行查询/报告。每天晚上,生产机器将其数据库转储(备份)到磁盘,而另一台则恢复它。这称为 D-1 过程。
我认为必须有一种更有效的方法来做到这一点,因为 SQL 2005 有多种形式的复制。一些要求:
1)不需要即时复制,可能会有(一些)延迟
2)所有更改(包括模式、数据、约束、索引)都需要复制,无需人工干预
3) 仅用于单个数据库
4) 如果需要,可以使用第三台服务器
5)服务器之间有高带宽(千兆以太网)可用
6) 没有可用的共享存储 (SAN)
什么是这种日常备份/恢复例程的好选择?谢谢!
最好的选择是日志传送。日志传送也基于备份/恢复,但在完整数据库备份的初始种子之后,通过应用主站点的日志备份来维护报告站点。日志传送很好,因为:
缺点是每次恢复日志时报告站点都会中断,在恢复期间所有用户都被踢出。
因此,如果您有一个典型的 30 分钟日志备份间隔,那么报告站点总是最多 30 + X 分钟(X 是复制文件和恢复文件所需的时间,通常非常小),并且用户每 30 分钟断开一次连接很短的时间。
另一种选择是数据库镜像。使用 DBM,报告站点会不断更新,但缺点是镜像数据库处于脱机状态。必须从定期更新的数据库快照运行报告。与日志传送不同,DBM 也会影响主站点。用于异地报告的 DBM 解决方案的一大优势在于,一旦部署,它也可以用作高可用性/灾难恢复解决方案。
有些人也使用事务复制,但我不是该技术的忠实粉丝。虽然很容易部署,但它在高负载时速度很慢,并且容易遇到难以排除和诊断的问题。此外,复制并不完全复制数据库,而是在分发数据库中维护已发布文章的副本(即选定的表和索引),并且架构修改需要仔细规划和部署。通过日志传送和镜像数据库架构更改,只需复制即可,没有任何问题。