用于还原、恢复和管理备份的 RESTORE 语句 from msdn

语句  说明  
RESTORE (Transact
-SQL)
 说明 RESTORE DATABASE 和 RESTORE LOG Transact
-SQL 语句,这些语句用于从使用 BACKUP 命令创建的备份还原和恢复数据库。RESTORE DATABASE 可用于任何恢复模式下的数据库。RESTORE LOG 仅用于完全恢复模式和大容量日志记录恢复模式。RESTORE DATABASE 也可用于将数据库恢复为数据库快照。
 
RESTORE 参数 (Transact
-SQL)
 介绍 RESTORE 语句和关联辅助语句集的“Syntax”部分说明的参数:RESTORE FILELISTONLY、RESTORE HEADERONLY、RESTORE LABELONLY、RESTORE REWINDONLY 和 RESTORE VERIFYONLY。大多数参数都仅由这六个语句中的一部分支持。每个参数的说明中都指示了相应的支持信息。
 
RESTORE FILELISTONLY (Transact
-SQL)
 说明 RESTORE FILELISTONLY Transact
-SQL 语句,该语句用于返回一个结果集,其中包括备份集中包含的一组数据库和日志文件。
 
RESTORE HEADERONLY (Transact
-SQL)
 说明 RESTORE HEADERONLY Transact
-SQL 语句,该语句用于返回一个结果集,其中包含特定备份设备上所有备份集的所有备份标头信息。
 
RESTORE LABELONLY (Transact
-SQL)
 说明 RESTORE LABELONLY Transact
-SQL 语句,该语句用于返回一个结果集,其中包含有关给定备份设备标识的备份媒体的信息。 
 
RESTORE REWINDONLY (Transact
-SQL)
 说明 RESTORE REWINDONLY Transact
-SQL 语句,该语句用于倒带和关闭由 NOREWIND 选项执行 BACKUP 或 RESTORE 语句而使其保持打开的磁盘设备。
 
RESTORE VERIFYONLY (Transact
-SQL)
 说明 RESTORE VERIFYONLY Transact
-SQL 语句,该语句用于验证但不还原备份,并检查备份集是否已完成以及整个备份是否可读;不会尝试验证数据的结构。 
 



多家族媒体集  
  添加多个备份文件将数据库备份分布到多个文件中,这多个文件的整体称为一个“多家族媒体集”。一旦形成一个多家族媒体集,就必须一直作为一个整体来使用,不允许对其中某个文件进行操作,也不允许其他文件加入到这个多家族媒体集中来。  
   
  在还原的时候如果只提供一个文件,将会出现:系统上有两个家族成员,系统现在只有一个   等提示  
   
  原因:  
  在备份的时候将数据库备份到2个物理文件,而你还原的时候只提供一个文件,因此会出现如此提示。  
   
  一、可以通过  
  restore   labelonly   from   disk='备份件文的物理路径'  
  查看该备份的信息,以下是返回的片段:  
  ------------------------------------------------------------------------  
  MediaSetId                                                           FamilyCount     FamilySequenceNumber  
  {C39F6B6E-9C18-4CA2-8E8A-AC6DDAC462F2} 2         1  
  -----------------------------------------------------------------------  
  FamilyCount表示家族成员的数量,可以看出,上例家族成员数量为2,而该备份文件的FamilySequenceNumber(顺序)为1  
   
  二、获取其他家族成员的信息:  
   
  use   msdb  
  go  
  select   physical_device_name   from   backupmediafamily   where   media_set_id   =(select   media_set_id   from   backupmediafamily   where   physical_device_name='备份件文的物理路径')  
   
  通过以上语句可以获取该备份家族所有成员的信息,以下是返回结果的例子  
  -----------------------------  
  physical_device_name      
                                     
  F:\backup\test_a.bak  
  F:\backup\test_b.bak  
  ---------------------------  


--下面是对这个问题的测试     
    
  --1.创建测试的数据库  
  create   database   test  
  go  
   
  --2.备份数据库 
  backup   database   test   to   disk='c:\a1.bak',disk='c:\a2.bak'   with   init  
  go  
   
  --3.删除测试的数据库  
  drop   database   test  
  go  
   
  --4.恢复数据库(第一次,只提供一个备份文件)  
  restore   database   test   from   disk='c:\a1.bak'  
  go  
   
  --5.查询是否恢复了  
  select   *   from   master..sysdatabases   where   name='test'  
  go  
   
  --上面的恢复会出错,也看不到恢复的数据库.  
  --6.下面是正确的恢复方法  
  restore   database   test   from   disk='c:\a1.bak',disk='c:\a2.bak'  
  go  
   
  --7.查询是否恢复了  
  select   *   from   master..sysdatabases   where   name='test'  
  go  
   
  --8.删除测试数据库  
  drop   database   test  
   
  /*--下面是测试结果  
   
  --1.创建数据库的提示信息:  
   
  CREATE   DATABASE   进程正在磁盘   'test'   上分配   0.88   MB   的空间。  
  CREATE   DATABASE   进程正在磁盘   'test_log'   上分配   0.49   MB   的空间。  
  已处理   112   页,这些页属于数据库   'test'   的文件   'test'(位于文件   1   上)。  
  已处理   1   页,这些页属于数据库   'test'   的文件   'test_log'(位于文件   1   上)。  
   
  --2.备份数据库的提示信息  
   
  BACKUP   DATABASE   操作成功地处理了   113   页,花费了   0.180   秒(5.108   MB/秒)。  
   
   
  --3.删除数据库的提示信息  
   
  正在删除数据库文件   'd:\Program   Files\Microsoft   SQL   Server\MSSQL\data\test_log.LDF'。  
  正在删除数据库文件   'd:\Program   Files\Microsoft   SQL   Server\MSSQL\data\test.mdf'。  
   
   
  --4.不正确恢复的提示信息  
   
  服务器:   消息   3132,级别   16,状态   1,行   3  
  数据库   'test'   的媒体集有   2   个家族成员,但只提供了   1   个。必须提供所有的成员。  
  服务器:   消息   3013,级别   16,状态   1,行   3  
  RESTORE   DATABASE   操作异常终止。  
   
   
  --5.查询是否恢复了的结果  
   
  name                                                                                                                                                                                                                                                           dbid       sid                                                                                                                                                                                                                                                                                                                                                     mode       status             status2           crdate                                                                                                   reserved                                                                                               category         cmptlevel   filename                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   version    
  --------------------------------------------------------------------------------------------------------------------------------   ------   ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------   ------   -----------   -----------   ------------------------------------------------------   ------------------------------------------------------   -----------   ---------   ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------   -------    
   
  (所影响的行数为   0   行)  
   
   
  --6.正确恢复的提示信息  
   
  已处理   112   页,这些页属于数据库   'test'   的文件   'test'(位于文件   1   上)。  
  已处理   1   页,这些页属于数据库   'test'   的文件   'test_log'(位于文件   1   上)。  
  RESTORE   DATABASE   操作成功地处理了   113   页,花费了   0.186   秒(4.943   MB/秒)。  
   
   
  --7.查询是否恢复了的结果  
   
  name                                                                                                                                                                                                                                                           dbid       sid                                                                                                                                                                                                                                                                                                                                                     mode       status             status2           crdate                                                                                                   reserved                                                                                               category         cmptlevel   filename                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   version    
  --------------------------------------------------------------------------------------------------------------------------------   ------   ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------   ------   -----------   -----------   ------------------------------------------------------   ------------------------------------------------------   -----------   ---------   ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------   -------    
  test                                                                                                                                                                                                                                                           11           0x01050000000000051500000007E53B2B54190E2943170A32F4010000                                                                                                                                                                                                                                       0             16                     1090519040     2003-12-31   16:35:03.673                                                                 1900-01-01   00:00:00.000                                                                 0                       80                 d:\Program   Files\Microsoft   SQL   Server\MSSQL\data\test.mdf                                                                                                                                                                                                                                                                                                                                                                                                                 539  
   
  (所影响的行数为   1   行)  
   
   
  --8.删除数据库的提示信息  
   
  正在删除数据库文件   'd:\Program   Files\Microsoft   SQL   Server\MSSQL\data\test_log.LDF'。  
  正在删除数据库文件   'd:\Program   Files\Microsoft   SQL   Server\MSSQL\data\test.mdf'。  
  --*/  

posted on 2008-01-10 09:06  Above The Sky  阅读(1536)  评论(2编辑  收藏  举报

导航