如何在数据库损坏时备份事务日志 (Transact-SQL)
本主题说明当数据库损坏时如何备份事务日志。
创建当前活动的事务日志的备份
执行 BACKUP LOG 语句以备份当前活动的事务日志,同时指定:
要备份的事务日志所属的数据库的名称。
事务日志备份将写入的备份设备。
NO_TRUNCATE 子句。
只要事务日志文件是可访问的并且没有损坏,那么即使数据库不可访问,该子句也允许备份事务日志的活动部分。
指定(可选):
INIT 子句,用于覆盖备份媒体,并将备份作为备份媒体上的第一个文件写入。如果没有现有的媒体标头,则会自动编写一个。
SKIP 和 INIT 子句,用于覆盖备份媒体,即使备份媒体上存在尚未过期的备份,或媒体名称与备份媒体上的名称不匹配,也会覆盖备份媒体。
FORMAT 子句,通过它可以在首次使用媒体时对备份媒体进行初始化,并重写任何现有的媒体标头。
如果已经指定了 FORMAT 子句,则不需要指定 INIT 子句。
重要提示 使用 BACKUP 语句的 FORMAT 或 INIT 子句时要格外谨慎,因为稍有不慎便会破坏先前存储在备份媒体上的任何备份。
示例
重要提示 |
---|
MyAdvWorks_FullRM 数据库是 AdventureWorks 的一个副本,它使用简单恢复模式。若要允许日志备份,请在完整备份数据库之前使用 ALTER DATABASE MyAdvWorks_FullRM SET RECOVERY FULL 将数据库设置为使用完整恢复模式。 |
以下示例将备份 MyAdvWorks_FullRM 数据库的当前活动事务日志,即使 MyAdvWorks_FullRM 已损坏且不可访问。但事务日志必须未损坏且可访问:
BACKUP LOG MyAdvWorks_FullRM
TO MyAdvWorks_FullRM_log1
WITH NO_TRUNCATE
GO