首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

差异备份及其恢复的有关问题

2012-03-31 
差异备份及其恢复的问题。A机器对一数据库做完整备份后,定期做增量备份。B机器将最初的完整备份进行完全恢复

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

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

[解决办法]
增量备份需要最近一次的完整备份的 这个木有办法。
[解决办法]
B机器应该还原成一个只读库就可以了 .这个库都是从A的备份里还原的.
[解决办法]
测试代码如下,

SQL code
-- 建测试数据库wanglcreate database wangl-- 改为简单恢复模式alter database wangl set recovery simple-- 打开数据库wangluse wangl-- 建测试表wangl001create table wangl001(id int)-- 插入测试数据(1)insert into wangl001(id) values(1)-- 数据库全备份backup database wangl to disk='D:\wangl_full.bak' with format,init-- 插入测试数据(2)insert into wangl001(id) values(2)-- 数据库差异备份backup database wangl to disk='D:\wangl_diff1.bak' with DIFFERENTIAL-- 插入测试数据(3)insert into wangl001(id) values(3)-- 数据库差异备份backup database wangl to disk='D:\wangl_diff2.bak' with DIFFERENTIAL-- 删除数据库wangluse masterdrop database wangl-- 用全备份还原,用standby参数restore database wangl_B from disk='D:\wangl_full.bak' with replace,standby='D:\wangl_temp.trn'-- 可以查询select * from wangl_B.dbo.wangl001id-----------1-- 用差异备份还原restore database wangl_B from disk='D:\wangl_diff1.bak' with standby='D:\wangl_temp.trn'-- 可以查询select * from wangl_B.dbo.wangl001id-----------12-- 继续用差异备份还原restore database wangl_B from disk='D:\wangl_diff2.bak' with standby='D:\wangl_temp.trn'-- 依然可以查询select * from wangl_B.dbo.wangl001id-----------123-- 还原为recovery状态.restore database wangl_B from disk='D:\wangl_diff2.bak' with recovery-- 依然可以查询select * from wangl_B.dbo.wangl001id-----------123 

热点排行