Dataguard - 經過主庫熱備方式建立容災庫

部署dataguard時須要利用主庫的備份建立容災庫,對於小庫能夠採用冷備方式,而對於大庫,因作冷備致使過長的停機時間是不少企業沒法容忍的。下面介紹在主庫不關閉的狀況下,作利用熱備建立容災庫的方法。(不描述dg實施的細節,只針對主庫熱備及在容災主機上作庫恢復的方式)sql

一、主庫熱備數據庫

主庫已開啓歸檔功能,在數據庫open狀態下作全備:session

Rman> run {rest

Sql ‘alter system archive log current’;日誌

backup full database format '/data/backup/full_db_%U.bpk';部署

}get

注:這裏不備份在線歸檔日誌,後面作容災庫恢復時,直接從主庫copy歸檔文件。io

二、容災庫建立登錄

啓動容災庫到mount狀態:file

sql> startup mount;

利用以前主庫熱備文件還原數據文件:

rman> restore database;

因爲目前容災庫狀態落後於主庫,須要利用主庫歸檔日誌文件作recover,以實現狀態一致。

須要肯定要從主庫複製哪些用於恢復的歸檔文件。

檢查還原後datafile的checkpoint_change#

sql> select checkpoint_change# from v$datafile_header;

513326

那麼主庫上checkpoint在513326以後的歸檔日誌文件都須要複製到容災庫,用於恢復。

登陸主庫,肯定須要複製的歸檔文件:

sql> Select sequence,first_change#,next_change#,name from v$archived_log where first_change#>=513326;

將文件複製容災庫:

$ scp arch*log 容災主機:/archive/

在容災庫上作日誌恢復:

Sql> recover automatic standby database;

輸入auto,恢復到最新的歸檔文件。

Sql> recover automatic standby database;

輸入cancel,提示恢復成功。

sql> alter database open; #能夠正常打開

sql> recover managed standby database cancel;

sql> recover managed standby database disconnect from session; #進入日誌恢復狀態

至此,在生產數據庫不中斷的狀況下,完成了容災數據庫的建立。

還能夠使用如下方式實現

rman >duplicate target database for standby

另外,11g能夠不用對主庫進行備份,就能夠建立dataguard.

11g 不用對主庫進行備份,就能夠建立dg,具體的命令爲:

run

{

allocate channel c1 type disk;

allocate auxiliary channel c2 type disk;

duplicate target database for standby from active database nofilenamecheck;

}

相關文章
相關標籤/搜索