藍 斌,王作先
北京航空航天大學北海學院,廣西 北海 536000
隨著計算機技術的普及,圖書館自動化得到突飛猛進的發展。而高校圖書館擔負著為學校的教學和科學研究提供切實有效的文獻信息保障。我校圖書館采用廣州圖創計算機軟件開發公司的Inter1ib集群圖書館管理系統,此系統采用Orac1e數據庫作為后臺存儲。在正常情況下Orac1e數據庫能夠保證數據的安全和系統的穩定,但由于計算機系統存在的安全問題而引起用戶錯誤或介質故障,都會影響到數據庫中數據的正確性和安全性,甚至會導致系統癱瘓。為了防止種種故障可能造成的數據損失,Orac1e提供了不同的手段來進行數據備份,通過制定完善的備份策略可以最小化數據損失。
Orac1e數據庫的備份主要是對數據庫中重要的數據進行復制,存放到其他介質上。當數據庫發生故障時使用已經備份的數據庫信息還原到數據庫中,使數據庫恢復到發生故障前的狀態。按照備份的方式不同,Orac1e數據庫的備份主要有物理備份和邏輯備份兩種策略。物理備份是指通過拷貝重要的物理文件的方式對數據庫信息進行備份,以免物理故障造成損失。根據數據庫的工作模式,物理備份又可以分為非歸檔模式和歸檔模式,即冷備份(非歸檔模式)和熱備份(歸檔模式)。冷備份是在數據庫關閉的情況下,利用操作系統的拷貝功能將數據庫中的所有文件進行復制,也叫脫機備份。如果數據庫需要不間斷工作或者數據庫可以關閉的時間不足以完成冷備份,那么我們需要聯機備份,即熱備份。熱備份的條件是數據庫必需在打開并且運行在歸檔模式的狀態下。使用熱備份的好處在于當一個數據文件或一個表空間處于備份狀態時,用戶仍然可以訪問其他部分。因為熱備份備份數據文件和歸檔日志等文件,數據庫恢復可以一直進行到最后一個歸檔日志,實現無數據損失恢復,稱為完全恢復。當然熱備份的恢復也可以進行到某一時刻就停止恢復,稱為不完全恢復。如果要對Orac1e的版本進行升級或更換數據庫運行的環境,則可以使用Orac1e Export程序將數據從數據庫中抽取出來存放在一個二進制文件中,也就是邏輯備份。邏輯備份的數據只能基于備份時刻進行數據轉儲,所以恢復時也只能恢復到備份時保存的數據。
冷備份是指關閉數據庫的備份,又稱脫機備份或一致性備份,在冷備份開始之前數據庫必須徹底關閉。關閉操作必須用帶有norma1、Transaction、immediate選項的shutdown來執行。備份具體步驟:
1)啟動SQL*P1us,以SYSDBA身份登錄數據庫。
SQL>connect sys/sys @orac1e as sysdba;
2)關閉數據庫
SQL>shutdown immediate;
3)復制以下文件到相應的磁盤:所有數據文件(DATA FILE)、所有控制文件(CONTROL FILE)、所有聯機重做日志文件(REDO LOG)
4)啟動數據庫
SQL>startup;
恢復具體步驟:
1)關閉數據庫
SQL>shutdown immediate;
2)將備份的數據還原到原來所在的位置。
3)啟動數據庫
SQL>startup;
冷備份的優點是容易歸檔, 備份與恢復迅速容易維護,安全性高。它的不足是單獨使用時只能提供到某一時間點上的恢復,不能表或用戶恢復且必需關閉數據庫。若備份到外部存儲設備速度會很慢。
由于冷備份需要關閉數據庫,所以很多館都選擇熱備份。在進行熱備份之前要確保數據庫已經處于歸檔模式。
首先以SYSDBA身份鏈接數據庫,然后執行ARCHIVE LOG LIST命令,查看當前數據庫是否處于歸檔模式。如果沒有處于歸檔模式,需要先將數據庫轉換為歸檔模式。
將數據庫的日志操作模式設置成歸檔模式并將歸檔方式設置成自動的。具體步驟如下:
1)關閉數據庫,并修改參數文件。
Sq1>shutdown immediate
Log_archive_start=true
Log_archive_dest=f\ orac1e\ arch1
Log_archive_format=%r-%t-%s.dat
Log_archive_format=-f:\ orac1e\ arch2
2)啟動數據庫到裝載狀態
Sq1>startup mount
3)修改數據庫的運行方式
Sq1>a1ter database archive1og
4)打開數據庫。
Sq1>a1ter database open
5)設置自動恢復選項。
Sq1>set autorecovery on
熱備份的具體步驟:
1)將數據庫的某個表空間(以exa表空間為例)設置為熱備份狀態。
SQL>a1ter tab1espace exa begin backup;
2)在操作系統中將該表空間對應的所有數據文件備份。
3)結束表空間備份狀態。
SQL>a1ter tab1espace exa end backup;
4)備份控制文件。
SQL>a1ter database backup contro1fi1e to ‘D:orac1eacku.bkp’;
熱備份恢復的具體步驟:
1)將表空間設置為脫機狀態。
SQL>a1ter database datafi1e ‘D:orac1eoradataorc1exa.dbf’ off1ine;
2)將備份的數據文件復制到原來的目錄,并覆蓋原來的文件。
3)使用RECOVER命令進行介質恢復。
SQL>recover datafi1e ‘d:orac1eoradataorc1exa.dbf’;
4)介質恢復完成后,將表空間恢復為聯機狀態。
SQL>a1ter database datafi1e ‘d:orac1eoradataorc1exa.dbf’ on1ine;
5)將數據庫修改為打開狀態。
SQL>a1ter database open;
如果數據庫庫正常打開,說明已經恢復成功。熱備份的優點是不需要關閉數據庫備份恢復精確度高,根據日志可以恢復某一時間點上(精確到秒)。它的不足是過程復雜,存放歸檔文件需要相當多的空間,操作不允許失誤,若備份不成功,所得結果不可用于時間點的恢復。
導入/導出(IMP/EXP)是Orac1e最古老的兩個命令行工具,導出是通過EXPORT工具讀取數據庫并輸出到一個二進制文件,可以選擇導出整個數據庫或指定用戶或指定表。EXP備份只能由IMP實用程序實現恢復。IMPORT工具會讀取由EXPORT工具生成的二進制文件并執行文件中的命令,可以導入全部或部分數據。
使用EXP和IMP命令進行數據庫的邏輯備份與恢復有3種操作方式:交互式、命令行模式和參數模式。交互式模式就是跟計算機進行交流。執行EXP(或IMP)命令后,接著系統會提示輸入用戶名和口令,按提示一步一步完成即可。參數模式其實是將命令行后面所帶的參數寫在一個后綴名為parfi1e的參數文件中,執行EXP(或IMP)命令時調用此參數文件即可。下面我們以命令行模式為例:
Exp user/password fi1e=d: est.dmp
此時導出的全庫數據,也可以導出某個用戶(U)或某個表格(T)的數據。
導出備份又可以分為3種類別:
1)完全導出(Comp1ete Export)。這種方式將把整個數據庫文件導出備份。
exp user/password inctype=comp1ete fi1e=20100725.dmp
2)增量型導出(Incrementa1 Export)。這種方式將只會備份上一次備份后改變的結果。
exp user/password inctype=incrementa1 fi1e=20100725.dmp
3)累積型導出(Cumu1ative Export)。這種方式是導出自上次完全導出后數據庫變化的信息。
exp user/password inctype=cumu1ative fi1e=20100725.dmp
邏輯恢復是邏輯備份的一個逆過程,需要重建數據庫結構,然后執行IMP即可。
邏輯備份與恢復的優點是能夠針對行對象進行備份,能夠跨平臺實施備份操作并遷移數據庫,數據庫可以不關閉。導出方式并不能保護介質失效,它僅僅是邏輯上的備份,這是它的缺陷。
根據冷備份、熱備份和邏輯備份各自的優缺點,可以制定一個比較完整的備份策略。根據我校的情況,我館以邏輯備份為主,脫機備份為輔,在多個不同的物理磁盤上存有備份文件,并做遠程備份。為了方便,備份文件應以日期命名,根據備份的內容和日期將文件歸類同一編號。不管采用何種策略,目的都是在不影響或很少影響數據庫可用性的情況下盡量提高備份操作的效率。
[1]孫風棟,等編著.Oracle數據庫基礎教程[M].北京:電子工業出版社,2003.
[2]蓋國強著.Oracle數據庫管理、優化與備份恢復[M].北京:人民郵電出版社,2007,9.
[3]Sam R.Alapati著,Oracle 10g數據庫管理藝術[M].鐘鳴等譯.北京:人民郵電出版社,2007,9.
[4]姚世軍.Oracle數據庫原理與應用[M].北京:中國鐵道出版社,2010,4.