冷備份是數(shù)據(jù)庫文件的物理備份,通常在數(shù)據(jù)庫通過一個(gè)shutdown normal或shutdown immediate 命令正常關(guān)閉后進(jìn)行。當(dāng)數(shù)據(jù)庫關(guān)閉時(shí),其使用的各個(gè)文件都可以進(jìn)行備份。這些文件構(gòu)成一個(gè)數(shù)據(jù)庫關(guān)閉時(shí)的一個(gè)完整映像。
冷備份通常要備份以下文件:
所有數(shù)據(jù)文件
所有控制文件
所有聯(lián)機(jī)重做日志
初始化參數(shù)文件initsid.ora(可選)
先執(zhí)行以下SQL語句查看所有需要備份的文件:
復(fù)制代碼 代碼如下:
SVRMGR> select * from v$datafile;
SVRMGR> select * from v$controlfile;
SVRMGR> select * from v$logfile;
記錄下所有的這些文件的路徑和文件名,同時(shí)連同初始化參數(shù)文件一起備份到disk或tape。
數(shù)據(jù)庫在shutdown后,如何脫機(jī)備份?
脫機(jī)備份直接把物理文件拷貝到一個(gè)位置就可以了,如果要在備份的位置啟動數(shù)據(jù)庫,寫一個(gè)新的init文件,修改control文件的位置,再執(zhí)行下代碼
復(fù)制代碼 代碼如下:
SQL> startup mount
ORACLE instance started.
Total System Global Area 57124108 bytes
Fixed Size 70924 bytes
Variable Size 40198144 bytes
Database Buffers 16777216 bytes
Redo Buffers 77824 bytes
Database mounted.
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01113: file 1 needs media recovery
ORA-01110: data file 1: 'F:ORACLEORADATALHGSYSTEM01.DBF'
startup restrict 不行,因?yàn)榭刂莆募衛(wèi)og,data文件位置沒有修改,無法open數(shù)據(jù)庫,需要啟動到mount狀態(tài),修改之后再open.
物理備份的內(nèi)容不需要做恢復(fù)
脫機(jī)備份的注意事項(xiàng)
完全脫機(jī)備份,又名冷備份。冷備份的存在是為了保護(hù)現(xiàn)場,防止我們恢復(fù)失敗時(shí)可以從頭開始。
我們知道,數(shù)據(jù)文件是oracle向os預(yù)留的磁盤空間,如果我們規(guī)劃數(shù)據(jù)庫時(shí),申請了50g,一開始o(jì)racle
可能只用了100M,我們冷備時(shí)所需的有效數(shù)據(jù)就更少了,或許只有5M,但我們還是得備份50g。
這便是冷備的缺點(diǎn)。
進(jìn)行冷備時(shí)可能出現(xiàn)備份不全或備份了垃圾數(shù)據(jù)的狀況。所以,我們務(wù)必以數(shù)據(jù)庫看到的為準(zhǔn)。
通常,冷備的主要對象是datafile,controlfile和redo log file。我們可以借助幾個(gè)視圖來瞧瞧
他們匿于何處。
于數(shù)據(jù)文件:
復(fù)制代碼 代碼如下:
[sql]
SQL> select file_name from dba_data_files;
www.jb51.net
FILE_NAME
------------------------------------------------------------------------------------------------------------------------------------------------------
/u01/app/oracle/oradata/ORCL/datafile/o1_mf_users_8050fkdh_.dbf
/u01/app/oracle/oradata/ORCL/datafile/o1_mf_sysaux_8050fk3w_.dbf
/u01/app/oracle/oradata/ORCL/datafile/o1_mf_undotbs1_8050fkc6_.dbf
/u01/app/oracle/oradata/ORCL/datafile/o1_mf_system_8050fk2z_.dbf
/u01/app/oracle/oradata/ORCL/datafile/o1_mf_example_8050jhm7_.dbf
于控制文件:
[sql]
SQL> select name from v$controlfile;
NAME
------------------------------------------------------------------------------------------------------------------------------------------------------
/u01/app/oracle/oradata/ORCL/controlfile/o1_mf_8050hgfp_.ctl
/u01/app/oracle/flash_recovery_area/ORCL/controlfile/o1_mf_8050hgqh_.ctl
于日志文件:
[html]
SQL> select member from v$logfile;
MEMBER
------------------------------------------------------------------------------------------------------------------------------------------------------
/u01/app/oracle/oradata/ORCL/onlinelog/o1_mf_3_8050hq4s_.log
/u01/app/oracle/flash_recovery_area/ORCL/onlinelog/o1_mf_3_8050hs2h_.log
/u01/app/oracle/oradata/ORCL/onlinelog/o1_mf_2_8050hm84_.log
/u01/app/oracle/flash_recovery_area/ORCL/onlinelog/o1_mf_2_8050ho5o_.log
/u01/app/oracle/oradata/ORCL/onlinelog/o1_mf_1_8050hhn1_.log
/u01/app/oracle/flash_recovery_area/ORCL/onlinelog/o1_mf_1_8050hkdv_.log
為了縮短備份時(shí)間和節(jié)省磁盤空間,通常,我們可以做如下微調(diào):
1)查看當(dāng)前被oracle 激活的undo,這個(gè)undo將作為冷備的一員。
復(fù)制代碼 代碼如下:
[html]
SQL> show parameter undo
www.jb51.net
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string AUTO
undo_retention integer 900
undo_tablespace string UNDOTBS1
2)對于temp臨時(shí)文件,我們可以不必備份,因?yàn)?,oracle在開機(jī)時(shí),不會檢查臨時(shí)文件。
3)對于控制文件,存在多路鏡像,我們可以只備份其中之一。
完成了上面的幾點(diǎn)友情提醒后,我們就可以開始把實(shí)例給關(guān)了,開始作冷備。
[sql]
shutdown immediate
您可能感興趣的文章:- Linux中Oracle數(shù)據(jù)庫備份
- Oracle數(shù)據(jù)庫的備份與恢復(fù)
- 有關(guān)Oracle數(shù)據(jù)庫的備份情況
- 批處理寫的 oracle 數(shù)據(jù)庫備份還原工具
- Linux 自動備份oracle數(shù)據(jù)庫詳解
- 自動備份Oracle數(shù)據(jù)庫
- oracle數(shù)據(jù)庫創(chuàng)建備份與恢復(fù)腳本整理
- ORACLE 數(shù)據(jù)庫RMAN備份恢復(fù)
- Linux oracle數(shù)據(jù)庫自動備份自動壓縮腳本代碼
- Oracle備庫宕機(jī)啟動的完美解決方案