日志传送 - RESTORE WITH STANDBY - 在 SQL Server 2012 上不断中断

Men*_*del 11 sql-server sql-server-2012 log-shipping

我们正在使用日志传送并RESTORE WITH STANDBY在 SQL Server 2012 上以只读模式恢复数据库以用于报告目的。但是,在完成一两个日志备份的还原后,日志传送设置不断中断。日志传送仅在运行时中断RESTORE WITH STANDBYRESTORE WITH NORECOVERY不会造成任何问题。

我对此的唯一直觉是主数据库不是那么动态。因此,当没有交易时,这可能会导致RESTORE流程出现问题?

任何想法,已知的修复?

通过运行在两个表上进行大量更新的常规作业,我让它工作了几天。当作业停止运行时,日志传送设置很快失败,无法处理 .trn 文件。我重置了日志传送,并试图通过只做一个小的更新来查看它是否会继续运行,更改表中一个记录的一列的值,无论它仍然失败。

感谢您的所有回复。

PS:摘自我们的日志

02/25/2013 13:00:00,LSRestore_DBDB01-A_BulldogDB,进行中,1,DBREPORTS,LSRestore_DBDB01-A_BulldogDB,日志传送恢复日志作业步骤.,2013-02-25 13:00:12:31无法将日志备份文件“\\dbsan01\DBBackups\LSBackup_BulldogDB\BulldogDB_20130225180000.trn”应用到辅助数据库“BulldogDB”。(Microsoft.SqlServer.Management.LogShipping)***
2013-02-25 13:00:12.31 *** 错误:处理数据库“BulldogDB”的日志时出错。如果可能,从备份中恢复。如果备份不可用,则可能需要重建日志。
恢复期间发生错误,导致数据库“BulldogDB”(8:0) 无法重新启动。诊断恢复错误并修复它们或从已知良好的备份恢复。如果未纠正或预期错误,请联系技术支持。
RESTORE LOG 异常终止。
为文件 1 上的数据库“BulldogDB”文件“BulldogDB”处理了 0 页。
为文件 1.(.Net SqlClient 数据提供程序) 上的数据库 'BulldogDB' 文件 'BulldogDB_log' 处理了 1 页 ***
2013-02-25 13:00:12.32 *** 错误:无法记录历史记录/错误消息。(Microsoft.SqlServer.Management.LogShipping)***
2013-02-25 13:00:12.32 *** 错误:ExecuteNonQuery 需要打开且可用的连接。连接的当前状态是关闭的。(System.Data) ***
2013-02-25 13:00:12.32 跳过辅助数据库“BulldogDB”的日志备份文件“\\dbsan01\DBBackups\LSBackup_BulldogDB\BulldogDB_20130225180000.trn”,因为无法验证该文件。
2013-02-25 13:00:12.32 *** 错误:无法记录历史记录/错误消息。(Microsoft.SqlServer.Management.LogShipping)***
2013-02-25 13:00:12.32 *** 错误:ExecuteNonQuery 需要打开且可用的连接。连接的当前状态是关闭的。(System.Data) ***
2013-02-25 13:00:12.33 *** 错误:恢复数据库访问模式时出错。(Microsoft.SqlServer.Management.LogShipping) ***
2013-02-25 13:00:12.33 *** 错误:ExecuteScalar 需要打开且可用的连接。连接的当前状态是关闭的。(System.Data) ***
2013-02-25 13:00:12.33 *** 错误:无法记录历史记录/错误消息。(Microsoft.SqlServer.Management.LogShipping)***
2013-02-25 13:00:12.33 *** 错误:ExecuteNonQuery 需要打开且可用的连接。连接的当前状态是关闭的。(System.Data) ***
2013-02-25 13:00:12.33 *** 错误:恢复数据库访问模式时出错。(Microsoft.SqlServer.Management.LogShipping) ***
2013-02-25 13:00:12.33 *** 错误:ExecuteScalar 需要打开且可用的连接。连接的当前状态是关闭的。(System.Data) ***
2013-02-25 13:00:12.33 *** 错误:无法记录历史记录/错误消息。(Microsoft.SqlServer.Management.LogShipping)***
2013-02-25 13:00:12.33 *** 错误:ExecuteNonQuery 需要打开且可用的连接。连接的当前状态是关闭的。(System.Data) ***
2013-02-25 13:00:12.33 删除旧的日志备份文件。主数据库:'BulldogDB'
2013-02-25 13:00:12.33 *** 错误:无法记录历史记录/错误消息。(Microsoft.SqlServer.Management.LogShipping)***
2013-02-25 13:00:12.33 *** 错误:ExecuteNonQuery 需要打开且可用的连接。连接的当前状态是关闭的。(System.Data) ***,00:00:12,0,0,,,,,0

小智 4

如果日志备份能够在辅助数据库处于 NORECOVERY 状态时恢复,并且仅在处于 READ-ONLY/STANDBY 状态时才会失败,那么我会假设日志备份本身正常并且没有损坏。

您的报告组件可能具有与数据库的打开连接,因此在恢复日志文件时,由于打开的连接而无法获得与数据库的独占连接。设置日志传送时会有一个选项可以断开任何连接以允许其恢复日志备份。