Oracle資料庫的備份與恢復方式比較
摘 要 確保資料安全是每一位資料庫DBA的必要工作,根據資料的重要性和軟硬體條件制定可行的備份恢復方案,將資料丟失造成的損失降到最低。主要探討Oracle資料庫匯出
/匯入(Export/Import)、冷備份、熱備份、ram備份與恢復的方法,比較各種方式的優缺點。
關鍵詞 資料庫備份與恢復;匯出/匯入(Export/Import);冷備份;熱備份;rman資料備份與恢復
1 引言
隨著計算機資訊化的普及和大量資料的電子化,資料安全顯得尤為重要。一旦造成資料丟失,將會付出巨大的工作量去彌補資料,也可能因此造成不可挽回的損失。因此對從事資料庫管理的DBA
來說,做好資料的備份與恢復是一項很重要的工作,本文專門針對Oracle資料庫的備份與恢復進行探討。
Oracle資料庫有四種常用的備份方法,它們分別是匯出/匯入(EXP/IMP)、熱備份、冷備份、rman備份。
2 匯出、匯入(Export、Import)
利用Export可將資料從資料庫中提取出來,利用Import則可將提取出來的資料送回到Oracle資料庫中去,這是人們最常用,也是比較可靠的一種備份恢復方法。在資料庫的版本升級時一般採用這種方法。Oracle支援三種方式型別的輸出,下面舉例說明(jnth是使用者名稱,thpassword是使用者密碼,
oracle是資料庫服務命名,
yxgl_a、yxgl_b, yxgl_c是表名):
2.1 表方式(T方式),將指定表的資料匯出
備份某個使用者模式下指定的物件(表)。業務資料庫通常採用這種備份方式,若備份到本地檔案,使用如下命令:
exp jnth/thpassword@oracle rows=y indexes=n
compress=n buffer=50000000 file=080813.dmp log=080813.log tables=
yxgl_a,yxgl_b,yxgl_c
2.2 使用者方式(U方式),將指定使用者的所有物件及資料匯出
備份某個使用者模式下的所有物件。業務資料庫通常採用這種備份方式,若備份到本地檔案,使用如下命令:
exp jnth/thpassword@oracle wner=jnth
rows=y indexes=n compress=n buffer=50000000 file=080813.dmp log=080813.log
2.3 全庫方式(Full方式),將資料庫中的所有物件匯出
備份完整的資料庫,備份命令為:
exp system/manager@oracle rows=y indexes=n
compress=n buffer=50000000 full=y file=080813.dmp log=080813.log
資料匯入(Import)的過程是資料匯出(Export)的逆過程,分別將資料檔案匯入資料庫和將資料庫資料匯出到資料檔案。
2.4 恢復備份資料中的指定表
若從本地檔案恢復,使用如下命令:
imp jnth/thpassword@oracle fromuser=jnth
touser=jnth rows=y indexes=n commit=y buffer=50000000 ignore=n file=080813.dmp
log=080813.log tables=yxgl_a,yxgl_b,yxgl_c
2.5 按照使用者模式備份的資料進行恢復
A. 恢復備份資料的全部內容
若從本地檔案恢復,使用如下命令:
imp jnth/thpassword@oracle fromuser=jnth
touser=jnth rows=y indexes=n commit=y buffer=50000000 ignore=n file=080813.dmp
log=080813.log
B. 恢復備份資料中的指定表
若從本地檔案恢復,使用如下命令:
imp jnth/thpassword@oracle fromuser=jnth
touser=jnth rows=y indexes=n commit=y buffer=50000000 ignore=n file=080813.dmp
log=080813.log tables=yxgl_a,yxgl_b,yxgl_c
2.6 如果備份方式為完全模式,採用下列恢復方法
若從本地檔案恢復,使用如下命令:
imp system/manager@oracle rows=y indexes=n
commit=y buffer=50000000 ignore=y full=y file=080813.dmp log=080813.log
匯出、匯入(Export、Import)的優點:
●簡單易行;
●可靠性高;
●不影響資料庫的正常執行。
缺點:
●只能提供到“某一時間點上”的恢復,不能最大可能的恢復資料;
●資料量大時,恢復較慢。
3 冷備份
冷備份發生在資料庫已經正常關閉的情況下,當正常關閉時會提供給我們一個完整的資料庫。冷備份時將關鍵性檔案複製到另外的位置的一種說法。對於備份Oracle資訊而言,冷備份是最快和最安全的方法。
3.1 冷備份中必須複製的檔案包括
所有資料檔案
所有控制檔案
所有聯機REDO LOG檔案
Init.ora檔案(可選)
值得注意的是冷備份必須在資料庫關閉的情況下進行,當資料庫處於開啟狀態時,執行資料庫檔案系統備份是無效的。
3.2下面是做冷備份的完整例子
3.2.1 關閉資料庫
sqlplus /nolog
sql>connect /as sysdba
sql>shutdown normal;
3.2.2 用複製命令備份全部的資料檔案、重做日誌檔案、控制檔案、初始化引數檔案
可以透過命令select v$tablespace.name,v$datafile.name from v$tablespace,
v$datafile where v$tablespace.ts#= v$datafile.ts#;檢視相關檔案的具體位置。或透過檢視Enterprise
Manager Console 的初始化引數知道這些檔案的具體位置。
3.2.3 重啟Oracle資料庫
sql>startup
3.3 冷備份的優點
●非常快速、容易的備份方法,只需簡單複製檔案;
●非常容易恢復到某個時間點上,只需將檔案再複製回去;
●能與歸檔方法相結合,做資料庫“最佳狀態”的恢復;
●低度維護,高度安全。
3.4 缺點
●單獨使用時,只能提供到“某一時間點上”的恢復;
●實施冷備份的全過程中,資料庫必須是關閉狀態,因此會影響正常工作;
●不能按表或按使用者恢復。
4 熱備份
熱備份是在資料庫執行的情況下,採用archivelog
mode方式備份資料庫的方法。
4.1 檢視歸檔模式
SQL> archive log list;
資料庫日誌模式 存檔模式
自動存檔 啟用
存檔終點 c:\oracle\ora92\RDBMS
最早的概要日誌序列 11
下一個存檔日誌序列 13
當前日誌序列 13
SQL>
4.2 如資料庫在非歸檔模式下的,如下命令更改非歸檔模式為歸檔模式
SQL> shutdown immediate; (立即關閉資料庫)
SQL> startup mount (啟動例項並載入資料庫,但不開啟)
SQL> alter database archivelog; (更改資料庫為歸檔模式)
SQL> alter database open; (開啟資料庫)
SQL> alter system archive log start; (啟用自動歸檔)
SQL> exit (退出)
SQL> exit (退出)
4.3 一旦資料庫執行在archivelog狀態下,就可以做備份了熱備份的命令檔案由三部分組成
4.3.1 資料檔案的備份
(1) 設定表空間為備份狀態
SQL>alter tablespace rlgl begin backup;
表空間已更改。
SQL>alter tablespace rlgl begin backup;
表空間已更改。
(2) 備份表空間的資料檔案
用作業系統的複製複製資料檔案。
用作業系統的複製複製資料檔案。
(3) 回覆表空間為正常狀態
SQL> alter tablespace sysbs end backup
表空間已更改。
SQL> alter tablespace sysbs end backup
表空間已更改。
4.3.2 備份歸檔日誌檔案
在sqlplus上執行alter system switch logfile命令來強迫日誌切換,以便所有的日誌都被歸檔。透過在執行archive log
list命令獲取當前的日誌順序號,從最早的概要日誌序列到當前日誌序列的聯機redo日誌都應該複製出來。
4.3.3 使用alter database backup controlfile to trace;命令獲得控制檔案的一個備份,可以到%oracle_base%\admin\
%oracle_sid%\udump目錄中尋找最新的跟蹤檔案,其中有重建控制檔案的全部命令。
4.4 恢復例項,假設表空間JNTH中的資料檔案jinth1.dbf損壞
SQL> startup
ORACLE
例程已經啟動。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
資料庫裝載完畢。
ORA-01157: 無法標識/鎖定資料檔案 8 - 請參閱 DBWR 跟蹤檔案
ORA-01110: 資料檔案 8: ’E:\ORACLE\ORADATA\
JNTH1.DBF’
恢復過程:
(1)可以先將損壞的表空間檔案離線。
SQL> alter database datafile ’e:\oracle\oradata\jnth1.dbf’
offline;
資料庫已更改。
(2)開啟資料庫。
SQL> alter database open;
資料庫已更改。
(3)將複製的檔案jnth1.dbf複製回先前的資料夾E:\ORACLE\ORACLEDATA。
(4)恢復資料庫檔案。
SQL>recover datafile ’e:\oracle\oradata\jnth1.dbf’;
介質恢復完成。
(5)關閉資料庫。
SQL>shutdown immediate;
(6)重新開啟資料庫。
SQL> startup;
4.5 熱備份的優點
●可在表空間或資料庫檔案級備份,備份的時間短;
●備份時資料庫仍可使用;
●可以恢復到某一時間點上;
●恢復快速。
4.6 缺點
●不能出錯,否則將不能正常恢復資料;
●維護較困難,需要一定的oracle資料庫知識。
5 RMAN ( Recovery Manager, 恢復管理器 )備份恢復
RMAN ( Recovery Manager, 恢復管理器 )是從Oracle8開始提供的一套用於備份和恢復的有利工具,它有兩種使用介面:GUI(圖形使用者介面)和CLI(命令列介面)。使用RMAN可以完成Oracle 資料庫備份和恢復的各種任務。現在許多oracle 備份恢復軟體的核心實際上就是RMAN(例如
VERITAS NetBackup 備份軟體)。
5.1 切換歸檔模式
C:\sqlplus /nolog (啟動sqlplus)
SQL> conn / as sysdba (以DBA身份連線資料庫)
SQL> archive log list (檢視是否是歸檔模式,更改歸檔模式在熱備份時已介紹)
5.2 連線
C:\rman
(啟動恢復管理器,oracle是服務名,根據自己的實際情況設定)
5.3 基本設定
RMAN> configure default device type to disk; (設定預設的備份裝置為磁碟)
RMAN> configure device type disk parallelism 2; (設定備份的並行級別,通道數)
RMAN> configure channel 1 device type disk format
'e:\backup1\backup_%U'; (設定備份的檔案格式,只適用於磁碟裝置)
RMAN> configure channel 2 device type disk format
'e:\backup2\backup_%U'; (設定備份的檔案格式,只適用於磁碟裝置)
RMAN> configure controlfile autobackup on; (開啟控制檔案與引數檔案的自動備份)
RMAN> configure controlfile autobackup format for device type disk
to 'e:\backup1\ctl_%F'; (設定控制檔案與引數檔案自動備份的檔案格式)
5.4 檢視所有引數設定
RMAN> show all;
5.5 檢視資料庫方案報表
RMAN> report schema;
5.6 備份全庫及控制檔案、引數檔案與所有歸檔的重做日誌,並刪除舊的歸檔日誌
RMAN> backup database plus archivelog delete input;
5.7 備份表空間及歸檔的重做日誌,並刪除舊的歸檔日誌
RMAN> backup tablespace system plus archivelog delete input;
5.8 備份歸檔日誌
RMAN> backup archivelog all delete input;
5.9 複製資料檔案
RMAN> copy datafile 1 to 'e:\backup1\datafile\1.ora';
5.10 檢視備份和檔案複本
RMAN> list backup;
5.11驗證備份
RMAN> validate backupset 3;
5.12從自動備份中恢復引數檔案
RMAN> shutdown immediate; (立即關閉資料庫)
RMAN> startup nomount; (啟動例項到nomount 狀態)
RMAN> restore controlfile to '/backup1' from autobackup; (從自動備份中恢復控制檔案)
5.13 恢復和復原全資料庫
RMAN> shutdown immediate; (立即關閉資料庫)
RMAN> exit (退出)
將資料檔案jnth1.ora,
C:\ ren E:\oracle\oradata\oracle\jnth1.ora
jnth1.bak;
C:\ ren E:\oracle\oradata\oracle\jnth2.ora
jnth2.bak;
C:\rman
(啟動恢復管理器)
RMAN> startup pfile=C:\oracle\admin\oracle\pfile\
initoracle.ora (指定初始化引數檔案啟動資料庫)
RMAN> restore database; (還原資料庫)
RMAN> recover database; (恢復資料庫)
RMAN> alter database open; (開啟資料庫)
5.14 Rman備份的優點
●支援線上熱備份;
●支援多級增量備份;
●減小所需要備份量;
●備份,恢復使用簡單。
5.15 Rman備份的缺點
●維護較複雜,需要一定的專業知識。
6 結束語
本文根據多年的工作經驗就一些基礎性的知識進行探討,在實際工作中利用這些基礎知識,結合作業系統的計劃任務或第三方的軟體就可以實現資料的自動、定時、定量的備份與恢復。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/11134849/viewspace-659928/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle資料庫的備份與恢復Oracle資料庫
- 資料庫備份與異機恢復——熱備份方式資料庫
- Oracle資料庫的備份與恢復(轉)Oracle資料庫
- Oracle 資料庫的備份與恢復(轉)Oracle資料庫
- 備份與恢復:polardb資料庫備份與恢復資料庫
- ORACLE RAC資料庫的備份與恢復(6)Oracle資料庫
- ORACLE RAC資料庫的備份與恢復(5)Oracle資料庫
- ORACLE RAC資料庫的備份與恢復(4)Oracle資料庫
- ORACLE RAC資料庫的備份與恢復(3)Oracle資料庫
- ORACLE RAC資料庫的備份與恢復(2)Oracle資料庫
- ORACLE RAC資料庫的備份與恢復(1)Oracle資料庫
- Oracle資料庫備份與恢復之三:OS備份/使用者管理的備份與恢復Oracle資料庫
- 資料庫的備份與恢復資料庫
- Oracle資料庫備份與恢復之RMANOracle資料庫
- 【備份恢復】Oracle 資料備份與恢復微實踐Oracle
- 【備份恢復】從備份恢復資料庫資料庫
- Oracle資料庫備份與恢復的三種方法Oracle資料庫
- mysql的資料庫備份與恢復MySql資料庫
- Oracle資料泵的備份與恢復Oracle
- postgresql備份與恢復資料庫SQL資料庫
- mongo資料庫備份與恢復Go資料庫
- Informix資料庫備份與恢復ORM資料庫
- 完全攻略Oracle資料庫的備份與恢復Oracle資料庫
- Oracle資料庫備份與恢復的三種方法(轉)Oracle資料庫
- Oracle資料庫備份與恢復之RMAN2Oracle資料庫
- oracle資料庫備份與恢復 a piece of cake (4)(轉)Oracle資料庫
- 關閉資料庫的備份與恢復資料庫
- rman資料庫全庫備份與恢復資料庫
- 資料庫備份與恢復技術資料庫
- Oracle備份與恢復【丟失資料檔案的恢復】Oracle
- Oracle資料庫的熱備份與完整恢復測試 (2)Oracle資料庫
- Oracle資料庫的熱備份與完整恢復測試 (1)Oracle資料庫
- Oracle資料庫冷備份的異地恢復Oracle資料庫
- oracle資料庫備份和恢復的內容Oracle資料庫
- Oracle資料庫備份與恢復之二:SQL*LoaderOracle資料庫SQL
- DB2的資料庫備份與恢復DB2資料庫
- 資料庫(表)的邏輯備份與恢復資料庫
- 資料庫備份與恢復----第一課資料庫