INFORMIX-ONLINE數據庫因其具有高性能、高可靠性、支持數據完整性定義和檢查等特性而被廣泛應用。數據庫被使用後,數據備份的安全可靠性便成為人們普遍關注的問題。下面根據筆者多年的學習和使用經驗,對INFORMIX-ONLINE數據庫常用的三種數據備份方式加以歸納和比較。
一、使用ontape工具進行數據備份
1.ontape工具的功能
ontape工具具有如下功能:備份和恢復ONLINE數據、備份和恢復邏輯日志、改變數據庫日志狀態等。在此著重介紹數據備份功能。
2.執行ontape備份數據的語法
ontape備份語法為:
ontape -s -L 備份級別(0、1、2)
在ONLINE處於聯機或靜止方式時, informix用戶或具有DBA權限的用戶可以通過執行上面的命令進行備份。根據備份方案安排進行0級、1級、2級備份。0級備份是對整個數據庫的所有數據進行完整備份,1級備份是只對0級備份以後修改過的數據進行備份,2級備份只是對1級備份以後修改過的數據進行備份。
3.需要注意的問題
(1)在執行ontape備份前要對ONCONFIG文件中的TAPEDEV、TAPEBLK、TAPESIZE參數進行正確的設置。
(2)為了縮短數據恢復時間,應以進行0級為主,盡量減少1級和2級備份。對銀行等重要部門數據,應每天進行0級備份。
(3)如果需要將ontape備份的數據恢復到另一台服務器上時,要求兩台服務器機型、操作系統、ONCONFIG配置文件及非臨時分配的dbspace磁盤空間數量和大小必須一致,否則數據不能正常恢復。
(4)必須保證有足夠可用的邏輯日志文件。如果剩余的邏輯日志空間小於單個邏輯日志的50%,INFORMIX-ONLINE將拒絕執行備份操作,必須先備份已使用過的邏輯日志,然後才能進行數據備份。
(5)保留ONCONFIG文件副本。在進行0級備份後,應備份ONCONFIG文件,因為在恢復0級備份時需要讀ONCONFIG文件信息,如果ONLINE配置被修改,數據恢復將失敗,如果恢復此0級備份,必須恢復當時的配置。
(6)備份可以在ONLINE聯機或靜止方式下進行,在備份過程中不能改變ONLINE運行方式,否則備份會被中斷。
(7)不要使用後台方式執行備份命令(Unix下的&),因為備份采用交互方式進行。
二、使用dbexport命令進行數據備份
1.dbexport命令簡介
dbexport命令以ASCII碼格式將數據寫到文件或備份介質上(如磁帶)。dbexport卸出的文件包括數據庫模式文件和數據文件。
2.dbexport 命令語法
dbexport
[-X] [-c] [-q] [-d] [-ss] [{-o | -t -b -s [-f ]}]
以上參數代表的意義如下:
< >中包括的內容為必選項,[ ]中的內容為可選項。
-c 指示如果沒有錯誤,則輸出全部信息。
-q 在標准輸出設備上不顯示錯誤信息、警告和所生成的SQL數據定義語句。
-d 僅輸出blob描述符,不輸出blob數據。
-ss 在模式文件中輸出特定於服務器的用於創建數據庫和表的信息,比如:初始的extent和附加的extent的大小、上鎖方式、表所駐留的dbspace等信息。
-o 指定數據輸出文件的磁盤目錄。
-t 指定數據輸出文件的備份介質名稱。
-b 指定備份介質塊大小。
-s 指定備份介質的最大存儲量。
-f 用於指定存儲在備份介質上的模式文件名。
database 指定備份的數據庫名稱。
3.dbexport功能及使用時需注意的問題
(1)執行dbexport命令必須是informix用戶或具有DBA訪問權限的用戶。
(2)用dbexport備份的數據必須用dbimport命令恢復。
(3)用戶可以通過編輯模式文件來改變dbimport生成的數據庫,如改變數據庫名稱或相關的表信息。
(4)dbexport以獨占方式(exclusive mode)占用數據庫,備份期間其他用戶不能對數據庫進行查詢和修改及插入操作。
(5)模式文件不保留數據庫的日志文件,用戶使用dbimport命令建立數據庫時必須為新建數據庫選擇一種日志方式(ANSI、buffered、nobuffered類型)。
(6)用戶可以使用dbexport/dbimport命令,將INFORMIX-ONLINE和INFORMIX-SE下的數據進行相互轉換;也可以將數據在INFORMIX-ONLINE的不同版本之間轉換。這種轉換對數據庫服務器的結構和ONLINE的配置沒有特別要求。
(7)使用dbexport/dbimport命令備份/恢復數據,可以起到消除數據分配空間碎塊的作用,提高數據庫整體運行效率。
三、 使用onunload命令進行數據備份
1.onunload命令簡介
onunload命令以頁為單位,使用二進制形式卸出數據,備份效率比dbexport高。
2.onunload命令的語法
onunload [-l] [-t ] [-b ] [-s ] [:[owner>.]]
以上參數代表的意義如下:
< >中包括的內容為必選項,[ ]中的內容為可選項。
-l 指示onunload分別從配置參數TAPEDEV、TAPEBLK和TAPESIZE中讀入磁帶設備、塊大小和備份設備容量值。
-t 指定備份設備名。
-b 指定備份設備的塊大小。
-s 指定備份設備的存儲容量。
database 指定要備份的數據庫。
owner 指定表的屬主。
table 指定要卸出的表。
3.使用onunload需要注意的問題
(1)onunload備份的數據必須用onload命令進行恢復。
(2)onunload/onload不能實現不同版本的ONLINE之間的數據轉移。
(3)onunload/onload是以磁盤頁大小為單元存儲的二進制數據,卸出和接受數據的計算機必須具有相同的磁盤頁大小。
(4)只能將onunload卸出的數據裝入ONLINE管理的數據庫或表。
(5)用戶必須具有DBA訪問權限,才能執行onunload命令。
(6)onunload不保留初始表上定義的訪問特權。
(7)onunload不保留初始表