34,590
社区成员
发帖
与我相关
我的任务
分享
--创建测试数据库
CREATE DATABASE Test
GO
--将测试数据库的恢复模式设置为FULL
ALTER DATABASE Test
SET RECOVERY FULL
GO
USE Test
GO
CREATE TABLE tb(id int,col varchar(20))
--完整备份数据库
BACKUP DATABASE Test TO DISK='G:\Test.bak' WITH FORMAT
--对tb表插入第一条记录
INSERT INTO tb(id,col) VALUES(1,'第一次差异备份')
--第一次差异备份
BACKUP DATABASE Test TO DISK='G:\Test_One_Dif.bak' WITH FORMAT,DIFFERENTIAL
--对tb表插入第二条记录
INSERT INTO tb(id,col) VALUES(2,'第二次差异备份')
--第二次差异备份
BACKUP DATABASE Test TO DISK='G:\Test_Two_Dif.bak' WITH FORMAT,DIFFERENTIAL
--OK.现在直接还原.完整备份+第二次差异备份.看看第二条记录在不在.
GO
USE tempdb
--完整备份还原
RESTORE DATABASE Test FROM DISK='G:\Test.bak' WITH REPLACE,NORECOVERY
--第二次差异备份还原
RESTORE DATABASE Test FROM DISK='G:\Test_Two_Dif.bak' WITH RECOVERY
GO
USE Test
GO
SELECT * FROM tb
GO
USE tempdb
GO
--删除测试数据库
DROP DATABASE Test
RESTORE FILELISTONLY
RESTORE DATABASE dbname FROM DISK='c:\MyDB_bak.bak' WITH NORECOVERY
RESTORE DATABASE dbname FROM DISK='c:\MyDB_diff_bak_081218.bak' WITH RECOVERY
restore headeronly from bak2 --从差异备份中恢复
restore database d2 from bak2 with file=1,norecovery
restore database d2 from bak2 with file=5,recovery
RESTORE DATABASE dbname FROM DISK='c:\MyDB_bak.bak' WITH NORECOVERY
RESTORE DATABASE dbname FROM DISK='c:\MyDB_diff_bak_081218.bak' WITH RECOVERY