亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        SQL Server數(shù)據(jù)庫備份與恢復的研究與實踐

        2018-11-01 05:19:12周勇強
        電腦知識與技術 2018年18期
        關鍵詞:恢復檢查點備份

        周勇強

        摘要:如何設計良好的數(shù)據(jù)庫備份方案,正確處理各種備份恢復問題,在出現(xiàn)各種軟硬件故障及人為誤操作問題后及時有效地恢復數(shù)據(jù)庫,從而將數(shù)據(jù)丟失的風險降到最小,是很多數(shù)據(jù)庫管理員面臨的問題。該文力圖從較深入的層次對SQL Server數(shù)據(jù)庫的備份和恢復機制進行研究,將理論與實踐相結合,分析一個有代表性的數(shù)據(jù)庫備份恢復策略,提供有益的知識和經(jīng)驗。

        關鍵詞: SQL Server;備份;恢復;事務日志;檢查點

        中圖分類號:TP311.13 文獻標識碼:A 文章編號:1009-3044(2018)18-0003-03

        1 引言

        SQL Server數(shù)據(jù)庫已在各種應用系統(tǒng)中得到廣泛應用,數(shù)據(jù)的重要性不言而喻,但各種軟硬件故障及人為誤操作問題難以避免,如果對SQL Server的數(shù)據(jù)庫備份和恢復機制沒有透徹的理解,就無法掌握正確的備份恢復技術。本文對SQL Server 2005及以上版本用戶數(shù)據(jù)庫的三種基本備份方式及相應的介質恢復技術進行研究,不涉及文件和文件組的備份恢復、系統(tǒng)數(shù)據(jù)庫的備份恢復、高可用性方案等內容的探討。

        2 數(shù)據(jù)庫備份

        2.1 完整備份

        完整備份是所有其他備份類型的基準備份,備份的內容為備份時的所有數(shù)據(jù)以及能將數(shù)據(jù)庫基于這些數(shù)據(jù)恢復到備份結束時一致狀態(tài)的事務日志。

        使用不帶DIFFERENTIAL選項的Backup Database命令執(zhí)行完整備份:

        Backup Database database_name TO backup_device

        完整備份過程分為三個階段:

        ① 執(zhí)行檢查點(Checkpoint)。將內存中的臟日志和臟數(shù)據(jù)存盤,對處于非完整日志序列維護狀態(tài)的數(shù)據(jù)庫進行日志截斷,在日志文件中寫入一段檢查點記錄(首條記錄的LSN為檢查點起點的LSN,即CheckpointLSN),內容為當前的MinLSN及所有活動事務的起始LSN,MinLSN是檢查點起點的LSN和當前最早活動事務起點的LSN中的最老LSN。

        ② 數(shù)據(jù)轉儲。將所有已分配區(qū)(Extent)的數(shù)據(jù)復制到備份集。

        ③ 日志轉儲。將LSN滿足條件FirstLSN≤LSN

        2.2 差異備份

        差異備份和完整備份類似,二者主要差別是備份的數(shù)據(jù)不同,差異備份以最近一次完整備份為基準,捕獲基準備份后發(fā)生更改的數(shù)據(jù)區(qū)的數(shù)據(jù)。

        使用帶DIFFERENTIAL選項的BACKUP DATABASE命令執(zhí)行差異備份:

        Backup Database database_name TO backup_device WITH DIFFERENTIAL

        2.3 日志備份

        使用BACKUP LOG命令執(zhí)行日志備份:

        Backup LOG database_name TO backup_device

        日志備份的范圍是LSN滿足條件FirstLSN≤LSN

        ① 如果是第一次執(zhí)行事務日志備份,會備份所有日志記錄,即FirstLSN是第一次完整備份的FirstLSN。

        ② 否則備份上次日志備份以來新增的日志記錄,即FirstLSN是上次日志備份的LastLSN。

        LastLSN是執(zhí)行日志備份時最后一個成功結束事務的下一個事務的開始LSN。

        3 數(shù)據(jù)庫恢復

        如果將數(shù)據(jù)庫的內容(數(shù)據(jù)和日志等)稱為狀態(tài),則數(shù)據(jù)庫備份就是把數(shù)據(jù)庫當時的狀態(tài)保存到備份集的過程,而數(shù)據(jù)庫恢復則是通過重演備份集中內容來重建數(shù)據(jù)庫并逐步推進(或稱還原)數(shù)據(jù)庫狀態(tài),最后重現(xiàn)數(shù)據(jù)庫在恢復點正確狀態(tài)的過程。

        數(shù)據(jù)庫恢復操作包括確定恢復點、備份尾日志、選擇恢復鏈、執(zhí)行數(shù)據(jù)庫恢復命令四個基本步驟。

        3.1 確定恢復點

        恢復點是用戶指定將數(shù)據(jù)庫恢復到的點?;謴忘c可以是:

        ① 任何備份的尾部。

        ② 日志備份包含的特定時點(在大容量日志恢復模式下,僅當日志備份不包含大容量更改,才能進行時點還原)

        如果恢復點是故障點或最后一個備份與故障點之間的某個時點,則恢復所需的事務日志還在日志文件中。因為介質恢復是通過備份進行的,所以應先將處于日志文件尾部的這部分日志備份出來(稱為尾日志備份)。需要注意的是,對于大容量日志恢復模式下的數(shù)據(jù)庫,無法對包含大容量日志操作的活動日志執(zhí)行尾日志備份。

        實際上,對處于完整恢復模式或大容量日志恢復模式下的數(shù)據(jù)庫,SQL Server如果檢測到存在未備份的活動日志,總是要求在還原前執(zhí)行尾日志備份。

        3.2 備份尾日志

        如果數(shù)據(jù)庫服務可用,用帶NORECOVERY選項的BACKUP LOG命令執(zhí)行常規(guī)的尾日志備份。對受損數(shù)據(jù)庫可嘗試用NO_TRUNCATE或CONTINUE_AFTER_ERROR選項備份尾日志,這兩個選項指示備份操作跳過錯誤繼續(xù)進行,因此可能導致數(shù)據(jù)丟失。

        如果以上方法都無法備份尾日志,或者服務無法啟動,則只能嘗試用非常規(guī)方法進行尾日志備份了,例如將日志文件“假載”到其他服務器上進行恢復。

        有時需要在沒有進行尾日志備份的情況下恢復數(shù)據(jù)庫,例如尾日志已無法備份,或者恢復點不在尾日志中。可在數(shù)據(jù)庫恢復的還原階段使用以下方法跳過尾日志檢測:(1)使用帶REPLACE選項的RESTORE命令還原備份(跳過了一些安全性檢查)。(2)還原時在每個RESTORE命令中使用STOPAT等時點還原參數(shù)指定已有日志備份包含的時點。(3)使用MOVE選項將數(shù)據(jù)庫還原到新位置并具有新名稱(如果還原到不同服務器可以使用相同名稱)。

        3.3 選擇恢復鏈

        恢復鏈是從已有備份序列中選出的、按備份先后次序排列的、用于恢復數(shù)據(jù)庫的備份組合。恢復鏈起于完整備份、止于恢復點所在備份,中間可能還包含其他備份,用于將數(shù)據(jù)庫狀態(tài)沿著恢復鏈逐步還原到恢復點。

        要成功恢復數(shù)據(jù)庫,恢復鏈中每個備份都應該是可成功還原的,有四種備份可成功還原:

        第1種 完整備份。

        第2種 基準備份已被選進恢復鏈的差異備份。

        第3種 恢復鏈中的第一個日志備份,如果和緊接在前面的完整備份(或差異備份)之間的LSN不存在缺口,即:日志備份的FirstLSN≤前一個備份的LastLSN≤日志備份的LastLSN,則日志備份是可成功還原的。

        第4種 二個相鄰的日志備份,如果二者之間的LSN首尾相連,即:后一個日志備份的FirstLSN=前一個日志備份的LastLSN,則后一個日志備份是可成功還原的。

        3.4 執(zhí)行數(shù)據(jù)庫恢復命令

        數(shù)據(jù)庫恢復包括還原和恢復兩個階段。

        (1) 還原(RESTORE)階段

        此階段使用帶“NORECOVERY”選項的RESTORE命令按備份的先后次序逐一還原恢復鏈中的各個備份,將數(shù)據(jù)庫狀態(tài)逐步推進,直到恢復點。

        ① 還原完整備份。

        RESTORE DATABASE database_name FROM backup_device WITH NORECOVERY

        此命令將完整備份中的數(shù)據(jù)復制到數(shù)據(jù)庫并進行初始化,然后在此基礎上應用備份中的日志記錄(首先從備份集標頭讀出CheckpointLSN,據(jù)此在備份日志中找到對應的檢查點記錄,讀出當時保存的MinLSN和所有活動事務的起點LSN,就可找到每個活動事務的所有日志記錄,然后重做已完成事務,保留未完成事務),將數(shù)據(jù)庫還原到完整備份完成時的狀態(tài)。

        ② 還原差異備份

        RESTORE DATABASE database_name FROM backup_device WITH NORECOVERY

        此命令將備份集中的差異數(shù)據(jù)應用到數(shù)據(jù)庫(用差異數(shù)據(jù)覆蓋對應區(qū)),然后在此基礎上應用備份中的日志記錄(類似還原完整備份),將數(shù)據(jù)庫推進到差異備份完成時的狀態(tài)。

        ③ 還原日志備份

        RESTORE LOG database_name FROM backup_device WITH NORECOVERY

        此命令將備份集中的日志記錄應用到數(shù)據(jù)庫,重做已完成事務,保留未完成事務,將數(shù)據(jù)庫推進到日志備份完成時的狀態(tài)。

        (2) 恢復(RECOVERY)階段

        所有備份還原后,數(shù)據(jù)庫狀態(tài)還原到了恢復點,接下來需要對還原后數(shù)據(jù)庫中的存疑事務(可能不符合ACID特性的事務)進行處理,見圖1。

        存疑事務以事務日志中的最后一個檢查點為界限分成二部分。第一部分是最后檢查點之前的事務,這些事務都已被寫入日志文件和數(shù)據(jù)文件,暫時無需處理。第二部分是最后檢查點和恢復點之間的事務,這些事務可能存在兩種問題:一是在日志中已提交的事務可能未被寫入數(shù)據(jù)文件(T2、T4),原因是寫日志和寫數(shù)據(jù)是按WAL原則異步進行的,事務提交會將日志存盤,但數(shù)據(jù)可能尚未在恢復點之前存盤。二是未完成的事務被寫到了數(shù)據(jù)庫,原因是檢查點會把未完成事務存盤,但直到恢復點還沒有提交(T3、T5)。

        此階段使用帶“RECOVERY”選項的RESTORE命令來處理存疑事務:

        RESTORE DATABASE database_name WITH RECOVERY

        此命令根據(jù)最后一個檢查點的CheckpointLSN,在備份日志中找到對應的檢查點記錄,據(jù)此讀出當時保存的MinLSN和所有活動事務的起點LSN,從而找到每個存疑事務的所有日志記錄,然后重做未存盤的已完成事務(T2、T4),撤銷已存盤的未完成事務(T3、T5),將數(shù)據(jù)庫恢復到恢復點時的一致狀態(tài)。

        RECOVERY階段的操作可以合并到RESTORE階段的最后一個還原步驟。換言之,在還原階段的最后一個步驟不使用NORECOVERY選項,而改用RECOVERY選項,該選項在還原最后一個備份后,立即進入恢復階段。

        4 實例研究

        模擬典型的備份策略,分析備份信息,揭示備份間的內在聯(lián)系,研究恢復到故障點的恢復鏈方案。

        4.1 數(shù)據(jù)庫備份

        生成備份序列(用逗號分隔的備份名稱表示):F1,L1,L2,D1,L3,L4,D2,L5,L6,F(xiàn)2,L7,L8,D3,L9,L10,D4,L11,其中備份名稱由備份類型字母(F表示完整備份,D表示差異備份,L表示日志備份)加備份序號組成,每種備份類型獨立編號。

        RESTORE HEADERONLY命令用于查詢備份集標頭的基本備份信息,備份集的FirstLSN、LastLSN、CheckpointLSN、DatabaseBackupLSN反映了備份之間在日志和數(shù)據(jù)方面的內在聯(lián)系??捎脠D示的方法直觀顯示這種關聯(lián),見圖2。圖中備份集的LSN范圍用水平線段(FirstLSN≤LSN

        4.2 數(shù)據(jù)庫恢復

        1)確定恢復點、備份尾日志

        恢復點是故障點,因此首先執(zhí)行尾日志備份。將尾日志備份Tail的LSN范圍也標注在圖2。

        2)選擇恢復鏈

        按照選擇恢復鏈的要求,借助圖2,可方便地選出恢復鏈:

        第一個備份必須是完整備份,用作后續(xù)還原的基準,可選F1或F2,但為了縮短恢復鏈,減少恢復時間,選F2。最后一個備份是包含恢復點的Tail。由于這兩個備份并無直接關聯(lián),故需選擇一些中間備份,以將數(shù)據(jù)庫狀態(tài)從F2逐步還原到Tail。

        最佳方案:(F2,D4,L11,Tail)。F2屬于第1種可成功還原備份,D4屬于第2種,L11屬于第3種,Tail屬于第4種。這個方案的恢復鏈最短,故恢復時間最少。

        備選方案:(F2,D3,L9,L10,L11, Tail)、(F2,,L7~L11, Tail)可用作最佳方案當差異備份D4或D3有問題時的替換方案;(F1,D2,L5~L11, Tail)及(F1,D1,L3~L11, Tail)、(F1,L1~L11, Tail)可用作最佳方案當完整備份F2有問題時的替換方案。

        在以上方案中,任何一個備份都是必需的,如果其中一個備份丟失或被破壞,則恢復鏈中斷,按此方案只能將數(shù)據(jù)庫恢復到中斷點之前的某個狀態(tài)了,這里將這種恢復鏈稱為最簡恢復鏈。

        實際上,在最簡恢復鏈中還可加入其他備份,只要所加入的備份滿足可成功還原的要求,并不影響恢復結果。例如最佳方案可修改為:(F1,F(xiàn)2,L7,D3,L9,D4,L11,TailLog),但這樣做除了增加恢復時間別無意義。

        5 結論

        SQL Server的備份恢復,還包括文件和文件組的備份恢復、系統(tǒng)數(shù)據(jù)庫的備份恢復等。DBA應在透徹理解備份恢復機制的基礎上,通過深入細致的研究實踐真正掌握備份恢復技術,如此才能從容應對各種復雜情況。

        參考文獻:

        [1] 李愛武.SQL Server 2008 數(shù)據(jù)庫技術內幕[M].北京:中國鐵道出版社,2012.

        [2] Delaney K.Inside Microsoft? SQL Server? 2005[M].The Storage Engine.US:Microsoft Press,2006.

        [3] 趙松濤.SQL Server 2005 奧秘[M].北京:電子工業(yè)出版社,2007.

        [4] 王珊,薩師煊.數(shù)據(jù)庫系統(tǒng)概論(第5版)[M].北京:高等教育出版社,2014.

        [5] 向猛,謝力靖.SQL Server 2005基于事務日志的備份與恢復深入研究[J].計算機系統(tǒng)應用,2013,22(6).

        [6] Paul S. Randal.SQL Server:Understanding SQL Server Backups[EB/OL]. https://technet.microsoft.com/zh-cn/library/2009.07.sqlbackup.aspx#MtViewDropDownText.

        [7] Paul S.Randal.SQL Server:Understanding Logging and Recovery in SQL Server[EB/OL]. https ://technet.microsoft.com /en-us/library/2009.02.logging.aspx.

        [8] Paul S.Randal.SQL Server: Recovering from Disasters Using Backups[EB/OL]. https://technet.microsoft.com/en-us/library/ee677581.aspx.

        [9] Paul S.Randal. Debunking a couple of myths around full database backups[EB/OL].https://www.sqlskills.com/blogs/paul/debunking-a-couple-of-myths-around-full-database-backups/.

        [10] Paul S.Randal. More on how much transaction log a full backup includes [EB/OL]. https://www.sqlskills.com/blogs/paul/more-on-how-much-transaction-log-a-full-backup-includes/.

        [11] 王渝次.信息系統(tǒng)災難恢復的規(guī)劃及實施[M].北京:北京交通大學出版社,2006.

        猜你喜歡
        恢復檢查點備份
        “備份”25年:鄧清明圓夢
        Spark效用感知的檢查點緩存并行清理策略①
        免疫檢查點抑制劑相關內分泌代謝疾病
        免疫檢查點抑制劑在腫瘤治療中的不良反應及毒性管理
        利用存儲系統(tǒng)恢復服務器系統(tǒng)
        分布式任務管理系統(tǒng)中檢查點的設計
        淺析數(shù)據(jù)的備份策略
        科技視界(2015年6期)2015-08-15 00:54:11
        出版原圖數(shù)據(jù)庫遷移與備份恢復
        計算機應用文摘(2005年1期)2005-04-29 07:40:53
        麻豆md0077饥渴少妇| 亚洲精品尤物av在线网站| 国成成人av一区二区三区| 精品天堂色吊丝一区二区| 中文字幕在线观看亚洲日韩 | 日韩av无码一区二区三区不卡| 一区二区传媒有限公司| 国产资源在线视频| 国产一区二区杨幂在线观看性色| 日韩日韩日韩日韩日韩日韩日韩| 日韩av精品国产av精品| 国产精品爽爽va在线观看网站| 91青青草视频在线播放| 少妇被猛烈进入到喷白浆| 中文成人无字幕乱码精品区| 无码不卡一区二区三区在线观看| 91久久国产露脸国语对白| 精品精品国产高清a毛片| 国产精品无码一区二区三区免费| AV无码免费不卡在线观看| 水蜜桃网站视频在线观看| 国产成人精品一区二区三区| 国语对白做受xxxxx在线中国| 国产西西裸体一级黄色大片| 亚洲一区二区三区国产| 欧美黑人群一交| 久久人妻AV无码一区二区| 精品人妻午夜中文字幕av四季| 日本真人边吃奶边做爽电影| 久久这里只精品国产免费10| 精品黄色av一区二区三区| 亚洲综合偷自成人网第页色| 久久久久波多野结衣高潮| 免费高清日本中文| 日本a级片一区二区三区| 亚洲精品久久久av无码专区| 91免费永久国产在线观看| 国产精品久久婷婷六月| 日韩欧美在线综合网另类| 少妇精品久久久一区二区三区| 亚洲香蕉av一区二区蜜桃|