Oracle 冷備份 |
發(fā)布時間: 2012/9/16 15:30:50 |
-- Oracle 冷備份 --======================
一、冷備份 數(shù)據(jù)庫在關閉狀態(tài)下完成所有物理系統(tǒng)文件拷貝的過程,也稱脫機備份 適合于非歸檔模式下,數(shù)據(jù)庫處于一致性狀態(tài)
二、步驟 首先在運行的庫中得到數(shù)據(jù)庫運行的所有的物理文件位置,然后在計劃內(nèi)關閉數(shù)據(jù)庫(shutdown) 再執(zhí)行拷貝物理文家到備份路徑或備份設備 備份完成后立即啟動數(shù)據(jù)庫讓其提供正常的服務
三、冷備腳本的寫法 首先應該在相關視圖里查出數(shù)據(jù)庫的數(shù)據(jù)文件,日志文件,控制文件,臨時文件所在的位置 注意:不要直接把oradata下的cp就行了,因為生產(chǎn)庫里各個文件通常分布在不同的磁盤,不同的地方,所以在去視圖里獲得真實路徑
--查看實例和數(shù)據(jù)庫的相關信息 SQL> select instance_name,version,status,archiver,database_status from v$instance;
INSTANCE_NAME VERSION STATUS ARCHIVE DATABASE_STATUS ---------------- ----------------- ------------ ------- ----------------- orcl 10.2.0.1.0 OPEN STOPPED ACTIVE
SQL> select dbid,name,log_mode from v$database;
DBID NAME LOG_MODE ---------- --------- ------------ 1242732291 ORCL NOARCHIVELOG
--查看數(shù)據(jù)文件及狀態(tài)信息 SQL> select file_name,tablespace_name,status,online_status from dba_data_files;
FILE_NAME TABLESPACE STATUS ONLINE_ ------------------------------------------------------- ---------- --------- ------- /u01/app/Oracle/oradata/orcl/undotbs01.dbf UNDOTBS1 AVAILABLE ONLINE /u01/app/Oracle/oradata/orcl/system01.dbf SYSTEM AVAILABLE SYSTEM /u01/app/Oracle/oradata/orcl/sysaux01.dbf SYSAUX AVAILABLE ONLINE /u01/app/Oracle/oradata/orcl/users01.dbf USERS AVAILABLE ONLINE /u01/app/Oracle/oradata/orcl/example01.dbf EXAMPLE AVAILABLE ONLINE /u01/app/Oracle/oradata/orcl/tbs1_1.dbf TBS1 AVAILABLE ONLINE /u01/app/Oracle/oradata/orcl/tbs1_2.dbf TBS1 AVAILABLE ONLINE
--查看數(shù)據(jù)文件 SQL> select name from v$datafile;
NAME -------------------------------------------------------------------------------- /u01/app/Oracle/oradata/orcl/system01.dbf /u01/app/Oracle/oradata/orcl/undotbs01.dbf /u01/app/Oracle/oradata/orcl/sysaux01.dbf /u01/app/Oracle/oradata/orcl/users01.dbf /u01/app/Oracle/oradata/orcl/example01.dbf /u01/app/Oracle/oradata/orcl/tbs1_1.dbf /u01/app/Oracle/oradata/orcl/tbs1_2.dbf
--查看臨時文件 SQL> select name from v$tempfile;
NAME -------------------------------------------------------------------------------- /u01/app/Oracle/oradata/orcl/temp01.dbf
--查看日志文件 SQL> select member from v$logfile;
MEMBER ------------------------------------------------------------ /u01/app/Oracle/oradata/orcl/redo2a.rdo /u01/app/Oracle/oradata/orcl/redo2b.rdo /u01/app/Oracle/oradata/orcl/redo1a.rdo /u01/app/Oracle/oradata/orcl/redo3a.rdo /u01/app/Oracle/oradata/orcl/redo3b.rdo /u01/app/Oracle/oradata/orcl/redo1b.rdo
--查看控制文件 SQL> select name from v$controlfile;
NAME ------------------------------------------------------------ /u01/app/Oracle/oradata/orcl/control01.ctl /u01/app/Oracle/oradata/orcl/control02.ctl
--創(chuàng)建備份目錄 SQL> ho mkdir /u01/app/Oracle/coolbak
--使用連接符生成復制文件命令 SQL> select 'ho cp ' || name || ' /u01/app/Oracle/coolbak' from v$controlfile;
'HOCP'||NAME||'/U01/APP/Oracle/COOLBAK' ---------------------------------------------------------------------------------- ho cp /u01/app/Oracle/oradata/orcl/control01.ctl /u01/app/oracle/coolbak ho cp /u01/app/Oracle/oradata/orcl/control02.ctl /u01/app/oracle/coolbak
SQL> save /tmp/tmpbak.sql; --將上面的輸入保存為tmpbak.sql Created file /tmp/tmpbak.sql
SQL> ho vim /tmp/tmpbak.sql --編輯tmpbak.sql,將下面的內(nèi)容輸入到tmpbak.sql
set feedback off set heading off set verify off set trimspool off set pagesize 0 set linesize 200 define dir = '/u01/app/Oracle/coolbak' define script = '/tmp/coolbak.sql' spool &script select 'ho cp ' || name || ' &dir' from v$controlfile union all select 'ho cp ' || name || ' &dir' from v$datafile union all select 'ho cp ' || member || ' &dir' from v$logfile union all select 'ho cp ' || name || ' &dir' from v$tempfile / create pfile = '&dir/initorcl.ora' from spfile; ho cp /u01/app/Oracle/10g/dbs/orapworcl &dir spool off shutdown immediate start &script ho rm &script startup
--執(zhí)行tmpbak.sql SQL> @/tmp/tmpbak.sql;
--執(zhí)行過程及數(shù)據(jù)庫啟動略
--啟動后查看備份的文件 SQL> ho ls /u01/app/Oracle/coolbak control01.ctl orapworcl redo2b.rdo system01.dbf users01.dbf control02.ctl redo1a.rdo redo3a.rdo tbs1_1.dbf example01.dbf redo1b.rdo redo3b.rdo tbs1_2.dbf initorcl.ora redo2a.rdo sysaux01.dbf undotbs01.dbf
四、總結 優(yōu)點 冷備模式下概念易于理解,即將需要備份的文件復制到安全的位置 操作比較簡單,不需要太多的干預 容易恢復到某個時間點上(只需將文件再拷貝回去) 能與歸檔方法相結合,作數(shù)據(jù)庫“最新狀態(tài)”的恢復。 缺點 備份時,數(shù)據(jù)庫必須處于一致性關閉狀態(tài) 只能提供到某一時間點的恢復 備份時速度比較慢,尤其是數(shù)據(jù)量大性能影響比較大 不能實現(xiàn)基于表和用戶級別的數(shù)據(jù)恢復
Oracle教程 更多參考 有關閃回特性請參考 Oracle 閃回特性(FLASHBACK DATABASE) Oracle 閃回特性(FLASHBACK DROP & RECYCLEBIN) Oracle 閃回特性(Flashback Query、Flashback Table) Oracle 閃回特性(Flashback Version、Flashback Transaction) 有關基于用戶管理的備份和備份恢復的概念請參考: Oracle 冷備份 Oracle 熱備份 Oracle 備份恢復概念 Oracle 實例恢復 Oracle 基于用戶管理恢復的處理(詳細描述了介質恢復及其處理) 有關RMAN的恢復與管理請參考: RMAN 概述及其體系結構 RMAN 配置、監(jiān)控與管理 RMAN 備份詳解 RMAN 還原與恢復 有關Oracle體系結構請參考: Oracle 實例和Oracle數(shù)據(jù)庫(Oracle體系結構) Oracle 表空間與數(shù)據(jù)文件 Oracle 密碼文件 Oracle 參數(shù)文件 Oracle 數(shù)據(jù)庫實例啟動關閉過程 Oracle 聯(lián)機重做日志文件(ONLINE LOG FILE) Oracle 控制文件(CONTROLFILE) Oracle 歸檔日志
本文出自:億恩科技【1tcdy.com】 |