RSS
热门关键字:
当前位置 :| 主页>教你一招>

[推荐]还原数据库的经典做法

来源:不详 作者: 时间:2003-09-04 Tag: 点击:

  说明 所有的示例均假定已执行了完整数据库备份。
  
  
  A. 还原完整数据库
  
  
  说明 MyNwind 数据库仅供举例说明。
  
  
  下例显示还原完整数据库备份。
  
  RESTORE DATABASE MyNwind
   FROM MyNwind_1
  
  B. 还原完整数据库备份和差异备份
  下例还原完整数据库备份后还原差异备份。另外,下例还说明如何还原媒体上的另一个备份集。差异备份追加到包含完整数据库备份的备份设备上。
  
  RESTORE DATABASE MyNwind
   FROM MyNwind_1
   WITH NORECOVERY
  RESTORE DATABASE MyNwind
   FROM MyNwind_1
   WITH FILE = 2
  
  C. 使用 RESTART 语法还原数据库
  下例使用 RESTART 选项重新启动因服务器电源故障而中断的 RESTORE 操作。
  
  -- This database RESTORE halted prematurely due to power failure.
  RESTORE DATABASE MyNwind
   FROM MyNwind_1
  -- Here is the RESTORE RESTART operation.
  RESTORE DATABASE MyNwind
   FROM MyNwind_1 WITH RESTART
  
  D. 还原数据库并移动文件
  下例还原完整数据库和事务日志,并将已还原的数据库移动到 C:\Program Files\Microsoft SQL Server\MSSQL\Data 目录下。
  
  RESTORE DATABASE MyNwind
   FROM MyNwind_1
   WITH NORECOVERY,
   MOVE 'MyNwind' TO 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\NewNwind.mdf',
   MOVE 'MyNwindLog1' TO 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\NewNwind.ldf'
  RESTORE LOG MyNwind
   FROM MyNwindLog1
   WITH RECOVERY
  
  E. 使用 BACKUP 和 RESTORE 创建数据库的复本
  下例显示使用 BACKUP 和 RESTORE 语句创建 Northwind 数据库的复本。MOVE 语句使数据和日志文件还原到指定的位置。RESTORE FILELISTONLY 语句用于确定待还原数据库内的文件数及名称。该数据库的新复本称为 TestDB。有关更多信息,请参见 RESTORE FILELISTONLY。
  
  BACKUP DATABASE Northwind
   TO DISK = 'c:\Northwind.bak'
  RESTORE FILELISTONLY
   FROM DISK = 'c:\Northwind.bak'
  RESTORE DATABASE TestDB
   FROM DISK = 'c:\Northwind.bak'
   WITH MOVE 'Northwind' TO 'c:\test\testdb.mdf',
   MOVE 'Northwind_log' TO 'c:\test\testdb.ldf'
  GO
  
  F. 使用 STOPAT 语法还原到即时点和使用多个设备进行还原
  下例将数据库还原到其在 1998 年 4 月 15 日中午 12 点时的状态,并显示涉及多个日志和多个备份设备的还原操作。
  
  RESTORE DATABASE MyNwind
   FROM MyNwind_1, MyNwind_2
   WITH NORECOVERY
  RESTORE LOG MyNwind
   FROM MyNwindLog1
   WITH NORECOVERY
  RESTORE LOG MyNwind
   FROM MyNwindLog2
   WITH RECOVERY, STOPAT = 'Apr 15, 1998 12:00 AM'
  
  G. 使用 TAPE 语法还原
  下例显示从 TAPE 备份设备还原完整数据库备份。
  
  RESTORE DATABASE MyNwind
   FROM TAPE = '\\.\tape0'
  
  H. 使用 FILE 和 FILEGROUP 语法还原
  下例还原一个包含两个文件、一个文件组和一个事务日志的数据库。
  
  RESTORE DATABASE MyNwind
   FILE = 'MyNwind_data_1',
   FILE = 'MyNwind_data_2',
   FILEGROUP = 'new_customers'
   FROM MyNwind_1
   WITH NORECOVERY
  -- Restore the log backup.
  RESTORE LOG MyNwind
   FROM MyNwindLog1
  
  I. 将事务日志还原到标记处
  下例显示将事务日志还原到名为"RoyaltyUpdate"的标记处。
  
  BEGIN TRANSACTION RoyaltyUpdate
   WITH MARK 'Update royalty values'
  GO
  USE pubs
  GO
  UPDATE roysched
   SET royalty = royalty * 1.10
   WHERE title_id LIKE 'PC%'
  GO
  COMMIT TRANSACTION RoyaltyUpdate
  GO
  --Time passes. Regular database
  --and log backups are taken.
  --An error occurs.
  USE master
  GO
  
  RESTORE DATABASE pubs
  FROM Pubs1
  WITH FILE = 3, NORECOVERY
  GO
  RESTORE LOG pubs
   FROM Pubs1
   WITH FILE = 4,
   STOPATMARK = 'RoyaltyUpdate'
  

最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册