亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > SQL Server > 正文

SQL Server 數據庫備份和還原認識和總結 (一)

2024-08-31 00:57:06
字體:
來源:轉載
供稿:網友
可能許多同學對SQL Server的備份和還原有一些了解,也可能經常使用備份和還原功能,我相信除DBA之外我們大部分開發員隊伍對備份和還原只使用最基礎的功能,對它也只有一個大概的認識,如果對它有更深入的認識,了解它更全面的功能豈不是更好,到用時會得心應手。因為經常有中小型客戶公司管理人員對數據庫不了解或掌握不牢,會請我們技術人員出馬找回丟失的數據或硬件損壞移動數據的現象,或其它情況的發生。

首先從數據庫【恢復模式】說起,因為數據庫如果恢復模式設置不正確,會導致數據無法還原。

SQL Server 2012對數據庫備份和還原與SQL Server 2008基本沒有太大變化,僅對還原時間點選擇UI和相關還原選項做了小改動,備份和還原核心沒有做變化,這只是個人的掌握和了解,僅供參考,具體還請以官方文檔為依據。以下利用SQL Server 2012 SSMS(SQL Server Management Studio)做圖例演示。

SQL Server 2008數據庫恢復模式分為三種:完整恢復模式、大容量日志恢復模式、簡單恢復模式。

SQL Server 數據庫備份和還原認識和總結 (一)

◆ 完整恢復模式。為默認恢復模式。它會完整記錄下操作數據庫的每一個步驟。使用完整恢復模式可以將整個數據庫恢復到一個特定的時間點,這個時間點可以是最近一次可用的備份、一個特定的日期和時間或標記的事務。

◆ 大容量日志恢復模式。它是對完整恢復模式的補充。簡單地說就是要對大容量操作進行最小日志記錄,節省日志文件的空間(如導入數據、批量更新、SELECT INTO等操作時)。比如一次在數據庫中插入數十萬條記錄時,在完整恢復模式下每一個插入記錄的動作都會記錄在日志中,使日志文件變得非常大,在大容量日志恢復模式下,只記錄必要的操作,不記錄所有日志,這樣一來,可以大大提高數據庫的性能,但是由于日志不完整,一旦出現問題,數據將可能無法恢復。因此,一般只有在需要進行大量數據操作時才將恢復模式改為大容量日志恢復模式,數據處理完畢之后,馬上將恢復模式改回完整恢復模式。

◆ 簡單恢復模式。在該模式下,數據庫會自動把不活動的日志刪除,因此簡化了備份的還原,但因為沒有事務日志備份,所以不能恢復到失敗的時間點。通常,此模式只用于對數據庫數據安全要求不太高的數據庫。并且在該模式下,數據庫只能做完整和差異備份。

了解了以上數據庫還原模式后,一般就應該知道將自己的數據庫設置為何種模式了。備份數據庫,SQL Server 2008提供了四種備份方式:完整備份、差異備份、事務日志備份、文件和文件組備份。

SQL Server 數據庫備份和還原認識和總結 (一)

◆ 完整備份:備份整個數據庫的所有內容,包括事務日志。該備份類型需要比較大的存儲空間來存儲備份文件,備份時間也比較長,在還原數據時,也只要還原一個備份文件。

◆ 差異備份:差異備份是完整備份的補充,只備份上次完整備份后更改的數據。相對于完整備份分來說,差異備份的數據量比完整數據備份小,備份的速度也比完整備份要快。因此,差異備份通常作為常用的備份方式。在還原數據時,要先還原前一次做的完整備份,然后還原最后一次所做的差異備份,這樣才能讓數據庫里的數據恢復到與最后一次差異備份時的內容相同。

◆ 事務日志備份:事務日志備份只備份事務日志里的內容。事務日志記錄了上一次完整備份或事務日志備份后數據庫的所有變動過程。事務日志記錄的是某一段時間內的數據庫變動情況,因此在進行事務日志備份之前,必須要進行完整備份。與差異備份類似,事務日志備份生成的文件較小、占用時間較短,但是在還原數據時,除了先要還原完整備份之外,還要依次還原每個事務日志備份,而不是只還原最后一個事務日志備份(這是與差異備份的區別)。

◆ 文件和文件組備份。如果在創建數據庫時,為數據庫創建了多個數據庫文件或文件組,可以使用該備份方式。使用文件和文件組備份方式可以只備份數據庫中的某些文件,該備份方式在數據庫文件非常龐大時十分有效,由于每次只備份一個或幾個文件或文件組,可以分多次來備份數據庫,避免大型數據庫備份的時間過長。另外,由于文件和文件組備份只備份其中一個或多個數據文件,當數據庫里的某個或某些文件損壞時,可能只還原損壞的文件或文件組備份。

完整備份可能比較好理解。例如,在2012年1月1日早上8點進行了完整備份,那么將來在還原時,就可以恢復到2012年1月有1日早上8點時的數據庫狀態。

差異備份是備份完整備份后的數據變動情況。例如,在2012年1月1日早上8點進行了完整備份后,在1月2日和1月3日又分別進行了差異備份,那么在1月2日的差異備份里記錄的是從1月1日到1月2日這一段時間里的數據變動情況,而在1月3日的差異備份里記錄的是從1月1日到1月3日這一段時間里的數據變動情況。因此,如果要還原到1月3日的狀態,只要先還原1月1日做的完整備份,再還原1月3日做的差異備份就可以了。

事務日志備份是以事務日志文件作為備份對象,相當于將數據庫里的每一個操作都記錄下來了。假設在2012年1月1日早上8點進行了完整備份后,到1月2日早上8點為止,數據庫里的數據變動了100次,如果此時做了差異備份,那么差異備份記錄的是第100次數據變動后的數據庫狀態,而如果此時做了事務日志備份,備份的將是這100次的數據變動情況。

再舉一個例子,例如在2012年1月1日早上8點進行了完整備份后,在1月2日和1月3日又進行了事務日志備份,那么在1月2日的事務日志備份里記錄的是從1月1日到1月2日這一段時間里的數據變動情況,而在1月3日的事務日志備份里記錄的是從1月2日到1月3日這一段時間里的數據變動情況。因此,如果要還原到1月3日的數據,需要先還原1月1日做的完整備份,再還原1月2日做的事務日志備份,最后還要還原1月3日所做的事務日志備份。

了解了以上數據庫備份方式后,便可以針對自己的數據庫利用以上方式來備份數據庫了。合理備份數據庫需要考慮幾方面,首先是數據安全,其次是備份文件大小,最后是做備份和還原能承受的時間范圍。

例如,如果數據庫里每天變動的數據量很小,可以每周(周日)做一次完整備份,以后的每天(下班前)做一次事務日志備份,那么一旦數據庫發生問題,可以將數據恢復到前一天(下班時)的狀態。

當然,也可以在周日時做一次完整備份,周一到周六每天下班前做一次差異備份,這樣一旦數據庫發生問題,同樣可以將數據恢復到前一天下班時的狀態。只是一周的后幾天做差異備份時,備份的時間和備份的文件都會跟著增加。但這也有一個好處,在數據損壞時,只要恢復完整備份的數據和前一天差異備份的數據即可,不需要去恢復每一天的事務日志備份,恢復的時間會比較短。

如果數據庫里的數據變動得比較頻繁,損失一個小時的數據都是十分嚴重的損失時,用上面的辦法備份數據就不可行了,此時可以交替使用三種備份方式來備份數據庫。

例如,每天下班時做一次完整備份,在兩次完整備份之間每隔八小時做一次差異備份,在兩次差異備份之間每隔一小時做一次事務日志備份。如此一來,一旦數據損壞可以將數據恢復到最近一個小時以內的狀態,同時又能減少數據庫備份數據的時間和備份數據文件的大小。

在前面還提到過當數據庫文件過大不易備份時,可以分別備份數據庫文件或文件組,將一個數據庫分多次備份。在現實操作中,還有一種情況可以使用到數據庫文件的備份。例如在一個數據庫中,某些表里的數據變動得很少,而某些表里的數據卻經常改變,那么可以考慮將這些數據表分別存儲在不同的文件或文件組里,然后通過不同的備份頻率來備份這些文件和文件組。但使用文件和文件組來進行備份,還原數據時也要分多次才能將整個數據庫還原完畢,所以除非數據庫文件大到備份困難,否則不要使用該備份方式。

針對以上備份方案,能看出數據還是不完整嗎?比如昨天夜間12點做了完整備份,每隔一小時做了一次事務日志備份,最后一次事務日志備份是今天中午12點,現在是今天中午12點10分,發現數據庫數據遭到丟失或破壞,可最后一次事務日志備份是今天中午12點,如果我此時將數據庫恢復到12點,那么12點后至12點10分前沒遭到破壞的操作數據將丟失(比如數據庫有三個表,一個表的數據遭到破壞,其它兩個表的數據被其它用戶變動)。此時就要用到【尾部日志備份】,尾部日志備份原理是從最后一次事務日志備份的時間點開始,將之后的所有操作進行備份,還原時便可以找到12點后操作的正確數據了。

注:進行尾部日志備份時,數據庫將強制停止數據庫,此時如果不停止數據庫,還有用戶繼續操作,尾部日志備份將失去意義。SQL Server 2012如果你最后一次備份事務日志后,對數據進行過改動,即發生過事務日志(也就是當前日志文件記錄的LSN(日志序列號)大于最后一次事務日志備份里記錄的最大LSN,SQL Server通過LSN來區分日志的記錄),并尚未對尾部日志備份,它會提示并要求你必須先做尾部備份。

實例部分:

◆ 首先進行完整備份【MyTest.bak】,然后再基于此備份文件進行兩次事務日志備份,最后一次事務日志備份時間為【2012-8-4 23:07】

圖1-1:備份文件名為【MyTest.bak】,最后一次事務日志備份時間為【2012-8-4 23:07】

SQL Server 數據庫備份和還原認識和總結 (一)

圖1-2:選擇備份文件“MyTest.bak”后,此時能看到“要還原的備份集”列表里顯示有備份文件,分別列出了完整備份文件和兩次事務日志備份。

SQL Server 數據庫備份和還原認識和總結 (一)

以上備份文件最后一次事務日志備份時間為【2012-8-4 23:07】,那么,您可以還原到自首次完整備份開始后,至最后一次事務日志備份時間期間的任何一個時間點,這就充分驗證上上文講到的事務日志備份方式(如果后期進行過尾部日志備份,還原時在“要還原的備份集”列表里的最后一行會列出尾部日志記錄)。

如果事務日志備份有兩次,分別是“事務日志1”、“事務日志2”,那么在還原時去掉“事務日志1”復選框,“事務日志2”也會自動去掉,但只去掉“事務日志2”是允許的,這也充分驗證了上文講到的:“在還原數據時,除了先要還原完整備份之外,還要依次還原每個事務日志備份,而不是只還原最后一個事務日志備份”,不比差異備份可以基于完整備份,只還原最后一次差異備份即可。

圖1-3:我【2012-08-04 23:36:53】插入一條數據,【2012-08-04 23:37:44】又做了一次事務日志備份3,然后再將時間點還原到【2012-08-04 23:36:00】,還原后,此時間點后的數據就沒有了。

【注意:在還原時會提示數據庫正在使用,一般要斷開全部連接后,才能進行還原。我一般使用腳本將數據脫機再聯機,所有連接將會全部斷開】

alter database MyTest set offline with ROLLBACK IMMEDIATE--脫機
alter database MyTest set online with ROLLBACK IMMEDIATE--聯機

SQL Server 數據庫備份和還原認識和總結 (一)

SQL Server 數據庫備份和還原認識和總結 (一)

◆ 如果你最后一次是做的完整備份,基于完整備份想還原到某個時間點是不允許的。

圖2-1:備份文件名為【MyTestA.bak】,備份時間為【2012-8-4 22:33】

SQL Server 數據庫備份和還原認識和總結 (一)

圖2-2:先選擇最后一次完整備份文件MyTestA,此時能看到“要還原的備份集”列表里顯示有備份文件,然后再點“時間線”按鈕進入“備份時間線”界面,將最后一次完整備份時間由“22:33:41”改為它之前任何一個時間點,如改為“22:32:41”,然后再確定,會看到圖2-3的效果。

SQL Server 數據庫備份和還原認識和總結 (一)

圖2-3:只要基于完整備份再還原到某個時間點是不允許的,因為完整備份后沒做過任何差異備份或事務日志備份。此時能看到“要還原的備份集”列表里顯示為空,無法進行還原。

SQL Server 數據庫備份和還原認識和總結 (一)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久91精品国产| 最近2019中文字幕在线高清| 另类美女黄大片| 国内精品400部情侣激情| 亚洲成人动漫在线播放| 久久777国产线看观看精品| 日韩精品极品在线观看| 亚洲性av网站| 久久伊人免费视频| 在线色欧美三级视频| 亚洲一区二区三区乱码aⅴ| 51视频国产精品一区二区| zzijzzij亚洲日本成熟少妇| 欧美黄色免费网站| 国产中文日韩欧美| 欧美日韩另类在线| 日本精品久久久久久久| 911国产网站尤物在线观看| 欧美电影免费观看| 亚洲精品国产美女| 国色天香2019中文字幕在线观看| 91国产视频在线播放| 奇米4444一区二区三区| 亚洲美女激情视频| 日韩成人在线视频网站| 亚洲国产成人精品电影| 中文在线资源观看视频网站免费不卡| 亚洲男人天天操| 久久天天躁狠狠躁夜夜爽蜜月| 国产成人精品日本亚洲专区61| 超碰精品一区二区三区乱码| 欧美与欧洲交xxxx免费观看| 国产精品激情av电影在线观看| 久久夜色精品国产亚洲aⅴ| 美女999久久久精品视频| 亚洲日本欧美日韩高观看| 国产精自产拍久久久久久| 国产一区二区欧美日韩| 精品久久久香蕉免费精品视频| 国产一区二区三区精品久久久| 日韩av在线不卡| 日产精品99久久久久久| 国产日韩精品综合网站| 久久成人在线视频| 欧美日本在线视频中文字字幕| 亚洲欧美中文在线视频| 黑人精品xxx一区| 欧美香蕉大胸在线视频观看| 中文字幕国产日韩| 国产亚洲欧洲高清| 亚洲男人天天操| 亚洲成人教育av| 亚洲第一国产精品| 日韩成人激情影院| 91免费在线视频网站| 久久全国免费视频| 亚洲91精品在线观看| 国产91精品高潮白浆喷水| 日韩人体视频一二区| 国产精品视频久久久| 欧美日韩中文字幕在线视频| 九九九热精品免费视频观看网站| 亚洲第一精品夜夜躁人人躁| 欧美亚洲成人xxx| 亚洲国产日韩欧美在线动漫| 中文字幕av一区二区三区谷原希美| 亚洲成色777777在线观看影院| 亚洲日韩第一页| 国产一区二区日韩| 国产日韩在线精品av| 91精品国产一区| 视频在线观看一区二区| 色偷偷偷综合中文字幕;dd| 国产精品极品在线| 理论片在线不卡免费观看| 欧美另类精品xxxx孕妇| 久久这里有精品视频| 亚洲天堂一区二区三区| 精品久久久久久亚洲国产300| 亚洲激情视频在线观看| 日韩在线中文字幕| 国产成人鲁鲁免费视频a| 久久亚洲精品小早川怜子66| 久久久久久久电影一区| 国产精品日韩在线观看| 日韩激情视频在线| 中文字幕国产亚洲2019| 精品成人av一区| 国产日韩精品在线观看| 亚洲精品91美女久久久久久久| 国产精品成人免费电影| 亚洲少妇中文在线| 欧美国产亚洲精品久久久8v| 久久91精品国产| 欧美福利视频在线观看| 51色欧美片视频在线观看| 91视频国产高清| 久久精品国产一区二区三区| 热久久这里只有| 亚洲激情国产精品| xx视频.9999.com| 免费不卡欧美自拍视频| 亚洲精品一区中文| 久久中文字幕视频| 亚洲精品国产品国语在线| 91在线中文字幕| 久久久久久久国产精品| 国产精品99久久久久久久久久久久| 一本色道久久88综合日韩精品| 日韩久久午夜影院| 国产一区二区日韩精品欧美精品| 成人亚洲综合色就1024| 日韩欧美精品网站| 2020国产精品视频| 日韩av在线精品| 国产精品无码专区在线观看| 亚洲国产日韩欧美综合久久| 爱福利视频一区| 国产精品极品在线| 日韩av在线影视| 久久精品国产欧美亚洲人人爽| 7m精品福利视频导航| 伦理中文字幕亚洲| 国产男女猛烈无遮挡91| 韩国日本不卡在线| 欧美大尺度在线观看| 国产精品成av人在线视午夜片| 欧美做受高潮电影o| 国产区亚洲区欧美区| 国产精品久久久av久久久| 欧美久久久精品| 亚洲a在线播放| 亚洲激情国产精品| 欧美xxxx14xxxxx性爽| 中文字幕日韩有码| 国产精品视频地址| 91精品国产91久久久久福利| 奇米4444一区二区三区| 亚洲免费视频一区二区| 成人妇女淫片aaaa视频| 精品久久久国产精品999| 国产精品日韩久久久久| 国产精品福利无圣光在线一区| 97视频在线观看视频免费视频| 国产日韩精品在线观看| 伊人青青综合网站| 亚洲激情电影中文字幕| 欧洲成人免费aa| 欧美超级免费视 在线| 国产suv精品一区二区三区88区| 久久精品青青大伊人av| www国产亚洲精品久久网站| 亚洲精品网站在线播放gif| 欧美日韩xxxxx| 国产精品人人做人人爽| 中文字幕日韩高清| 97在线观看视频| 亚洲肉体裸体xxxx137| 黄色成人在线播放| 亚洲精品电影网站| 日产精品久久久一区二区福利| 国产精品久久久久免费a∨大胸| 韩国美女主播一区| 亚洲精品国产精品国自产在线|