SQL Server 完整、差异和事务日志备份及还原(脚步)
1)完整备份、差异备份和事务日志备份
--完整备份 BACKUP DATABASE TEST TO DISK='E:\BACKUP\TEST_FULL.bak' WITH INIT --差异备份 BACKUP DATABASE TEST TO DISK='E:\BACKUP\TEST_DIFF.bak' WITH INIT,DIFFRENTIAL --事务日志备份 BACKUP LOG TEST TO DISK='E:\BACKUP\TEST_LOG.bak' WITH INIT
2)还原
RESTORE DATABASE TEST_DEV FROM DISK='E:\BACKUP\TEST_FULL.bak' WITH STATS=10, REPLACE, NORECOVERY GO --还原差异备份 RESTORE DATABASE TEST_DEV FROM DISK='E:\BACKUP\TEST_DIFF.bak' WITH STATS=10, NORECOVERY GO --还原日志备份 RESTORE DATABASE TEST_DEV FROM DISK='E:\BACKUP\TEST_LOG.bak' WITH STATS=10, RECOVERY GO
但是还原的时候还是可能出错。如:原有备份数据库的数据文件在G盘,但是还原完整备份时在新的服务器下不存在G盘这个路径,就会报错。可以使用with move 让数据文件保存到新的有效路径下,首先在磁盘下建立这个有效路径。
使用restore filelistonly 命令来查看逻辑文件名(数据文件信息和日志文件信息)
restore filelistonly from disk='e:\TEST_FULL.bak'
还原完整备份
RESTORE DATABASE TEST_DEV FROM DISK='E:\BACKUP\TEST_FULL.bak' WITH MOVE 'TEST' TO 'E:\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\TEST.mdf', MOVE 'TEST_LOG' TO 'E:\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\TEST_LOG.ndf', STATS=10, REPLACE, NORECOVERY GO
with move to:重新制定数据库文件的路径,with move to 数量取决于数据库文件数量。
satas=10:每完成10%显示一条记录。
replace:覆盖现有数据库。
norecovery:不对数据库进行任何操作,不回滚未提交的事务。
posted on
浙公网安备 33010602011771号