歸檔模式下熱備原理及指令碼

gholay發表於2014-03-15
歸檔模式下熱備原理 :
熱備是控制SCN在你備份的時候不變化 (凍結塊頭),但行的記錄是可以變更的。
然後進行物理拷貝,
然後使scn可以變化(解凍塊頭)

我們可以對資料庫熱備,也可以對錶空間熱備,也可以對控制檔案熱備。但一般情況下對錶空間熱備。日誌檔案不需要熱備。
引數檔案可以相互轉化,也不需要熱備。

熱備的命令:
alter database begin backup;     這個命令會凍結所有的塊頭。
alter database end backup ;      解凍所有的塊頭。

對單個表空間執行熱備:
alter tablespace <> begin backup  ;
alter tablespace <> end backup ;
注:臨時表空間是不需要熱備的。


操作:
檢視是否為歸檔模式
SQL>archive log list ;
如果不是,執行alter database archivelog 

SQL>alter system switch logfile ;
執行切換日誌後,你看current log sequence 是否變化 了,
如果更新了,說明當前的歸檔模式是正常在工作。


SQL> select tablespace_name from dba_data_files ;
檢視錶空間。
SQL>select name from v$datafile ;
檢視錶空間的路徑

SQL>alter database begin backup ;

然後做資料檔案的拷貝。
SQL>select 'ho cp '||name || '/u02/horcl/' from v$datafile ;

SQL>alter database end backup ;

然後再備份控制檔案
SQL> alter database backup controlfile to '/u02/horcl/control01.ctl' ;

然後備份 引數檔案
SQL>create pfile='/u02/horcl/initorcl.ora' from spfile ;

日誌檔案不需要做備份。
臨時表空間也不需要備份 ,它也oracle啟動沒有關係,只也排序之類的有關係。


最後,總結一下完整的熱備的指令碼。
spool /tmp/hot.sql
select 'ho cp ' || name  || '/u02/horcl/'  from v$datafile ;
spool off

ho sed -n /^ho cp/p' /tmp/hot.sql > /tmp/hotorcl.sql
alter database begin backup ;
start /tmp/hotorcl.sql
alter database end backup ;
alter database backup controlfile to '/u02/horcl/control01.ctl' ;
create pfile='/u02/horcl/initorcl.ora' from spfile ;

然後執行指令碼
SQL>@/u02/hotbak



==================================
下面來使用備份表空間的方式來備份。
指令碼:
set heading off
spool /tmp/hot.sql
select 'alter tablespace ' || tablespace_name  || ' begin backup ; '
|| chr(10) ||
' ho cp ' || file_name || ' /u02/horcl/' || chr(10)
||' alter tablespace ' || tablespace_name || ' end backup ; ' from
dba_data_files order by tablespace_name ;
spool off

start /tmp/hot.sql
alter database backup controlfile to 'u02/horcl/control01.ctl' ;
create pfile='/u02/horcl/initorcl.ora' from spfile  ;













來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29196873/viewspace-1122061/,如需轉載,請註明出處,否則將追究法律責任。

相關文章