镜像数据库上的事务日志维护

Jer*_*und 10 sql-server-2008 sql-server mirroring transaction-log

SQL Server 版本:2008 R2 Enterprise SP2

我正在尝试处理我们的 SQL Server 维护,但我遇到了一些我认为不正确的事情。我们有一个带有 3 个数据库的单个生产实例,每个数据库都异地镜像到一个 DR 实例。

在查看 DR 实例时,我注意到 LDF 文件很大,对于频繁使用的数据库超过 35GB。

我知道这可能是由于镜像数据库处于完全恢复模式并且日志从未备份过,它们只会继续增长,直到驱动器空间耗尽。

我们在主体数据库上做日志备份,我的问题是在镜像上做日志备份有什么问题?

在进行日志备份之前,必须至少完成一次来自镜像的完整数据库备份,在这种情况下,是否需要使用特殊选项,因为它是镜像?

这也是MIRROR数据库上的事务日志维护建议。

感谢您提供任何意见

Tho*_*ger 5

我们在主体数据库上做日志备份,我的问题是在镜像上做日志备份有什么问题?

不能在镜像数据库上做日志备份。

在进行日志备份之前,必须至少完成一次来自镜像的完整数据库备份,在这种情况下,是否需要使用特殊选项,因为它是镜像?

您也不能对镜像数据库进行完整的数据库备份。

以这个为例:我有Server1哪些包含主体数据库AdventureWorks2012,我有Server2哪些包含镜像。下面是我尝试在镜像数据库上运行备份时发生的情况(在Server2):

use master;
go

backup database AdventureWorks2012
to disk = 'c:\sqlserver\AW_mirror.bak';
go
Run Code Online (Sandbox Code Playgroud)

消息 954,级别 14,状态 1,第 2 行
无法打开数据库“AdventureWorks2012”。它充当镜像数据库
消息 3013,级别 16,状态 1,第 2 行
BACKUP DATABASE 异常终止。

backup log AdventureWorks2012
to disk = 'c:\sqlserver\AW_mirror.trn';
go
Run Code Online (Sandbox Code Playgroud)

消息 954,级别 14,状态 1,第 1 行
无法打开数据库“AdventureWorks2012”。它充当镜像数据库
消息 3013,级别 16,状态 1,第 1 行
BACKUP LOG 异常终止。

看一看Robert Davis 的数据库镜像常见问题解答。关于这个操作和镜像数据库事务日志维护,我引用他的话:

在主体上备份日志时,虚拟日志文件(日志文件中的各个单元)被标记为可重写。相同的 VLF 在镜像日志文件中也被标记为可重写。VLF 状态反映在数据库上

所以你有它。如果您在主体上有事务日志备份,那么类似的日志重用行为将被镜像到其合作伙伴数据库。