技术开发 频道

一个备份和还原的实验

  【IT168技术文档】

  RECOVERY

  指示还原操作回滚任何未提交的事务。在恢复进程后即可随时使用数据库。

  NORECOVERY

  指示还原操作不回滚任何未提交的事务。如果稍后必须应用另一个事务日志,则应指定 NORECOVERY

  做一个备份还原的实验,代码如下:

  第一步,完全备份 AdventureWorks

use master backup database AdventureWorks to disk = 'd:AdventureWorks_back.bak' use AdventureWorks go

  创建一个表,insert 一条记录

create table test (a int) go insert into test (a) values (1) go

  备份事务日志,记录上面代码所有事务

backup log AdventureWorks to disk = 'd:AdventureWorks_log.bak' go

  再insert两条记录,之后假设数据库出问题了,需要还原数据库

insert into test (a) values (2) insert into test (a) values (3) go

  出问题后还原刚完全备份的数据库,WITH NORECOVERY,然后还原刚才备份的事务日志

use master restore database AdventureWorks from disk = 'd:AdventureWorks_back.bak' with NORECOVERY go restore log AdventureWorks from disk = 'd:AdventureWorks_log.bak' WITH RECOVERY go

  由于我们在insert第一条记录后就做了日志备份,因为我们还原后看到test表中只有第一条记录

0
相关文章