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 2017-07-04 17:10  会飞的金鱼  阅读(249)  评论(0)    收藏  举报