+ -
当前位置:首页 → 问答吧 → 差异备份及其恢复的问题。

差异备份及其恢复的问题。

时间:2011-12-19

来源:互联网

A机器对一数据库做完整备份后,定期做增量备份。
B机器将最初的完整备份进行完全恢复,并选择NORECOVERY。之后对增量备份进行还原。因为每次对增量备份还原后要求使用数据库,所以用了RECOVERY。但问题来了,难道我每一次做增量备份的还原操作时,都要进行一次完整备份的完全恢复吗?
有什么办法可以让数据库的状态变成NORECOVERY,那么我就可以直接做增量备份的还原了。

各位有什么高见,不妨赐教,谢谢了。

作者: wangl   发布时间: 2011-12-19

先确认B机器使用该数据库是只读取还是会写入的?

作者: ap0405140   发布时间: 2011-12-19

增量备份需要最近一次的完整备份的 这个木有办法。

作者: fredrickhu   发布时间: 2011-12-19

B机器应该还原成一个只读库就可以了 .这个库都是从A的备份里还原的.

作者: kingtiy   发布时间: 2011-12-19

用stand by模式.具体可以去查下资料

作者: kingtiy   发布时间: 2011-12-19

谢谢楼上各位。如果确定B机器的数据库是只读的,就可以不用做完全恢复而直接做增量备份的恢复吗?

另外“kingtiy”兄提到了standby模式,我也看了些帮助,但是在备份日志时提示大概意思就是简单模式下不能这样做的一个错误。各位,只读和standby模式你们做过吗?

我感觉每次做完全备份的恢复需要太长时间了,另外我担心天天做这样的备份,sqlserver占用的内存也是越来越大。我打算在做完完全恢复和增量恢复后,重启下sqlserver的服务,以降低sqlserver占用的资源。
你们解决我这种情况时,都是怎么做的呢?

作者: wangl   发布时间: 2011-12-19

如果确定B机器的数据库是只读的,就可以不用做完全恢复而直接做增量备份的恢复吗?
SQL code

-- 用standby参数
restore database 数据库名 from disk='[差异备份文件]' 
with replace,standby='[临时文件]'

-- 完成后就可以查询,只读的.
select * from [数据库名].dbo.[表名]

作者: ap0405140   发布时间: 2011-12-19