Linux平臺下Sybase數據庫備份方法分析
Linux平臺下Sybase數據庫備份方法分析
摘 要:對于從事信息系統管理的人員來說,掌握數據庫的備份方法在工作中尤為重要。當本地數據出錯或者磁盤損壞時,可以利用備份的數據恢復數據庫系統,從而保證系統的正常運行。文章以Linux平臺下的Sybase數據庫為例,給出兩種不同備份的實現方法。
關鍵詞:Linux平臺;Sybase;數據庫備份
對于從事信息管理系統的人員來說,掌握數據庫的備份是必備的技能。當本地數據出錯、人為誤操作或者磁盤/文件損壞時,可以利用備份的數據進行恢復,從而保證系統的正常運行[1]。本文以Linux平臺下Sybase數據庫的備份為例,給出兩種備份的實現方法,并對這兩種方法實現的操作專業程度、時間性能、可擴展性等方面進行比較說明,以供信息系統管理人員進行相應管理操作使用。Linux平臺下Sybase數據庫備份的方法主要有兩種:(1)整庫二進制備份;(2)整表文本備份。下面針對這兩種備份方法進行詳細描述,并給出客觀的對比結論。
1 整庫二進制備份恢復
1.1整庫二進制備份
整庫二進制備份主要采用轉儲數據庫的方式進行,就是為整個數據庫(包括數據、表結構、觸發器、游標、存儲過程、事務日志等)做一次完整的物理備份。
Sybase進行數據庫轉儲時,Sybase系統自動執行一次Checkpoint(所謂的Checkpoint是將日志和數據從內存緩沖區寫入到硬盤中(只針對改動過的數據進行寫入,即臟頁寫入),把己被分配的日志頁和數據頁也寫入到磁盤中,確保進行數據庫轉儲時數據的正確性。 通過整庫二進制備份,可以將整個數據庫的運行環境完整復制一份,包括數據庫的結構、臟頁和碎片,在使用load命令恢復時,只能恢復到同樣大小的數據庫中(數據和日志的大小都只能和原來完全一致),可以確保真正地還原,恢復后數據庫準確無誤。
可以采用如下的方式進行Sybase的整庫二進制備份:使用Sybase數據庫提供的isql命令登錄數據庫服務器,并使用dump命令進行備份。具體的命令實現為:
dbuser> isql -S{DBServerName)-U{username) -P{password)
dump database {dbname) to “path/filename” withcompression={level)
dump transaction {dbname) to“path/filename"
go
其中“path/filename”為備份出來的文件放置的目錄以及文件名。compression為備份時是否進行壓縮,取值范圍:0-9以及100或者101。其中0表示不壓縮,9表示最高壓縮比進行壓縮。100表示提供更快速度的壓縮;101表示提供壓縮比更高的壓縮,一般根據磁盤的情況以及壓縮的時長,來決定具體的壓縮等級。
1.2整庫二進制恢復
整庫二進制恢復可以將整庫二進制備份方式下備份出來的數據庫物理備份進行恢復。采用整庫二進制恢復,可以確保數據庫恢復到備份時的情況,包括數據庫結構、數據、頁和碎片等。整庫二進制恢復在進行恢復前,需要確保要恢復的數據庫設備存在,并且要比備份的容量相等或者更大。以便可以完整地進行物理恢復。整庫二進制恢復分3步進行。
第一步:創建準備恢復的數據庫設備(包括數據設備和日志設備)以及數據庫。
可以采用如下命令,創建恢復所需的數據庫設備:
dbuser> isql -S{DBServerName)-U{username) -P{password)
disk init name=’datadev’, physname=’/opt/Sybase/data/datadev.dat’. size=’150m'
disk init name=’logdev’, physname=’/opt/Sybase/data/logdev.dat’, size=’300m'
go
datadev為數據設備,用于放置實際的數據;logdev為日志設備,用于放置日志數據,disk init命令用于創建數據庫所需的數據設備和日志設備。上面命令表示,創建一個數據設備,容量大小為150 M,設備名稱為datadev;創建一個日志設備,容量大小為300 M,設備名稱為logdev。
可以采用如下命令,創建恢復所需的數據庫:
dbuser> isql -S{DBServerName)-U{username) -P{password)
create database dbname on datadev=’150m' log onlogdev=’300m’
go
上面的命令表示,在數據設備da