zoukankan      html  css  js  c++  java
  • SQL学习笔记六:关于全备/差异/日志备份的恢复


    --创建数据库
    create database db_oa

    --周日进行全备
    backup database db_oa to disk='c:\full.bak'
    --创建表
    create table test(id int identity primary key , str1 varchar(800))
    --周一差异备份
    BACKUP DATABASE db_oa TO disk='c:\diff.bak'  WITH DIFFERENTIAL 
    --插入一条数据
    insert into test select '差异后'
    --周二日志备份
    backup log db_oa to disk='c:\log1.bak'
    --插入第二条数据
    insert into test select '日志后'
    --周三差异备份
    BACKUP DATABASE db_oa TO disk='c:\diff2.bak'  WITH DIFFERENTIAL 
    --插入第三条数据
    insert into test select '差异后'
    --周四日志备份
    backup log db_oa to disk='c:\log2.bak'
    --周五不小心drop掉了表
    drop table test

    --要求恢复数据库最新的记录
    --
    恢复方案有:
    --
    恢复一:日+1+2+3+4

    use master
    go
    restore database db_oa from disk='c:\full.bak'  with norecovery 
    restore database db_oa from disk='c:\diff.bak' with norecovery
    restore log db_oa from disk='c:\log1.bak' with norecovery
    restore database db_oa from disk='c:\diff2.bak' with norecovery
    restore log db_oa from disk='c:\log2.bak' with recovery



    --恢复二:日+3+4

    use master
    go
    restore database db_oa from disk='c:\full.bak'  with norecovery
    restore database db_oa from disk='c:\diff2.bak' with norecovery
    restore log db_oa from disk='c:\log2.bak' with recovery


    --恢复三:日+2+4

    use master
    go
    restore database db_oa from disk='c:\full.bak'  with norecovery
    restore log db_oa from disk='c:\log1.bak' with norecovery
    restore log db_oa from disk='c:\log2.bak' with recovery 

    --查看
    use  db_oa
    go 
    select * from test

    --结果
    /*

    1  差异后    
    2  日志后    
    3  差异后    
    */


    --结论:恢复日志备份时,要求必须有全备和连续的日志备份,说明日志备份上下次之间是连接的。
    --
         恢复差异备份时,全备+最近的差异即可,说明差异备份记录的是最近的全备到该差异备份的事物。
  • 相关阅读:
    简易表格练习
    CSS圆角样式
    力不从心
    学渣在努力~
    嫌疑人
    poj1308 Is it a tree?
    悲剧文本
    迷宫问题
    n皇后问题
    油田
  • 原文地址:https://www.cnblogs.com/zc_0101/p/1544308.html
Copyright © 2011-2022 走看看