2010-01-06 15:06

尚未备份数据库 "***" 的日志尾部。如果该日志包含您不希望丢失的工作,请使用 BACKUP LOG WITH NORECOVERY 备份该日志。请使用 RESTORE 语句的 WITH REPLACE 或 WITH STOPAT 子句来只覆盖该日志的内容。

 

BACKUP LOG BookSell TO DISK 'C:\BookSell_Last.bak' WITH NORECOVERY;
RESTORE DATABASE BookSell FROM DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\BookSell.bak' WITH STATS = 10,RECOVERY;

先备份一下尾日志..再还原


BACKUPLOG BookSellTODISK'C:\BookSell_Last.bak'WITH NORECOVERY;
RESTOREDATABASE BookSellFROMDISK='C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\BookSell.bak'WITH STATS=10,RECOVERY;

执行代码后出现:
消息 102,级别 15,状态 1,第 1 行
'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\BookSell.log' 附近有语法错误。
消息 319,级别 15,状态 1,第 1 行
关键字 'with' 附近有语法错误。如果此语句是公用表表达式或 xmlnamespaces 子句,那么前一个语句必须以分号结尾。



BACKUP LOG BookSell TO DISK = 'C:\BookSell_Last.bak' WITH NORECOVERY;

WITH NORECOVERY意思:NORECOVERY指示还原操作不回滚任何未提交的事务。如果需要应用另一个事务日志,则必须指定 NORECOVERY 或 STANDBY 选项。如果 NORECOVERY、RECOVERY 和 STANDBY 均未指定,则默认为 RECOVERY。

当还原数据库备份和多个事务日志时,或在需要多个 RESTORE 语句时(例如在完整数据库备份后进行差异数据库备份),SQL Server 要求在除最后的 RESTORE 语句外的所有其它语句上使用 WITH NORECOVERY 选项。

说明 如果指定 NORECOVERY 选项,数据库将处于这个中间的未恢复状态而不可用。

当用于文件或文件组还原操作时,NORECOVERY 强制数据库在还原操作结束后保持还原状态。这在以下情况中很有用:

  1. 还原脚本正在运行并且始终要应用日志。
  2. 使用文件还原序列,并且在两次还原操作之间不能使用数据库。

添加新评论