SQL Server數(shù)據(jù)庫(kù)之備份和恢復(fù)數(shù)據(jù)庫(kù)
1. 概述
在一些對(duì)數(shù)據(jù)可靠性要求很高的行業(yè),若發(fā)生意外停機(jī)或數(shù)據(jù)丟失,其損失是十分慘重的;
數(shù)據(jù)庫(kù)管理員應(yīng)針對(duì)具體的業(yè)務(wù)要求指定詳細(xì)的數(shù)據(jù)庫(kù)備份與災(zāi)難恢復(fù)策略,并通過(guò)模擬故障對(duì)每種可能的情況進(jìn)行嚴(yán)格測(cè)試,只有這樣才能保證數(shù)據(jù)的高可用性;
數(shù)據(jù)庫(kù)的備份是一個(gè)長(zhǎng)期過(guò)程,而恢復(fù)只在發(fā)生事故后才能進(jìn)行,恢復(fù)后可看做是備份數(shù)據(jù)庫(kù)的逆過(guò)程,恢復(fù)程度的好壞很大程度上依賴于備份的情況;
數(shù)據(jù)庫(kù)管理員在恢復(fù)時(shí)采取的步驟正確與否也會(huì)直接影響最終的恢復(fù)結(jié)果;
2. 備份類(lèi)型
備份數(shù)據(jù)庫(kù)是指對(duì)數(shù)據(jù)庫(kù)或事務(wù)日志進(jìn)行復(fù)制,當(dāng)系統(tǒng),磁盤(pán)或數(shù)據(jù)庫(kù)文件損壞時(shí),能使用備份文件進(jìn)行恢復(fù),防止數(shù)據(jù)丟失;
SQL Server 數(shù)據(jù)庫(kù)備份支持以下幾種類(lèi)型,分別應(yīng)用于不同的場(chǎng)合:
1.僅復(fù)制備份
獨(dú)立于正常 SQL Server 備份序列的特殊用途備份;
2.數(shù)據(jù)備份
完整數(shù)據(jù)庫(kù)的數(shù)據(jù)備份(數(shù)據(jù)庫(kù)備份)、部分?jǐn)?shù)據(jù)庫(kù)的數(shù)據(jù)備份(部分備份)或一組數(shù)據(jù)文件或文件組的備份(文件備份);
3.數(shù)據(jù)庫(kù)備份
數(shù)據(jù)庫(kù)的備份,完整數(shù)據(jù)庫(kù)備份表示備份完成時(shí)的整個(gè)數(shù)據(jù)庫(kù);差異數(shù)據(jù)庫(kù)備份植保會(huì)自最近完整備份以來(lái)對(duì)數(shù)據(jù)庫(kù)所做的更改;
4.差異備份
基于完成數(shù)據(jù)庫(kù)或部分?jǐn)?shù)據(jù)庫(kù)以及一組數(shù)據(jù)文件或文件組的最新完整備份的數(shù)據(jù)備份(“差異基準(zhǔn)”),僅包含自差異基準(zhǔn)以來(lái)發(fā)生了更改數(shù)據(jù)區(qū);部分差異備份僅記錄自上一次部分備份(稱為“差異基準(zhǔn)”)以來(lái)文件組中發(fā)證更改的數(shù)據(jù)區(qū);
5.完整備份
一種數(shù)據(jù)備份,包含特定數(shù)據(jù)庫(kù)或者一組特定的文件組或文件中的所有數(shù)據(jù),以及能恢復(fù)這些數(shù)據(jù)的足夠的日志;
6.日志備份
包括以前日志備份中未備份的所有日志記錄的事務(wù)日志備份,完整恢復(fù)模式;
7.文件備份
一個(gè)或多個(gè)數(shù)據(jù)庫(kù)文件或文件組的備份;
8.部分備份
僅包含數(shù)據(jù)庫(kù)中部分文件組的數(shù)據(jù)(包含主要文件組、每個(gè)讀/寫(xiě)文件組以及任何可選指定的只讀文件中的數(shù)據(jù));
3. 恢復(fù)模式
恢復(fù)模式在控制事務(wù)日志維護(hù),提供給用戶選擇;SQL Server 數(shù)據(jù)庫(kù)中有3中恢復(fù)模式:簡(jiǎn)單恢復(fù)模式、完全恢復(fù)模式、大容量日志恢復(fù)模式;
通常,數(shù)據(jù)庫(kù)使用完全恢復(fù)模式或簡(jiǎn)單恢復(fù)模式;
3.1 簡(jiǎn)單恢復(fù)模式
簡(jiǎn)單恢復(fù)模式能最大限度地減少事務(wù)日志的管理開(kāi)銷(xiāo),因?yàn)樗粋浞菔聞?wù)日志;若數(shù)據(jù)庫(kù)損壞,則簡(jiǎn)單恢復(fù)模式將面臨極大的工作丟失風(fēng)險(xiǎn),數(shù)據(jù)只能恢復(fù)到已丟失數(shù)據(jù)的最新備份
所以,在簡(jiǎn)單恢復(fù)模式下,備份間隔應(yīng)盡可能短,以防止大量丟失數(shù)據(jù),但,間隔的長(zhǎng)度應(yīng)該足以避免備份開(kāi)銷(xiāo)影響生產(chǎn)工作;在備份策略中加入差異備份有助于減少開(kāi)銷(xiāo);
對(duì)于用戶數(shù)據(jù)庫(kù),簡(jiǎn)單恢復(fù)模式用于測(cè)試和開(kāi)發(fā)數(shù)據(jù)庫(kù),或用于主要包含只讀數(shù)據(jù)的數(shù)據(jù)庫(kù)(如數(shù)據(jù)倉(cāng)庫(kù));簡(jiǎn)單恢復(fù)模式并不適用生產(chǎn)系統(tǒng),因?yàn)閷?duì)于生產(chǎn)系統(tǒng)來(lái)說(shuō),丟失最新的更改是無(wú)法接受的,在這種情況下建議使用完全恢復(fù)模式;
3.2 完全恢復(fù)模式和大容量日志恢復(fù)模式
相對(duì)于簡(jiǎn)單恢復(fù)模式,完全恢復(fù)模式和大容量日志恢復(fù)模式提供了更強(qiáng)的數(shù)據(jù)保護(hù)功能;這些恢復(fù)模式基于備份事務(wù)日志來(lái)提供完整的可恢復(fù)性及在最大范圍的故障情形內(nèi)防止丟失工作;
1.完全恢復(fù)模式
完全恢復(fù)模式需要日志備份;此模式完整記錄所有事務(wù),并將事務(wù)日志記錄保留到對(duì)其備份完畢為止;若能夠在出現(xiàn)故障后備份日志尾部,就能使用完全恢復(fù)模式將數(shù)據(jù)庫(kù)恢復(fù)到故障點(diǎn);完全恢復(fù)模式也支持還原單個(gè)數(shù)據(jù)頁(yè);
2.大容量日志恢復(fù)模式
大容量日志記錄大多數(shù)大容量操作,他只用在完全恢復(fù)模式的附加模式;對(duì)于某些大規(guī)模大容量操作(如大容量導(dǎo)入或索引創(chuàng)建),暫時(shí)切換到大容量日志恢復(fù)模式可提供性能并減少日志空間使用量;與完全恢復(fù)模式相同,大容量日志恢復(fù)模式也能將事務(wù)日志記錄保留到對(duì)其備份完畢為止;
注意: 由于大容量日志恢復(fù)模式不支持時(shí)點(diǎn)恢復(fù),所以必須在增大日志備份與增加工作丟失風(fēng)險(xiǎn)之間進(jìn)行權(quán)衡;
4. 備份數(shù)據(jù)庫(kù)
為了方便用戶,SQL Server 數(shù)據(jù)庫(kù)支持用戶在數(shù)據(jù)庫(kù)在線并正在使用時(shí)進(jìn)行備份;
但,存在以下限制:
1.無(wú)法備份脫機(jī)數(shù)據(jù); 隱式或顯式引用脫機(jī)數(shù)據(jù)的任何備份操作都會(huì)失??;即使一個(gè)或多個(gè)數(shù)據(jù)文件不可以,日志備份也能成功;
注意: 若某個(gè)文件包含大容量日志恢復(fù)模式下所作的大容量日志更改,則所有文件都必須處于聯(lián)機(jī)狀態(tài)才能成功備份;
2.備份過(guò)程中的并發(fā)限制; 數(shù)據(jù)庫(kù)仍在使用時(shí),SQL Server 能使用聯(lián)機(jī)備份過(guò)程來(lái)備份數(shù)據(jù)庫(kù);在備份過(guò)程中,能進(jìn)行多個(gè)操作;但,若正在創(chuàng)建或刪除數(shù)據(jù)庫(kù)文件時(shí)嘗試啟動(dòng)備份操作,則備份文件將等待,直到創(chuàng)建或刪除完成或備份超時(shí);
若備份操作與文件管理操作或收縮操作重疊,就會(huì)發(fā)生沖突;無(wú)論哪個(gè)沖突操作首先開(kāi)始,第二個(gè)操作總會(huì)等待第一個(gè)操作設(shè)置的鎖超時(shí)(超時(shí)期限由會(huì)發(fā)超時(shí)設(shè)置控制);若在超市期限內(nèi)釋放鎖,第二個(gè)操作將繼續(xù)執(zhí)行;若鎖超時(shí),則第二個(gè)操作失敗;
使用 SSMS 繼續(xù)備份的過(guò)程如下:
1.右擊要備份的數(shù)據(jù)庫(kù),任務(wù) → 備份;

2.先刪除,再添加;


3.在彈出的選擇備份目標(biāo)對(duì)話框匯總,選擇好備份的路徑;文件類(lèi)型選擇備份文件,文件名 填寫(xiě)需要備份的數(shù)據(jù)庫(kù)的名稱,最好在備份的數(shù)據(jù)庫(kù)的名稱后加上日期,方便以后查找,再連續(xù)單擊確定,即可完成備份;



5. 恢復(fù)數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)完整還原的目的還是還原整個(gè)數(shù)據(jù)庫(kù),真?zhèn)€數(shù)據(jù)庫(kù)在還處于脫機(jī)狀態(tài);
在數(shù)據(jù)庫(kù)的任何部分變成聯(lián)機(jī)之前,必須將所有數(shù)據(jù)恢復(fù)之前,必須將所喲數(shù)據(jù)恢復(fù)到同一點(diǎn),即數(shù)據(jù)庫(kù)的所有部分都處于同一時(shí)間點(diǎn)并不存在未提交的事務(wù);
簡(jiǎn)單恢復(fù)模式下,數(shù)據(jù)庫(kù)不能還原到特定備份中的特定時(shí)間點(diǎn);
完整恢復(fù)模式下,還原備份數(shù)據(jù)庫(kù)之后,必須還原所有后續(xù)的事務(wù)日志備份,再恢復(fù)數(shù)據(jù)庫(kù),能將數(shù)據(jù)庫(kù)還原到這些日志備份之一的特定恢復(fù)點(diǎn);恢復(fù)點(diǎn)可以是特定的日期和時(shí)間、標(biāo)記的事務(wù)或日志序列號(hào),還原數(shù)據(jù)庫(kù)時(shí),特別是在完整恢復(fù)模式或大容量日志恢復(fù)模式下,應(yīng)使用一個(gè)還原順序;
注意: 還原順序由通過(guò)一個(gè)或多個(gè)還原階段來(lái)移動(dòng)數(shù)據(jù)的一個(gè)或多個(gè)還原操作組成;
用 SSMS 對(duì)象管理資源管理器恢復(fù)數(shù)據(jù)庫(kù),操作步驟如下:
1.展開(kāi)數(shù)據(jù)庫(kù),根據(jù)具體的數(shù)據(jù)庫(kù)選擇一個(gè)用戶數(shù)據(jù)庫(kù),或展開(kāi)系統(tǒng)數(shù)據(jù)庫(kù)并選擇一個(gè)系統(tǒng)數(shù)據(jù)庫(kù);右擊數(shù)據(jù)庫(kù),單擊還原數(shù)據(jù)庫(kù);

2.在常規(guī),使用源部分指定要還原的備份集和位置;在目標(biāo)部分,數(shù)據(jù)庫(kù)文本框自動(dòng)填充要還原的數(shù)據(jù)庫(kù)的名稱;
若要更改數(shù)據(jù)庫(kù)名稱,可在數(shù)據(jù)庫(kù)文本框中輸入新名稱;
在還原到框中,保留默認(rèn)選項(xiàng)至最近一次進(jìn)行的備份,或單擊時(shí)間線訪問(wèn)備份時(shí)間線,以手動(dòng)選擇要停止恢復(fù)的時(shí)間點(diǎn);



以上就是SQL Server 數(shù)據(jù)庫(kù)之備份和恢復(fù)數(shù)據(jù)庫(kù)的詳細(xì)內(nèi)容,更多關(guān)于數(shù)據(jù)庫(kù)備份和恢復(fù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- SqlServer備份數(shù)據(jù)庫(kù)的4種方式介紹
- SQLServer 2005 自動(dòng)備份數(shù)據(jù)庫(kù)的方法分享(附圖解教程)
- SQLServer2005 沒(méi)有日志文件(*.ldf) 只有數(shù)據(jù)文件(*.mdf) 恢復(fù)數(shù)據(jù)庫(kù)的方法
- sqlserver只有MDF文件恢復(fù)數(shù)據(jù)庫(kù)的方法
- sqlserver數(shù)據(jù)庫(kù)導(dǎo)入方法的詳細(xì)圖文教程
- sqlserver給表添加新字段、給表和字段添加備注、更新備注及查詢備注(sql語(yǔ)句)
- 一文教會(huì)你用python連接并簡(jiǎn)單操作SQLserver數(shù)據(jù)庫(kù)
相關(guān)文章
sql2000 卸載后重新安裝時(shí)不能安裝的解決辦法
sql2000卸載了后重新安裝時(shí)不能安裝的解決辦法,大家可以看下,下面的步驟。2009-07-07
使用navicat新舊版本連接PostgreSQL高版本報(bào)錯(cuò)問(wèn)題的圖文解決辦法
這篇文章主要介紹了使用navicat新舊版本連接PostgreSQL高版本報(bào)錯(cuò)問(wèn)題的圖文解決辦法,文中通過(guò)圖文講解的非常詳細(xì),對(duì)大家解決問(wèn)題有一定的幫助,需要的朋友可以參考下2024-12-12
格式導(dǎo)致的Excel導(dǎo)入sql出現(xiàn)異常的解決方法
因?yàn)镋xcel導(dǎo)入到sql的事兒,今天折騰了大半天。2009-03-03
sqlserver利用存儲(chǔ)過(guò)程去除重復(fù)行的sql語(yǔ)句
以前弄過(guò)類(lèi)似,去除相同信息的方法,現(xiàn)在找不到了,不過(guò)今天又花一些時(shí)間給弄出來(lái)了,記錄一下2010-06-06
向數(shù)據(jù)庫(kù)中插入數(shù)據(jù)并返回當(dāng)前插入的行數(shù)及全局變量@@IDENTITY應(yīng)用
向數(shù)據(jù)庫(kù)中插入數(shù)據(jù)并返回當(dāng)前插入的的行數(shù),這項(xiàng)功能很實(shí)用的可以判斷是否為批量插入主要是利用全局變量@@IDENTITY實(shí)現(xiàn),感興趣的朋友可以了解下啊,希望本文對(duì)你鞏固sql知識(shí)很有幫助的2013-01-01
SQL Server 2016 查詢存儲(chǔ)性能優(yōu)化小結(jié)
SQL Server 2016已經(jīng)發(fā)布了有半年多,相信還有很多小伙伴還沒(méi)有開(kāi)始使用,今天我們來(lái)談?wù)凷QL Server 2016 查詢存儲(chǔ)性能優(yōu)化,希望大家能夠喜歡2016-01-01
SQL語(yǔ)句分組獲取記錄的第一條數(shù)據(jù)的方法
SQL語(yǔ)句分組獲取記錄的第一條數(shù)據(jù)的方法,使用Northwind 數(shù)據(jù)庫(kù)為例子2012-07-07
SQLSERVER不拼接SQL如何實(shí)現(xiàn)條件查詢
在做項(xiàng)目中,我們經(jīng)常遇到復(fù)雜的查詢方法,本文主要介紹了SQLSERVER不拼接SQL如何實(shí)現(xiàn)條件查詢,具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01

