SQL中Norecovery的功能是什么?

来源:百度知道 编辑:UC知道 时间:2024/06/14 01:38:55
该例的全代码如下,是在修复数据库时候的一个例子:

user maseter

backup log dbtest to disk=N'D:\data\log\dbtest_log.bak'with Norecovery

restort database dbtest page='1:73'from disk='d:\data\db\dbtest.bak'with norecovery

restore log dbtest from disk=N'd:\data\log\dbtest_log.bak'with recovery

这当中norecovery的功能是什么?为什么在修复数据之前要备份日志呢?它在修复完成后又还原日志,为什么要这样做呢?

RESTORE DATABASE MyNwind
FROM MyNwind_1, MyNwind_2
WITH NORECOVERY
RESTORE LOG MyNwind
FROM MyNwindLog1
WITH NORECOVERY
RESTORE LOG MyNwind
FROM MyNwindLog2
WITH RECOVERY
备份日志的时候使用Norecovery是用来备份尾日志的,这样备份日志的时候数据库处于恢复状态,别的进程就不能再访问数据库,日志就不会再增加了,
这样在还原的时候就可以正常恢复了。
还原备份的时候如果想同时还原之后的日志,必须加上Norecovery才可以还原日志,如果有多个日志备份,除了最后一个日志备份~
还原其他日志必须也得加上Norecovery才可以还原到最后一个日志。

备份日志的时候使用Norecovery是用来备份尾日志的,这样备份日志的时候数据库处于恢复状态,别的进程就不能再访问数据库,日志就不会再增加了,这样在还原的时候就可以正常恢复了。
还原备份的时候如果想同时还原之后的日志,必须加上Norecovery才可以还原日志,如果有多个日志备份,除了最后一个日志备份外,还原其他日志必须也得加上Norecovery才可以还原到最后一个日志。
归根结底只能说这是数据库的规定。