SQL Server 備份
前言
為什么要備份?理由很簡單——為了還原/恢復(fù)。當(dāng)然,如果不備份,還可以通過磁盤恢復(fù)來找回丟失的文件,不過SQL Server很生氣,后果很嚴(yán)重。到時(shí)候你就知道為什么先叫你備份一次再開始看文章了。∩__∩。本系列將介紹SQL Server所有可用的備份還原功能,并盡可能用實(shí)例說話。
什么是備份?SQL Server基于Windows,以文件形式存放資料,所以備份就是Windows上SQL Server相關(guān)文件的一個某個時(shí)間點(diǎn)的副本。根據(jù)備份類型的不同,副本的種類和內(nèi)容也有不同。
備份類型有哪些?SQL Server 目前版本中,可用的備份類型有:完整數(shù)據(jù)庫備份、差異數(shù)據(jù)庫備份、事務(wù)日志備份(后稱日志備份)、文件和文件組備份、部分備份,根據(jù)SQL Server版本不同,有些備份類型不支持,另外根據(jù)恢復(fù)模式的不同,某些備份類型也不支持。
什么是恢復(fù)模式?
很多人只把關(guān)注點(diǎn)放在備份上面,而沒有在意恢復(fù)模式,其實(shí)所有的備份都應(yīng)該從恢復(fù)模式作為切入點(diǎn)。恢復(fù)模式實(shí)際上是一個控制備份還原的行為的數(shù)據(jù)庫級別選項(xiàng)。SQL Server 在當(dāng)前所有發(fā)布版本中只有三種恢復(fù)模式:簡單恢復(fù)模式(后面簡稱簡單模式),大容量日志恢復(fù)模式(后面簡稱大容量模式),完整恢復(fù)模式(后稱完整模式)。
本文從恢復(fù)模式開始,提醒一下,絕大部分的專業(yè)屬于都會陸續(xù)解釋,如果讀者有不明白,可以繼續(xù)往下看或者上網(wǎng)搜索:
1.簡單模式,Simple recovery model:某些操作可以被最小日志化。這種模式下,不支持日志備份、時(shí)間點(diǎn)恢復(fù)和頁恢復(fù)。且文件恢復(fù)功能僅限于次要數(shù)據(jù)文件中的只讀文件。
2.大容量日志模式,Bulk-logged recovery model:和完整模式類似,有時(shí)候可以理解為完整模式于簡單模式的過渡模式。這種模式對某些大容量操作進(jìn)行最小日志化,支持完整備份中的備份還原策略,但是由于某些操作被最小日志化,所以不能保證時(shí)間點(diǎn)恢復(fù)。
3.完整模式,F(xiàn)ull recovery model: 在這個模式下,所以操作都被完整記錄下來,并且支持所有類型的備份還原策略。
默認(rèn)情況下,新庫會繼承Model庫的配置,包括恢復(fù)模式,也就是FULL模式。可以在創(chuàng)建或日常使用過程中修改,并且不需要重啟服務(wù)。恢復(fù)模式最重要的區(qū)別在于對待日志的行為。
簡單模式:
是三種模式中最容易管理的,可以進(jìn)行完整,差異和文件備份,但是不能做日志備份。在這種模式下,每當(dāng)Checkpoint 進(jìn)程發(fā)生時(shí),會自動把日志文件中不活動的日志(在日志備份一文介紹)寫入數(shù)據(jù)文件,寫入后,對應(yīng)的日志文件中的空間就可供新事務(wù)使用,注意這種空間重用或者截?cái)嗖⒉蛔詣訙p少日志文件的物理大小,如果需要減少空間,需要使用DBCC SHRINKFILE/DATABASE等命令實(shí)現(xiàn)。讓日志空間重用的過程叫做截?cái)唷T诤唵文J较逻@個過程稱為自動截?cái)?auto-truncate)。在這種模式下,日志通常不需要管理,但是對于單個的大事務(wù),日志文件可能會增長得很快,這種情況下最好把批處理降為小的批。簡單模式最主要的限制是不能進(jìn)行日志備份,也就是說無法進(jìn)行時(shí)間點(diǎn)還原。在一些測試,開發(fā)或者SLA要求不嚴(yán)格的環(huán)境下,可以使用這種模式。
新聞熱點(diǎn)
疑難解答
圖片精選