SQL Server數(shù)據(jù)庫的三種恢復(fù)模式:簡單恢復(fù)模式、完整恢復(fù)模式和大容量日志恢復(fù)模式
如何圖形界面下修改恢復(fù)模式
找到你想修改的數(shù)據(jù)庫 右鍵 > 屬性 > 左側(cè) 選項既可看到

1.Simple 簡單恢復(fù)模式,
Simple模式的舊稱叫”Checkpoint with truncate log“,其實(shí)這個名字更形象,在Simple模式下,SQL Server會在每次checkpoint或backup之后自動截斷l(xiāng)og,也就是丟棄所有的inactive log records,僅保留用于實(shí)例啟動時自動發(fā)生的instance recovery所需的少量log,這樣做的好處是log文件非常小,不需要DBA去維護(hù)、備份log,但壞處也是顯而易見的,就是一旦數(shù)據(jù)庫出現(xiàn)異常,需要恢復(fù)時,最多只能恢復(fù)到上一次的備份,無法恢復(fù)到最近可用狀態(tài),因為log丟失了。 Simple模式主要用于非critical的業(yè)務(wù),比如開發(fā)庫和測試庫,但是道富這邊的SQL Server(即使是生產(chǎn)庫)大都采用Simple模式,是因為這邊的SQL Server大都用于非critical的業(yè)務(wù)(critical的數(shù)據(jù)庫大都采用Oracle和DB2),可以忍受少于1天的數(shù)據(jù)丟失(我們的job每天都會定時備份全庫)。
如果需要壓縮數(shù)據(jù)庫日志(Shrink語句),將數(shù)據(jù)庫模式切換到簡單恢復(fù)模式后壓縮率才是最高的,如果你的數(shù)據(jù)庫在完整恢復(fù)模式或大容量日志回復(fù)模式下采用日志壓縮,壓縮后的日志大小并不會很理想。
2.Full 完整恢復(fù)模式,
和Simple模式相反,F(xiàn)ull模式的舊稱叫”Checkpoint without truncate log“,也就是SQL Server不主動截斷l(xiāng)og,只有備份log之后,才可以截斷l(xiāng)og,否則log文件會一直增大,直到撐爆硬盤,因此需要部署一個job定時備份log。Full的好處是可以做point-in-time恢復(fù),最大限度的保證數(shù)據(jù)不丟失,一般用于critical的業(yè)務(wù)環(huán)境里。缺點(diǎn)就是DBA需要維護(hù)log,增加人員成本(其實(shí)也就是多了定時備份log這項工作而已)。
3.Bulk-logged 大容量日志恢復(fù)
Bulk-logged模式和full模式類似,唯一的不同是針對以下Bulk操作,會產(chǎn)生盡量少的log: 1) Bulk load operations (bcp and BULK INSERT). 2) SELECT INTO. 3) Create/drop/rebuild index 眾所周知,通常bulk操作會產(chǎn)生大量的log,對SQL Server的性能有較大影響,bulk-logged模式的作用就在于降低這種性能影響,并防止log文件過分增長,但是它的問題是無法point-in-time恢復(fù)到包含bulk-logged record的這段時間。 Bulk-logged模式的最佳實(shí)踐方案是在做bulk操作之前切換到bulk-logged,在bulk操作結(jié)束之后馬上切換回full模式。
以下是補(bǔ)充更簡單易懂
SQL Server 2008 支持三種恢復(fù)模式,即簡單恢復(fù)模式、完整恢復(fù)模式和大容量日志恢復(fù)模式。
1、簡單恢復(fù):無日志備份。自動回收日志空間以減少空間需求,實(shí)際上不再需要管理事務(wù)日志空間。 最新備份之后的更改不受保護(hù)。在發(fā)生災(zāi)難時,這些更改必須重做。 只能恢復(fù)到備份的結(jié)尾。
2、完整恢復(fù):需要日志備份。數(shù)據(jù)文件丟失或損壞不會導(dǎo)致丟失工作??梢曰謴?fù)到任意時點(diǎn)(例如應(yīng)用程序或用戶錯誤之前)。
3、大容量日志恢復(fù):需要日志備份。是完整恢復(fù)模式的附加模式,允許執(zhí)行高性能的大容量復(fù)制操作。通過使用最小方式記錄大多數(shù)大容量操作,減少日志空間使用量。
如果在最新日志備份后發(fā)生日志損壞或執(zhí)行大容量日志記錄操作,則必須重做自該上次備份之后所做的更改。否則不丟失任何工作??梢曰謴?fù)到任何備份的結(jié)尾。不支持時點(diǎn)恢復(fù)。
其中,如果符合下列任一要求,則使用完整恢復(fù)模式:
• 您必須能夠恢復(fù)所有數(shù)據(jù)。
• 數(shù)據(jù)庫包含多個文件組,并且您希望逐段還原讀/寫輔助文件組(以及可選地還原只讀文件組)。
• 您必須能夠恢復(fù)到故障點(diǎn)。
• 您希望可以還原單個頁。
• 您愿意承擔(dān)事務(wù)日志備份的管理開銷。
因此還原單個數(shù)據(jù)頁是完整恢復(fù)模式功能。
相關(guān)文章
詳解SQL Server 中 JSON_MODIFY 的使用
SQL Server 從 2016 開始支持了一些 JSON操作,最近的項目里也是好多地方字段直接存成了 JSON,需要了解一下怎么在SQL Server 中操作 JSON.這篇文章主要介紹了SQL Server 中 JSON_MODIFY 的使用,需要的朋友可以參考下2019-11-11
SQL Server Parameter Sniffing及其改進(jìn)方法
這篇文章主要介紹了SQL Server Parameter Sniffing及其改進(jìn)方法,需要的朋友可以參考下2017-06-06
SQL 統(tǒng)計一個數(shù)據(jù)庫中所有表記錄的數(shù)量
最近公司的數(shù)據(jù)庫發(fā)現(xiàn)有表的數(shù)據(jù)被弄掉了,有些數(shù)據(jù)表記錄為0,于是想找出此數(shù)據(jù)庫中到底有哪些數(shù)據(jù)表的記錄都為0以縮小分析范圍,可使用如下的SQL Statement2012-01-01
SQL中的開窗函數(shù)詳解可代替聚合函數(shù)使用
這篇文章主要介紹了SQL中的開窗函數(shù)詳解可代替聚合函數(shù)使用,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-03-03
實(shí)例學(xué)習(xí)SQL的Select命令
實(shí)例學(xué)習(xí)SQL的Select命令...2006-12-12
使用 SQL 快速刪除數(shù)百萬行數(shù)據(jù)的實(shí)踐記錄
在面對需要刪除數(shù)百萬行數(shù)據(jù)的場景時,使用DELETE操作可能非常耗時且效率低下,一種更有效的方法是通過Create-Table-as-Select (CTAS) 方式處理,即先將要保留的數(shù)據(jù)通過CTAS保存到新表,然后通過表重命名等操作替換原表,從而快速完成大量數(shù)據(jù)的刪除2024-10-10
sql自動增長標(biāo)識導(dǎo)致導(dǎo)入數(shù)據(jù)問題的解決方法
對于一個設(shè)了自動增長標(biāo)識的數(shù)據(jù)表來說,它的字段的值是由數(shù)據(jù)庫自動設(shè)置的;這在導(dǎo)數(shù)據(jù)時很麻煩2012-11-11

