sql 备份/还原选项

一、数据库备份还原的选项

    1. SKIP/NOSKIP
    2. INIT/NOINIT
    3. FORMAT
    4. DIFFERENTIAL
    5. UNLOAD/NOUNLOAD
       
SKIP 选项属性能够使得备份集的有效期限以及名字验证失效,该操作通常是用BACKUP语句来执行防止备份集的覆盖。
NOSKIP选项是默认的选项,它在允许覆盖备份集之前通知 BACKUP语句要检查有效期限以及所有备份集的名字。
     
INIT选项是用来覆盖掉备份媒介上的所有数据的。如果媒介有头标的话,该选项是不会覆盖此头标的。
如果已经存在一个尚未过期的备份文件,那么当前的备份操作就会失败。在这种情形下,应该使用SKIP 和INIT的复合操作来覆盖备份设备。
而FORMAT选项属性则是默认的,它将备份资料添加到媒介上已经存在的备份资料的后面。

FORMAT选项属性是用来在所有的文件上写入一个供备份使用的头标(或者是一个磁带卷标)的。因而,使用该选项功能初始化一个备份的媒质。
当你使用FORMAT选项把资料备份到一个磁带设备上的时候,实际上就选择了INIT 和SKIP 选项。
类似地,如果为某个文件设备指定到 FORMAT选项属性的话,INIT 选项实际上也会被暗含选中。

DIFFERENTIAL 选项指定一个差异数据库备份操作。如果该选项被忽略的话,就会执行一个完全数据库备份操作。

只有在备份媒介是一个磁带设备的时候UNLOAD 和 NOUNLOAD 选项属性才是可 以执行的。
UNLOAD 属性是默认的,它指定磁带自动倒带并且在备份工作完成之后自动地从备份设备上卸载磁带的话,就应该使用NOUNLOAD选项属性。

 

二、 日志文件备份选项

     1. NO_TRUNCATE
     2. NO_LOG
     3. TRUNCATE_ONLY

如果你打算恢复事务日志而不用截断它的话,应该使用 NO_TRUNCATE 选项——也就是说,该选项能够不清除日志中已经确认的操作。
在执行了该选项后,SQL Server 把当前数据库中所有活动进程写入到事务日志里面。
因而,NO_TRUNCATE 选项能够让你把数据恢复到数据库操作失败前的状态点处。
       
注意:如果数据库文件被损坏或者丢失了的话就应该使用NO_TRUNCATE 选项。
在那样的情形下,首先恢复数据库备份并且恢复事务日志备份作为修复过程中的最近的一次备份。
和NO_TRUNCATE悬想相对应的是,其他两个选项则删除日志中的非活动部分,而并不为它制作一个备份拷贝。
因而,使用了TRUNCATE_ONLY 和NO_LOG选项的话,你就不用指定设备的列表,这是因为事务日志备份并没有被保存。

TRUNCATE_ONLY选项将会删掉事务日志中的非法部分,而并不为它制作一个制作一个备份的拷贝。
TRUNCATE_ONLY选项是用来节省事务日志文件中的空间(通常是由于包含事务日志的文件或者磁盘满了)。
由于它把那些对于完全恢复来说很重要的日志中的信息删除了,所以在它的后面必须紧跟着一个完全数据库备份。
截断日志操作本身就是一个被记录的操作,并且在TRUNCATE_ONLY选项中,这些操作都会被记录在日志中。
       
NO_LOG选项和TRUNCATE_ONLY选项一样删除掉事务日志里面的非活动部分,和TRUNCATE_ONLY选项不同的是NO_LOG选项截断日志的操作是不会记录在日志中的。
       
注意:在使用了TRUNCATE_ONLY或者NO_LOG选项后应该立刻执行一下完全数据库备份操作,因为你不能恢复那些已经被两个选项所截断的变动了。
       
这三个选项在数据库恢复操作中分别起着不同的效果。要理解在备份操作中的使用三个的哪个选项是非常重要的。
       
 在你最近的一次完全数据库备份操作后,也许会进行了好几次事务日志备份操作。这些备份组成了一个逻辑链,它能够用来把数据库恢复到与上一个事务日志建立前一致的状态上。
这只有在没有由于管理员的活动所产生的“空隙”时才是可能的。如果你使用了TRUNCATE_ONLY或者NO_LOG选项的时候就会产生“空隙”。
因而,只有在使用NO_TRUNCATE选项的时候才会出现合法的事务日志链。
       
然而,有的时候会遇到无法为某个恢复操作得到合法的事务日志链的情形。这样的情形是可能发生的,例如,当你的数据库损坏,并把初始的数据库置于一种失效的状态的时候。
       
在这种情形下,使用TRUNCATE_ONLY或者NO_LOG选项。这些失效状态中的一个是由于事务日志填满引起的。
在该形下,你就可以只使用NO_LOG选项,因为它是不会把任何记录写入到事务日志中的。在这种情形下,即使是截断日志的操作也不会记录到日志中去的。
      
在BACKUPLOG语句中除了这三个选项外,SQL Server 里面还提供了另外一个用来截断事务日志中的非活动部分的特性。
如果你希望在遇到一个检验点的时候自动截断事务日志,可以把系统过程 sp_dboption中的trunc.log on ckpt选项设置为真。
在这种情形下,SQL Server 是不会把数据库的变动保存到事务日志里面的。因而,你不能使用该事务日志作为恢复过程的组成部分。

 

三、 还原选项

     1.RECOVERY/NORECOVERY
     2.STANDBY
     3.REPLACE
     4.PARTIAL
       
ROCOVERY选项指示SQL Server完成任何已经确认的事物并取消任何为确认的失误。RECOVERY选项应用之后,数据库处于一致状态,可供使用。此选项是默认选项。注意:RECOVERY选详尽用于恢复最后的事务日志,或者一个没有后续日志需要应用的完全数据库恢复。

       
用NORECOVERY选项,SQL Server不取消未确认的失误,因为你将应用更多的备份。应用NORECOVERY选项后,数据库不可用。注意:NORECOVERY选项于除最后的事务日志以外的所有的日志的恢复,或者一个差异数据库恢复。

       
STANDBY选项是RECOVERY/NORECOVERY选项的附加可选选项,它用于备用SQL Server。要想存取存储在备用服务器上的数据,你通常需要在一个事务日志恢复后,在恢复数据库。另一方面,如果你想恢复一个备用服务器上的数据库,你不能恢复进程从产平服务器上应用额外的日志。在这种情况下,你要用STANDBY选项允许用户读取备用服务器。另外,你要允许系统对额外的事务日志的恢复。STANDBY选项意味着存在撤销文件,这用于当额外的日志、恢复是取消改动。

       
REPLACE选享用来自一个不同的数据库的悲愤的数据更替店村的数据库。在此情况下,现存数据库首先被销毁,关于数据库中的文件名和数据库名称的不同被忽略。(如果你不用REPLACE选项,SQL Server执行一个安全检查,以保证如果数据库的文件的名称或数据库自身的名称与备份集里的对应不同时,现存数据库不被替换。)

       
PARTIAL选项指定一个部分恢复操作。由于程序和用户错误会影响数据库的独立的部分,所以经常需要仅仅恢复一个数据库对象例如一个表。
 
 

本文出自 “杨金澎” 博客,谢绝转载!

你可能感兴趣的:(sql,备份还原,备份选项,还原选项,备份/还原)