sqlserver数据库备份与还原脚本

--返回由备份集内包含的数据库和日志文件列表组成的结果集。
--主要获得逻辑文件名
USE master
RESTORE FILELISTONLY
   FROM DISK = 'g:\back.Bak' 
Go
--**********************************
/*
利用bak恢复数据库,强制还原(REPLACE)
STATS = 10 每完成10%显示一条记录
DBTest和DBTest_log是上面g:\back.Bak里的逻辑文件
*/
USE master
RESTORE DATABASE DB 
   FROM DISK = 'g:\back.Bak'
   WITH MOVE 'DBTest' TO 'E:\Program Files\Microsoft SQL Server2005\Data\DB.mdf', 
   MOVE 'DBTest_log' TO 'E:\Program Files\Microsoft SQL Server2005\Data\DB_log.ldf',
STATS = 10, REPLACE
GO
-------------------------------------
/*
备份数据DB 到.bak文件。然后利用此bak文件恢复一个新的数据库DBTest。
*/
USE master
BACKUP DATABASE DB 
  TO DISK = 'g:\DBBack0930.bak' 
RESTORE FILELISTONLY 
  FROM DISK = 'g:\DBBack0930.bak' 
RESTORE DATABASE DBTest 
  FROM DISK = 'g:\DBBack0930.bak' 
  WITH MOVE 'DBTest' TO 'E:\Program Files\Microsoft SQL Server2005\Data\DBTest.mdf', 
  MOVE 'DBTest_log' TO 'E:\Program Files\Microsoft SQL Server2005\Data\DBTest_log.ldf'
GO 
---******************************
--多个数据文件,带NDF文件的数据库
USE master
RESTORE DATABASE VsatTal 
 FROM DISK = 'E:\uploaded\备份库\VsatTal.bak'
 WITH MOVE 'VsatTal_Data' TO 'E:\database\VsatTal_Data.mdf', 
 MOVE 'VsatTal_Data2' TO 'E:\database\VsatTal_Data2.NDF', 
 MOVE 'VsatTal_log' TO 'E:\database\VsatTal_log.ldf',
STATS = 10, REPLACE
GO

--有这样一个情况,我们在其它地方备份的SQL数据库,想在另一个机子上恢复时,会出现:'逻辑文件 'XX' 不是数据库 'XXXX' 的一部分"之类的错误。这时我们最好先查询一下这个备份文件的逻辑文件名,方法如下:
--查看SQL数据库备份的逻辑文件名
restore filelistonly from disk = 'E:\uploaded\备份库\VsatTal.bak'

您可以选择一种方式赞助本站