sql server 2005镜像数据库事务日志文件维护

时间:2010-11-01 10:24:22

标签: sql sql-server-2005 mirroring database-mirroring

好的,对于标准的非镜像数据库,只需将数据库置于简单模式或进行常规备份,即可检查事务日志。我们保持简单,因为我们正在进行SAN快照备份,而且不需要SQL备份。

我们现在要镜像了。我显然不再有简单模式的选择,必须使用完整。这显然会导致大型日志文件和日志备份的需要。我可以处理这个问题,这很好;一个维护计划,它采用日志备份并丢弃任何以前的备份。我意识到这个备份在没有它的前辈的情况下基本没用,但SAN快照正在进行备份。

我的问题是......

a)有没有办法在不创建备份的情况下截断所有已处理行的日志文件? (因为我无论如何都不能使用它们......)

b)维护计划是服务器的本地计划,不会在镜像对中复制。如何在镜像设置上完成?这样,当数据库故障转移时,计划开始在新主体上运行,但是当它的镜像时不会感到沮丧?

由于

2 个答案:

答案 0 :(得分:1)

一个。如果您的服务器足够重要,可以镜像它,为什么进行事务日志备份不够重要? SAN快照只是一个时间点的时间点图像,但它们不能让您在此过程中的不同时间点停止。当您的开发人员截断表时,您希望在该语句之前重播所有日志,然后停在那里。这就是事务日志备份的好处。

B中。设置一个维护计划(甚至更好的,像Ola Hallengren在http://ola.hallengren.com的T-SQL脚本)来备份所有数据库,但是选中这些框以仅备份在线数据库。 (在我的脑海中,不确定这是否是2005年的一个选项 - 可能只是2008年。)这样,你总会得到任何碰巧故障。

当然,请记住,您需要小心清理脚本和复制这些备份文件。如果你在一个共享上有一半的t-log备份而在另一个共享上有一半,那么恢复就更难了。

答案 1 :(得分:0)

a)不,您不能截断作为镜像数据库一部分的日志。备份日志是您的最佳选择。我有几个数据库只需基于HA需求进行镜像设置,但由于各种原因不需要DR。那似乎是你的情况?我真的还是建议保留一段时间的日志备份。没有理由杀死HA策略添加的完美的恢复计划。 :)

b)我自己的解决方案是拥有一个辅助代理作业,该作业根据镜像的状态进行监视。如果发现镜像发生更改,则启用teh镜像实例上的辅助作业,如果可能,将禁用旧主体。如果委托人倒闭而又重新开始工作,那么工作仍然被禁用。作业本身被切换回来的唯一方法是再次发生另一次强制故障转移。