金天昕
摘要:隨著高校信息化建設(shè)的不斷深入,高校部署上線的應(yīng)用系統(tǒng)日益增多,其中數(shù)據(jù)庫的部署以SQL Server為多,為了提高應(yīng)用系統(tǒng)的業(yè)務(wù)可靠性,廣大從業(yè)人員采取了許多技術(shù)手段來縮短故障對服務(wù)影響的時長,對于非集群部署的系統(tǒng),數(shù)據(jù)庫數(shù)據(jù)的恢復(fù)就成為首要需要解決的問題。而快速恢復(fù)的前提就是要做好數(shù)據(jù)庫的備份。該文就這一方面進行探討,介紹自己的一些成功做法,供同行借鑒。
關(guān)鍵詞:信息化;數(shù)據(jù)庫;備份;數(shù)據(jù)庫恢復(fù)
中圖分類號:TP311 ? ? ? ?文獻標(biāo)識碼:A
文章編號:1009-3044(2020)24-0032-02
1 引言
高校信息化建設(shè)過程中,一般來說,部署業(yè)務(wù)應(yīng)用的操作系統(tǒng)不外乎Microsoft和Linux兩大類,而Microsoft類是更為常見的,特別是小型應(yīng)用業(yè)務(wù)基本都選擇微軟的操作系統(tǒng)。微軟服務(wù)器操作系統(tǒng)的版本眾多,已經(jīng)從Server2000發(fā)展至Server2018,每一代都在性能和功能方面有所提升,本文以使用量較大的Server2012為例,來介紹一下自己在數(shù)據(jù)庫備份方面的一些經(jīng)驗。
2 SQL Server 數(shù)據(jù)庫概況及備份類型
2.1 SQL Server數(shù)據(jù)庫概況
SQL Server數(shù)據(jù)庫是一個關(guān)系數(shù)據(jù)庫管理系統(tǒng),是一個可擴展的、高性能的、為分布式客戶機/服務(wù)器計算所設(shè)計的數(shù)據(jù)庫管理系統(tǒng),實現(xiàn)了與WindowsNT的有機結(jié)合,提供了基于事務(wù)的企業(yè)級信息管理系統(tǒng)方案。主要特征為:
1)高性能設(shè)計,可充分利用WindowsNT的優(yōu)勢。
2)系統(tǒng)管理先進,支持Windows圖形化管理工具,支持本地和遠(yuǎn)程的系統(tǒng)管理和配置。
3)強壯的事務(wù)處理功能,采用各種方法保證數(shù)據(jù)的完整性。
4)支持對稱多處理器結(jié)構(gòu)、存儲過程、ODBC,并具有自主的SQL語言。
2.2 SQL Server數(shù)據(jù)庫的備份類型概述
SQL Server數(shù)據(jù)庫本備份一般在概念上常用的數(shù)據(jù)備份類型有:完全備份、差異備份、事務(wù)日志備份、文件或文件組備份。
1)完全備份(Full Backup)
完全備份就是指對某一個時間點上的所有數(shù)據(jù)或應(yīng)用進行的一個完全拷貝。實際應(yīng)用中就是用一盤磁帶對整個系統(tǒng)進行完全備份,包括其中的系統(tǒng)和所有數(shù)據(jù)。這種備份方式最大的好處就是只要用一盤磁帶,就可以恢復(fù)丟失的數(shù)據(jù)。因此大大加快了系統(tǒng)或數(shù)據(jù)的恢復(fù)時間。
2)差異備份(Differential Backup)
差異備份是指在一次全備份后到進行差異備份的這段時間內(nèi),對那些增加或者修改文件的備份。在進行恢復(fù)時,我們只需對第一次全備份和最后一次差異備份進行恢復(fù)。差異備份在避免了另外兩種備份策略缺陷的同時,又具備了它們自己的優(yōu)點。
3)增量備份 (Incremental Backup )
增量備份是指在一次全備份或上一次增量備份后,以后每次的備份只需備份與前一次相比增加和者被修改的文件。這種備份方式最顯著的優(yōu)點:沒有重復(fù)的備份數(shù)據(jù),因此備份的數(shù)據(jù)量不大,備份所需的時間很短。
4)事務(wù)日志備份(Transaction log backup)
事務(wù)日志包含創(chuàng)建最后一個備份(可以是完整備份也可以是差異備份)之后對數(shù)據(jù)庫進行的更改。因此,在進行事務(wù)日志備份前,先要進行一次完整的數(shù)據(jù)庫備份才可以。
5)文件和文件組備份(File and filegroup backups)
支持備份數(shù)據(jù)庫中的個別文件或文件組。這是一種相對較完善的備份過程,通常用在具有較高可用性要求的超大型數(shù)據(jù)庫 (VLDB) 中。如果可用的備份時間不足以支持完整數(shù)據(jù)庫備份,則可以在不同的時間備份數(shù)據(jù)庫的子集。
3 SQL Server數(shù)據(jù)庫備份的實現(xiàn)
數(shù)據(jù)庫備份類型比較多,方法也比較多,除了使用內(nèi)置的圖形操作外,用腳本的方法更為靈活,更符合每個系統(tǒng)的個性化需求。下面介紹使用腳本進行備份的實現(xiàn)。
1)完全備份實現(xiàn)的腳本
exec master..xp_cmdshell 'net use w: \DatabaseBackup$ ?"password"/user:root',NO_OUTPUT
go
declare @s nvarchar(200),@del nvarchar(200)
select ?@s='',@del=''
declare datebak cursor for
select
[bak]='backup database
'+quotename(Name)+' to disk =''w:'+Name+'_'+convert(varchar(8),getdate(),112)+'.bak'' ?with init',
end
close datebak
deallocate datebak
go
2)差異備份實現(xiàn)的腳本
DiffBackup() {
echo "Today is week: `date +%a`, Start performing differential backups..." >> $LogFile 2>&1
echo ?>> $LogFile 2>&1