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

2.先刪除,再添加;


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



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

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



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

