restore database aa from disk='c:\aa.bak' WITH NORECOVERY

解决方案 »

  1.   

    restore database aa from disk='c:\aa.bak' WITH NORECOVERY
    or
    restore database aa from disk='c:\aa.bak' WITH STANDBY
      

  2.   

    restore log和restore database要对应使用如果
    restore database aa from disk='c:\aa.bak' WITH NORECOVERY
    就要用
    restore log aa from disk='c:\aa.dat' WITH NORECOVERY如果
    restore database aa from disk='c:\aa.bak' WITH STANDBY = UNDO_FILE_NAME
    就要用
    restore log aa from disk='c:\aa.dat' WITH STANDBY = UNDO_FILE_NAME最后再执行
    restore log aa WITH Recovery
    数据库才可以使用
    如果
    restore database aa from disk='c:\aa.bak' WITH Replace
    就不能再恢复日志备份了
      

  3.   

    请教楼上高手们:
       "如果restore database aa from disk='c:\aa.bak' WITH Replace就不能再恢复日志备份了",那么这条语句除了恢复数据库外,对日志文件有什么影响吗?
      

  4.   

    "如果restore database aa from disk='c:\aa.bak' WITH Replace就不能再恢复日志备份了",那么这条语句除了恢复数据库外,对日志文件有什么影响吗?联机丛书:NORECOVERY指示还原操作不回滚任何未提交的事务。如果需要应用另一个事务日志,则必须指定 NORECOVERY 或 STANDBY 选项。如果 NORECOVERY、RECOVERY 和 STANDBY 均未指定,则默认为 RECOVERY。当还原数据库备份和多个事务日志时,或在需要多个 RESTORE 语句时(例如在完整数据库备份后进行差异数据库备份),SQL Server 要求在除最后的 RESTORE 语句外的所有其它语句上使用 WITH NORECOVERY 选项。说明  如果指定 NORECOVERY 选项,数据库将处于这个中间的未恢复状态而不可用。
    当用于文件或文件组还原操作时,NORECOVERY 强制数据库在还原操作结束后保持还原状态。这在以下情况中很有用: 还原脚本正在运行并且始终要应用日志。
    使用文件还原序列,并且在两次还原操作之间不能使用数据库。 
    RECOVERY指示还原操作回滚任何未提交的事务。在恢复进程后即可随时使用数据库。如果安排了后续 RESTORE 操作(RESTORE LOG 或从差异数据库备份 RESTORE DATABASE),则应改为指定 NORECOVERY 或 STANDBY。如果 NORECOVERY、RECOVERY 和 STANDBY 均未指定,则默认为 RECOVERY。当从 SQL Server 早期版本中还原备份集时,可能要求将数据库升级。如果指定了 WITH RECOVERY,升级将自动进行。有关更多信息,请参见事务日志备份。STANDBY = undo_file_name指定撤消文件名以便可以取消恢复效果。撤消文件的大小取决于因未提交的事务所导致的撤消操作量。如果 NORECOVERY、RECOVERY 和 STANDBY 均未指定,则默认为 RECOVERY。STANDBY 允许将数据库设定为在事务日志还原期间只能读取,并且可用于备用服务器情形,或用于需要在日志还原操作之间检查数据库的特殊恢复情形。如果指定的撤消文件名不存在,SQL Server 将创建该文件。如果该文件已存在,则 SQL Server 将重写它。