SQL Server數(shù)據(jù)庫之備份和恢復數(shù)據(jù)庫
1. 概述
在一些對數(shù)據(jù)可靠性要求很高的行業(yè),若發(fā)生意外停機或數(shù)據(jù)丟失,其損失是十分慘重的;
數(shù)據(jù)庫管理員應針對具體的業(yè)務要求指定詳細的數(shù)據(jù)庫備份與災難恢復策略,并通過模擬故障對每種可能的情況進行嚴格測試,只有這樣才能保證數(shù)據(jù)的高可用性;
數(shù)據(jù)庫的備份是一個長期過程,而恢復只在發(fā)生事故后才能進行,恢復后可看做是備份數(shù)據(jù)庫的逆過程,恢復程度的好壞很大程度上依賴于備份的情況;
數(shù)據(jù)庫管理員在恢復時采取的步驟正確與否也會直接影響最終的恢復結(jié)果;
2. 備份類型
備份數(shù)據(jù)庫是指對數(shù)據(jù)庫或事務日志進行復制,當系統(tǒng),磁盤或數(shù)據(jù)庫文件損壞時,能使用備份文件進行恢復,防止數(shù)據(jù)丟失;
SQL Server 數(shù)據(jù)庫備份支持以下幾種類型,分別應用于不同的場合:
1.僅復制備份
獨立于正常 SQL Server 備份序列的特殊用途備份;
2.數(shù)據(jù)備份
完整數(shù)據(jù)庫的數(shù)據(jù)備份(數(shù)據(jù)庫備份)、部分數(shù)據(jù)庫的數(shù)據(jù)備份(部分備份)或一組數(shù)據(jù)文件或文件組的備份(文件備份);
3.數(shù)據(jù)庫備份
數(shù)據(jù)庫的備份,完整數(shù)據(jù)庫備份表示備份完成時的整個數(shù)據(jù)庫;差異數(shù)據(jù)庫備份植保會自最近完整備份以來對數(shù)據(jù)庫所做的更改;
4.差異備份
基于完成數(shù)據(jù)庫或部分數(shù)據(jù)庫以及一組數(shù)據(jù)文件或文件組的最新完整備份的數(shù)據(jù)備份(“差異基準”),僅包含自差異基準以來發(fā)生了更改數(shù)據(jù)區(qū);部分差異備份僅記錄自上一次部分備份(稱為“差異基準”)以來文件組中發(fā)證更改的數(shù)據(jù)區(qū);
5.完整備份
一種數(shù)據(jù)備份,包含特定數(shù)據(jù)庫或者一組特定的文件組或文件中的所有數(shù)據(jù),以及能恢復這些數(shù)據(jù)的足夠的日志;
6.日志備份
包括以前日志備份中未備份的所有日志記錄的事務日志備份,完整恢復模式;
7.文件備份
一個或多個數(shù)據(jù)庫文件或文件組的備份;
8.部分備份
僅包含數(shù)據(jù)庫中部分文件組的數(shù)據(jù)(包含主要文件組、每個讀/寫文件組以及任何可選指定的只讀文件中的數(shù)據(jù));
3. 恢復模式
恢復模式在控制事務日志維護,提供給用戶選擇;SQL Server 數(shù)據(jù)庫中有3中恢復模式:簡單恢復模式、完全恢復模式、大容量日志恢復模式;
通常,數(shù)據(jù)庫使用完全恢復模式或簡單恢復模式;
3.1 簡單恢復模式
簡單恢復模式能最大限度地減少事務日志的管理開銷,因為它不備份事務日志;若數(shù)據(jù)庫損壞,則簡單恢復模式將面臨極大的工作丟失風險,數(shù)據(jù)只能恢復到已丟失數(shù)據(jù)的最新備份
所以,在簡單恢復模式下,備份間隔應盡可能短,以防止大量丟失數(shù)據(jù),但,間隔的長度應該足以避免備份開銷影響生產(chǎn)工作;在備份策略中加入差異備份有助于減少開銷;
對于用戶數(shù)據(jù)庫,簡單恢復模式用于測試和開發(fā)數(shù)據(jù)庫,或用于主要包含只讀數(shù)據(jù)的數(shù)據(jù)庫(如數(shù)據(jù)倉庫);簡單恢復模式并不適用生產(chǎn)系統(tǒng),因為對于生產(chǎn)系統(tǒng)來說,丟失最新的更改是無法接受的,在這種情況下建議使用完全恢復模式;
3.2 完全恢復模式和大容量日志恢復模式
相對于簡單恢復模式,完全恢復模式和大容量日志恢復模式提供了更強的數(shù)據(jù)保護功能;這些恢復模式基于備份事務日志來提供完整的可恢復性及在最大范圍的故障情形內(nèi)防止丟失工作;
1.完全恢復模式
完全恢復模式需要日志備份;此模式完整記錄所有事務,并將事務日志記錄保留到對其備份完畢為止;若能夠在出現(xiàn)故障后備份日志尾部,就能使用完全恢復模式將數(shù)據(jù)庫恢復到故障點;完全恢復模式也支持還原單個數(shù)據(jù)頁;
2.大容量日志恢復模式
大容量日志記錄大多數(shù)大容量操作,他只用在完全恢復模式的附加模式;對于某些大規(guī)模大容量操作(如大容量導入或索引創(chuàng)建),暫時切換到大容量日志恢復模式可提供性能并減少日志空間使用量;與完全恢復模式相同,大容量日志恢復模式也能將事務日志記錄保留到對其備份完畢為止;
注意: 由于大容量日志恢復模式不支持時點恢復,所以必須在增大日志備份與增加工作丟失風險之間進行權衡;
4. 備份數(shù)據(jù)庫
為了方便用戶,SQL Server 數(shù)據(jù)庫支持用戶在數(shù)據(jù)庫在線并正在使用時進行備份;
但,存在以下限制:
1.無法備份脫機數(shù)據(jù); 隱式或顯式引用脫機數(shù)據(jù)的任何備份操作都會失?。患词挂粋€或多個數(shù)據(jù)文件不可以,日志備份也能成功;
注意: 若某個文件包含大容量日志恢復模式下所作的大容量日志更改,則所有文件都必須處于聯(lián)機狀態(tài)才能成功備份;
2.備份過程中的并發(fā)限制; 數(shù)據(jù)庫仍在使用時,SQL Server 能使用聯(lián)機備份過程來備份數(shù)據(jù)庫;在備份過程中,能進行多個操作;但,若正在創(chuàng)建或刪除數(shù)據(jù)庫文件時嘗試啟動備份操作,則備份文件將等待,直到創(chuàng)建或刪除完成或備份超時;
若備份操作與文件管理操作或收縮操作重疊,就會發(fā)生沖突;無論哪個沖突操作首先開始,第二個操作總會等待第一個操作設置的鎖超時(超時期限由會發(fā)超時設置控制);若在超市期限內(nèi)釋放鎖,第二個操作將繼續(xù)執(zhí)行;若鎖超時,則第二個操作失?。?/p>
使用 SSMS 繼續(xù)備份的過程如下:
1.右擊要備份的數(shù)據(jù)庫,任務 → 備份;
2.先刪除,再添加;
3.在彈出的選擇備份目標對話框匯總,選擇好備份的路徑;文件類型選擇備份文件,文件名 填寫需要備份的數(shù)據(jù)庫的名稱,最好在備份的數(shù)據(jù)庫的名稱后加上日期,方便以后查找,再連續(xù)單擊確定,即可完成備份;
5. 恢復數(shù)據(jù)庫
數(shù)據(jù)庫完整還原的目的還是還原整個數(shù)據(jù)庫,真?zhèn)€數(shù)據(jù)庫在還處于脫機狀態(tài);
在數(shù)據(jù)庫的任何部分變成聯(lián)機之前,必須將所有數(shù)據(jù)恢復之前,必須將所喲數(shù)據(jù)恢復到同一點,即數(shù)據(jù)庫的所有部分都處于同一時間點并不存在未提交的事務;
簡單恢復模式下,數(shù)據(jù)庫不能還原到特定備份中的特定時間點;
完整恢復模式下,還原備份數(shù)據(jù)庫之后,必須還原所有后續(xù)的事務日志備份,再恢復數(shù)據(jù)庫,能將數(shù)據(jù)庫還原到這些日志備份之一的特定恢復點;恢復點可以是特定的日期和時間、標記的事務或日志序列號,還原數(shù)據(jù)庫時,特別是在完整恢復模式或大容量日志恢復模式下,應使用一個還原順序;
注意: 還原順序由通過一個或多個還原階段來移動數(shù)據(jù)的一個或多個還原操作組成;
用 SSMS 對象管理資源管理器恢復數(shù)據(jù)庫,操作步驟如下:
1.展開數(shù)據(jù)庫,根據(jù)具體的數(shù)據(jù)庫選擇一個用戶數(shù)據(jù)庫,或展開系統(tǒng)數(shù)據(jù)庫并選擇一個系統(tǒng)數(shù)據(jù)庫;右擊數(shù)據(jù)庫,單擊還原數(shù)據(jù)庫;
2.在常規(guī),使用源部分指定要還原的備份集和位置;在目標部分,數(shù)據(jù)庫文本框自動填充要還原的數(shù)據(jù)庫的名稱;
若要更改數(shù)據(jù)庫名稱,可在數(shù)據(jù)庫文本框中輸入新名稱;
在還原到框中,保留默認選項至最近一次進行的備份,或單擊時間線訪問備份時間線,以手動選擇要停止恢復的時間點;
以上就是SQL Server 數(shù)據(jù)庫之備份和恢復數(shù)據(jù)庫的詳細內(nèi)容,更多關于數(shù)據(jù)庫備份和恢復的資料請關注腳本之家其它相關文章!
相關文章
SQL?Server實現(xiàn)group_concat函數(shù)的詳細舉例
這篇文章主要給大家介紹了關于SQL?Server實現(xiàn)group_concat函數(shù)的詳細舉例,GROUP_CONCAT函數(shù)可以拼接某個字段值成字符串,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2023-11-11SQL建立數(shù)據(jù)庫及刪除數(shù)據(jù)庫命令
SQL建立數(shù)據(jù)庫及刪除數(shù)據(jù)庫命令,需要使用sqlserver的朋友可以參考下。2011-11-11SQL Server誤區(qū)30日談 第3天 即時文件初始化特性可以在SQL Server中開啟和關閉
即時文件初始化是一個在SQL Server 2005以及之上的版本鮮為人知的特性。這個特性允許數(shù)據(jù)文件(僅僅是數(shù)據(jù)文件,不包括日志文件)初始化的過程跳過填0初始化過程。這種方式是在發(fā)生災難時大大減少Downtime的好辦法---在恢復數(shù)據(jù)庫時由于免去了填0初始化的過程而直接開始恢復過程2013-01-01- 本文主要介紹了SQL Server數(shù)據(jù)庫分頁的存儲過程的五種方法以及它們之間性能的比較,并給出了詳細的代碼,希望能夠?qū)δ兴鶐椭?/div> 2015-08-08
SQL?Server中row_number函數(shù)用法入門介紹
SQL?ROW_NUMBER函數(shù)是臨時值序列的非持久生成,并且在執(zhí)行查詢時會動態(tài)計算該函數(shù),下面這篇文章主要給大家介紹了關于SQL?Server中row_number函數(shù)用法的相關資料,需要的朋友可以參考下2023-03-03淺述SQL Server的聚焦強制索引查詢條件和Columnstore Index
本文主要講了強制使用索引條件來進行查詢,當對于使用默認創(chuàng)建索引進行查詢計劃時覺得不是最優(yōu)解,可以嘗試使用強制索引來進行對比找出更好得解決方案。簡短的內(nèi)容,深入的理解.有興趣的朋友可以看下2016-12-12SQL Server誤區(qū)30日談 第29天 有關堆碎片的誤區(qū)
對堆建聚集索引再DROP在我看來是除了收縮數(shù)據(jù)庫之外最2的事了2013-01-01SQLite3數(shù)據(jù)庫的介紹和使用教程(面向業(yè)務編程-數(shù)據(jù)庫)
這篇文章主要介紹了SQLite3數(shù)據(jù)庫的介紹和使用(面向業(yè)務編程-數(shù)據(jù)庫),本文從SQLite3的庫的獲取、工程管理、SQL語句介紹、C語言編程四個角度闡述了SQLite3數(shù)據(jù)庫的實際應用,需要的朋友可以參考下2023-05-05最新評論