由于日志问题,镜像数据库的快照失败
Snapshot of the mirrored database fails due to log issue
我们有服务器 A 托管主体数据库和服务器 B 托管其镜像。为了最大限度地减少报告造成的工作量,我们正在服务器 B 上创建镜像数据库的每日快照。多年来,我们 运行 都在做同样的工作,而且工作正常。
我们使用的代码首先删除旧快照(这仍然有效)然后使用查询创建全新快照:
create database [DB_snapshot] on
(name = N'rsdev3',filename = N'd:\snapshot\DB.sqlsnapshot' ) ,
(name = N'indexes',filename = N'd:\snapshot\DB_indexes.sqlsnapshot' )
as snapshot of DB
上面的代码到目前为止运行良好,但今天我们第一次遇到以下错误:
错误信息
Msg 1823, Level 16, State 6, Line 1
A database snapshot cannot be
created because it failed to start.
Msg 1823, Level 16, State 7, Line 1
A database snapshot cannot be created because it failed to start.
Msg 3456, Level 21, State 1, Line 1
Could not redo log record (202011:19306:2), for transaction ID (0:0), on page (1:1823948),
allocation unit 281474979397632, database 'DB_snapshot' (database ID
6). Page: LSN = (201954:220201:1), allocation unit = 281474979397632,
type = 1. Log: OpCode = 4, context 18, PrevPageLSN: (202010:23679:1).
Restore from a backup of the database, or repair the database. Msg
3313, Level 21, State 1, Line 1 During redoing of a logged operation
in database 'DB_snapshot', an error occurred at log record ID
(202011:19306:2). Typically, the specific failure is previously logged
as an error in the Windows Event Log service. Restore the database
from a full backup, or repair the database.
我目视了一下,但没有任何帮助。我担心我最终可能会断开连接然后重新连接镜像,但我宁愿避免这样做,因为现在会很不方便。
你有过类似的经历吗?你知道如何解决这个问题吗?如果有任何提示和建议,我将不胜感激!
如果你们中的任何人想知道是什么导致了这个相当不寻常的问题,请继续阅读。
经过几个小时的监控,我们找到了罪魁祸首。原来,镜像数据库的服务器那天使用量更大。因此,主体上的新事务创建速度快于镜像将它们传输到镜像服务器的速度。一旦工作量减少,主体到镜像的传输速度就会显着增加。未完成的交易被复制,几个小时后一切恢复正常。
我们有服务器 A 托管主体数据库和服务器 B 托管其镜像。为了最大限度地减少报告造成的工作量,我们正在服务器 B 上创建镜像数据库的每日快照。多年来,我们 运行 都在做同样的工作,而且工作正常。
我们使用的代码首先删除旧快照(这仍然有效)然后使用查询创建全新快照:
create database [DB_snapshot] on
(name = N'rsdev3',filename = N'd:\snapshot\DB.sqlsnapshot' ) ,
(name = N'indexes',filename = N'd:\snapshot\DB_indexes.sqlsnapshot' )
as snapshot of DB
上面的代码到目前为止运行良好,但今天我们第一次遇到以下错误:
错误信息
Msg 1823, Level 16, State 6, Line 1 A database snapshot cannot be created because it failed to start. Msg 1823, Level 16, State 7, Line 1 A database snapshot cannot be created because it failed to start. Msg 3456, Level 21, State 1, Line 1 Could not redo log record (202011:19306:2), for transaction ID (0:0), on page (1:1823948), allocation unit 281474979397632, database 'DB_snapshot' (database ID 6). Page: LSN = (201954:220201:1), allocation unit = 281474979397632, type = 1. Log: OpCode = 4, context 18, PrevPageLSN: (202010:23679:1). Restore from a backup of the database, or repair the database. Msg 3313, Level 21, State 1, Line 1 During redoing of a logged operation in database 'DB_snapshot', an error occurred at log record ID (202011:19306:2). Typically, the specific failure is previously logged as an error in the Windows Event Log service. Restore the database from a full backup, or repair the database.
我目视了一下,但没有任何帮助。我担心我最终可能会断开连接然后重新连接镜像,但我宁愿避免这样做,因为现在会很不方便。
你有过类似的经历吗?你知道如何解决这个问题吗?如果有任何提示和建议,我将不胜感激!
如果你们中的任何人想知道是什么导致了这个相当不寻常的问题,请继续阅读。
经过几个小时的监控,我们找到了罪魁祸首。原来,镜像数据库的服务器那天使用量更大。因此,主体上的新事务创建速度快于镜像将它们传输到镜像服务器的速度。一旦工作量减少,主体到镜像的传输速度就会显着增加。未完成的交易被复制,几个小时后一切恢复正常。