欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

SQL Server的還原

系統(tǒng) 1907 0

1.差異備份的還原

不備份結(jié)尾日志的情況下還原數(shù)據(jù)

創(chuàng)建差異備份的放在我們已經(jīng)在前面一篇博客 SQL Server的備份 中提到了,這里我們不再贅述,下面我們給出差異備份與還原的T-SQL方法,代碼如下:

      
        --
      
      
        創(chuàng)建備份設(shè)備
      
      
        EXEC
      
       sp_addumpdevice 
      
        '
      
      
        disk
      
      
        '
      
      , 
      
        '
      
      
        MyAdvWorks_1
      
      
        '
      
      , 
      
        '
      
      
        d:\backup\MyAdvWorks_1.bak
      
      
        '
      
      
        ;


      
      
        EXEC
      
       sp_addumpdevice 
      
        '
      
      
        disk
      
      
        '
      
      , 
      
        '
      
      
        MyAdvWorks_diff1
      
      
        '
      
      , 
      
        '
      
      
        d:\backup\MyAdvWorks_diff1.bak
      
      
        '
      
      
        ;


      
      
        EXEC
      
       sp_addumpdevice 
      
        '
      
      
        disk
      
      
        '
      
      , 
      
        '
      
      
        MyAdvWorks_log1
      
      
        '
      
      , 
      
        '
      
      
        d:\backup\MyAdvWorks_log1.bak
      
      
        '
      
      
        ;


      
      
        EXEC
      
       sp_addumpdevice 
      
        '
      
      
        disk
      
      
        '
      
      , 
      
        '
      
      
        MyAdvWorks_log2
      
      
        '
      
      , 
      
        '
      
      
        d:\backup\MyAdvWorks_log2.bak
      
      
        '
      
      
        ;




      
      
        --
      
      
        數(shù)據(jù)庫備份階段
      
      
        

--
      
      
         創(chuàng)建完整備份
      
      
        BACKUP
      
      
        DATABASE
      
      
         MyAdvWorks 

   
      
      
        TO
      
      
         MyAdvWorks_1 

   
      
      
        WITH
      
      
         INIT;


      
      
        GO
      
      
        --
      
      
         在完整備份之后創(chuàng)建差異備份
      
      
        BACKUP
      
      
        DATABASE
      
      
         MyAdvWorks

   
      
      
        TO
      
      
         MyAdvWorks_diff1

   
      
      
        WITH
      
      
         DIFFERENTIAL;


      
      
        GO
      
      
        --
      
      
        數(shù)據(jù)庫還原階段
      
      
        

--
      
      
         完整還原
      
      
        RESTORE
      
      
        DATABASE
      
      
         MyAdvWorks

   
      
      
        FROM
      
      
         MyAdvWorks_1

   
      
      
        WITH
      
      
         NORECOVERY;


      
      
        GO
      
      
        --
      
      
         在完整還原之后差異還原
      
      
        RESTORE
      
      
        DATABASE
      
      
         MyAdvWorks

   
      
      
        FROM
      
      
         MyAdvWorks_diff1

   
      
      
        WITH
      
      
         RECOVERY;


      
      
        GO
      
    

在執(zhí)行上述完整還原的時(shí)候,SSMS報(bào)錯(cuò),錯(cuò)誤內(nèi)容如下:

      Msg 
      
        3159
      
      , 
      
        Level
      
      
        16
      
      , State 
      
        1
      
      , Line 
      
        2
      
      
        

The tail 
      
      
        of
      
       the 
      
        log
      
      
        for
      
       the 
      
        database
      
       "MyAdvWorks" has 
      
        not
      
       been backed up. 
      
        Use
      
      
        BACKUP
      
      
        LOG
      
      
        WITH
      
       NORECOVERY 
      
        to
      
      
        backup
      
       the 
      
        log
      
      
        if
      
       it 
      
        contains
      
      
        work
      
       you do 
      
        not
      
       want 
      
        to
      
       lose. 
      
        Use
      
       the 
      
        WITH
      
      
        REPLACE
      
      
        or
      
      
        WITH
      
       STOPAT clause 
      
        of
      
       the 
      
        RESTORE
      
       statement 
      
        to
      
       just overwrite the contents 
      
        of
      
       the 
      
        log
      
      
        .

Msg 
      
      
        3013
      
      , 
      
        Level
      
      
        16
      
      , State 
      
        1
      
      , Line 
      
        2
      
      
        RESTORE
      
      
        DATABASE
      
      
        is
      
       terminating abnormally.
    

這是因?yàn)椋? 對(duì)于使用完全恢復(fù)模式或大容量日志恢復(fù)模式的數(shù)據(jù)庫,在大多數(shù)情況下,您必須在還原數(shù)據(jù)庫前備份日志的結(jié)尾。 ? 還原數(shù)據(jù)庫而不首先備份日志的末尾將導(dǎo)致錯(cuò)誤,除非 RESTORE DATABASE 語句包含 WITH REPLACE 或 WITH STOPAT 子句 ,此子句必須指定數(shù)據(jù)備份的結(jié)束時(shí)間或在數(shù)據(jù)備份結(jié)束之后發(fā)生的事務(wù)。 ? 有關(guān)結(jié)尾日志備份的詳細(xì)信息,請(qǐng)參閱 結(jié)尾日志備份 (SQL Server) 。RESTORE的語法可以 參考 RESTORE (Transact-SQL) 。為了解決上述錯(cuò)誤,我們將完整還原的TSQL語句修改如下:

      
        --
      
      
         完整還原
      
      
        RESTORE
      
      
        DATABASE
      
      
         MyAdvWorks

   
      
      
        FROM
      
      
         MyAdvWorks_1

   
      
      
        WITH
      
      
        REPLACE
      
      
        ,NORECOVERY;


      
      
        GO
      
    

應(yīng)盡可能避免使用 REPLACE,而且在使用該選項(xiàng)之前必須仔細(xì)考慮。 ? 還原一般會(huì)防止意外使用一個(gè)數(shù)據(jù)庫覆蓋另一個(gè)數(shù)據(jù)庫。 ? 如果 RESTORE 語句中指定的數(shù)據(jù)庫已存在于當(dāng)前服務(wù)器上,并且指定的數(shù)據(jù)庫系列 GUID 與備份集中記錄的數(shù)據(jù)庫系列 GUID 不同,則不還原該數(shù)據(jù)庫。 ? 這是一項(xiàng)重要的安全保護(hù)措施。

使用 REPLACE 選項(xiàng)后,就會(huì)忽略還原時(shí)通常執(zhí)行的幾項(xiàng)重要安全檢查。 ? 忽略的檢查如下:

  • 還原時(shí)使用其他數(shù)據(jù)庫的備份覆蓋現(xiàn)有數(shù)據(jù)庫。

    使用 REPLACE 選項(xiàng)后,即使指定的數(shù)據(jù)庫名稱與備份集中記錄的數(shù)據(jù)庫名稱不同,還原也允許您使用備份集中任何一個(gè)數(shù)據(jù)庫覆蓋現(xiàn)有數(shù)據(jù)庫。 ? 這會(huì)導(dǎo)致一個(gè)數(shù)據(jù)庫意外覆蓋另一個(gè)數(shù)據(jù)庫。

  • 在沒有獲取結(jié)尾日志備份并也沒有使用 STOPAT 選項(xiàng)的情況下,使用完整恢復(fù)模式或大容量日志恢復(fù)模式對(duì)數(shù)據(jù)庫進(jìn)行還原。

    使用 REPLACE 選項(xiàng)后,由于沒有備份最近寫入的日志,您會(huì)丟失提交的作業(yè)。

  • 覆蓋現(xiàn)有文件。

    例如,可能會(huì)錯(cuò)誤地覆蓋錯(cuò)誤類型的文件,如 .xls 文件或非聯(lián)機(jī)狀態(tài)的其他數(shù)據(jù)庫正在使用的文件等。 ? 如果覆蓋現(xiàn)有文件,則即使所還原的數(shù)據(jù)庫是完整的,也有可能丟失某些數(shù)據(jù)。

RECOVERY 和 NORECOVERY 的比較

仔細(xì)觀察上述完整還原和差異還原的TSQL語句,我們可以看到在 完整還原 階段,使用了 WITH NORECOVERY ,而 差異還原 ,則是使用了 RECOVERY

  • NORECOVERY 指定 不發(fā)生回滾 ? 從而使 前滾 按順序在下一條語句中繼續(xù)進(jìn)行。 在這種情況下,還原順序可還原其他備份,并執(zhí)行前滾。
  • RECOVERY(默認(rèn)值)表示,應(yīng)在完成當(dāng)前備份前滾之后執(zhí)行回滾。 恢復(fù)數(shù)據(jù)庫要求要還原的整個(gè)數(shù)據(jù)集(“前滾集”)必須與數(shù)據(jù)庫 一致 ? 如果前滾集尚未前滾到與數(shù)據(jù)庫保持一致的地步,并且指定了 RECOVERY,則數(shù)據(jù)庫引擎將發(fā)出錯(cuò)誤。
  • 因此RESTORE...WITH RECOVERY狀態(tài)就表明此時(shí)數(shù)據(jù)庫已經(jīng)處于 一致性 狀態(tài)了。一般都是數(shù)據(jù)庫還原的最后一步才會(huì)使用RESTORE...WITH RECOVERY,其他時(shí)候都是使用RESTORE...WITH NORECOVERY。

前滾與回滾的區(qū)別 ?

前滾和回滾是 SQL Server中的兩個(gè)事務(wù)操作。

  • 前滾用于恢復(fù)之前的操作。

  比如:執(zhí)行一個(gè)刪除一條記錄的命令,剛剛把該操作的日志寫完(即在日志中已經(jīng)commit),并準(zhǔn)備執(zhí)行刪除操作時(shí),但是此時(shí)停電了,因此這條記錄的刪除工作沒有完成。在下次啟動(dòng)SQL Server時(shí),數(shù)據(jù)庫會(huì)讀取日志最近的一個(gè)檢查點(diǎn)(checkpoint),然后重做所有已經(jīng)commit的事務(wù),這就包括之前刪除記錄的操作。

  • 回滾用于撤銷之前的操作。

  比如:我要執(zhí)行一個(gè)銀行轉(zhuǎn)賬的事務(wù),從賬戶A中轉(zhuǎn)出1000元到賬戶B中,在我執(zhí)行完A-1000的時(shí)候,數(shù)據(jù)庫down掉了,此時(shí)整個(gè)事務(wù)還沒有執(zhí)行完,因此事uncommitted的。所以在下次啟動(dòng)SQL Server的時(shí)候,數(shù)據(jù)庫會(huì)讀取日志最近的一個(gè)檢查點(diǎn)(checkpoint),回滾所有那些uncommitted的事務(wù)。比如在這里會(huì)撤銷A-1000的操作,也就是會(huì)往A賬戶中加回去1000元。?

SQL Server的還原


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 91在线一区二区 | 欧美黄视频 | 国产精品小视频在线观看 | 欧美亚洲日本 | 国产不卡在线 | 成年人免费网站视频 | 色丁香色婷婷 | 久久精品视频在线观看 | 日韩色在线 | 欧美精品一区二区三区在线 | 激情五月色综合国产精品 | 福利在线播放 | 亚洲精品一区二区三区福利 | 国产亚洲精品久久久久久老妇小说 | 国产69久久久欧美黑人A片 | www.久久久 | 国产日韩一区二区三区 | www.4hu影院 | 日韩欧美专区 | 91香蕉嫩草 | 国产激情91久久精品导航 | 国产精品秒播无毒不卡 | 亚洲视频不卡 | 国产日韩欧美在线 | 国产 日韩 欧美 在线 | 91精品国产综合久久久久久丝袜 | 成人网页 | 一级黄色绿像片 | 天天天天天操 | 人人干日日干 | 日本在线你懂的 | 国产一区二区三区不卡在线观看 | 国内精品免费视频 | 色婷婷综合久久久久中文 | 91在线中文 | 精品无人乱码高清 | 网站免黄| 国产第一页在线视频 | 羞羞的视频在线免费观看 | 91新视频| 久久草视频这里只精品 |