合 无法还原此差异备份,因为该数据库尚未还原到正确的早期状态
Tags: 故障处理MSSQL备份恢复bugMSSQL2000只读数据库
无法还原此差异备份,因为该数据库尚未还原到正确的早期状态。
现象
MSSQL 2000,做了全备,然后做增备,然后做了全备的还原,都没有报错,但是,在还原增备的时候报错:
1 2 3 4 | 消息 3136,级别 16,状态 1,第 2 行 无法还原此差异备份,因为该数据库尚未还原到正确的早期状态。 消息 3013,级别 16,状态 1,第 2 行 RESTORE DATABASE 正在异常终止。 |
原因
数据库是只读的,若是MSSQL 2000,则可以在企业管理器中直接查看:
若源库为只读,则还原全备后数据库也为只读状态,只读的数据库没有必要做增备。
若是只读的数据库,通过如下的SQL语句查看备份信息:
1 | select * from msdb.dbo.backupset b where b.database_name='lhrdb'; |
可以发现,first_lsn和last_lsn都一样,一直没有变化。
若中间还有一次全量备份,破坏了之前的完整备份和差异备份的连接点,那么也会报这个错误。
查询数据库是否为只读状态:
1 2 3 | SELECT name,is_read_only FROM sys.databases WHERE is_read_only=1; |
SQL Server设置数据库为状态为只读
问题描述:
有时候我们为了防止连接数据库再链接插入数据,就可以把库设置为只读模式
灰色后面显示只读说明已经是只读状态了
1、设置为只读状态
1 2 3 4 | USE [master] GO ALTER DATABASE [mgstat] SET READ_ONLY WITH NO_WAIT GO |