【DG】在Linux平臺上搭建單例項的dataguard--rman還原方式

lhrbest發表於2019-08-28

【DG】在Linux平臺上搭建單例項的dataguard--rman還原方式


什麼是dataguard?

DataGuard 是Oracle自帶的資料庫同步技術,基本原理為將日誌檔案(Redo)從源資料庫傳輸到目標資料庫,然後再目標資料庫上應用(apply)這些日誌檔案,從而使目標資料庫和源資料庫保持同步。

提供三種模式可選:

(1) 最大效能模式:不影響源資料庫的效能,在這種模式下,一旦資料庫寫到源資料庫的聯機日誌檔案中,事務即可提交,不必等到了日誌寫到目標資料庫。

(2) 最大保護模式:日誌資料必須同時寫到源資料庫的聯機日誌檔案和一個目標庫的備用日誌檔案,事務才能提交。可確保資料零丟失,當目標資料庫資料不可寫時,關閉源資料庫。

(3) 最大可用模式:正常處於最大保護模式,當目標資料庫不能寫日誌時,則源資料庫不關閉,改為最大效能模式,當目標資料庫可寫後,轉化為最大保護模式。

根據目標資料庫上Apply方式不同:

(1) Physical Standby(Redo Apply):透過介質恢復的方法與Oracle保持同步,優點是DDL操作也可以同步包括資料檔案的建立等。資料庫不可用。或者在間歇過程中以只讀方式開啟,進行資料查詢,然後恢復到日誌應用模式下。

(2) Logical Standby(SQL Apply):資料庫處於開啟模式,透過LogMiner挖掘傳輸過來的日誌,構造成Sql語句,然後再目標庫執行,從而與源資料庫保持同步。

DataGuard的缺點:

(1) 傳輸整個日誌,因此需要很大的頻寬,可能浪費三倍以上的頻寬。

(2) Physical Standby 使資料庫不可用,即使可以查詢但是會使Oracle的同步停止。

(3) Logical Standby 不能支援DDL操作。

(4) 不支援一對多複製,不支援雙向複製。

(5) 只能複製整個資料庫,不能選擇某個schema或表空間單獨複製。

(6) 不支援異構的環境,必須是相同的作業系統以及相同的資料庫版本。

主要用於高可用災難恢復環境

 


 


1、開啟主庫DB系統強制歸檔


 


Shutdown immediate;


startup mount;


alter database forcelogging;


alter database open;


 


selectforce_logging,guard_status from V$database;


 


2、在備庫上安裝與主庫一樣版本Oracle Software


opatch lsinventory


 


                             


3、在備庫上使用NETCA配置好監聽


 


 


4、在主備庫上配置TNSNAMES.ORA


PRDBCSP =


  (DESCRIPTION =


    (ADDRESS = (PROTOCOL = TCP)(HOST =prdbcsp)(PORT = 1521))


    (CONNECT_DATA =


      (SERVER = DEDICATED)


      (SERVICE_NAME = prdbcsp)


    )


  )


 


STBBCSP =


  (DESCRIPTION =


    (ADDRESS = (PROTOCOL = TCP)(HOST =stbbcsp)(PORT = 1521))


    (CONNECT_DATA =


      (SERVER = DEDICATED)


      (SERVICE_NAME = stbbcsp)


    )


  )


 


5、修改主備DB上parameter引數


主庫建立pfile後複製到備庫,然後分別修改:


主庫增加:


*.db_unique_name='prdbcsp'


*.log_archive_config='dg_config=(prdbcsp,stbbcsp)'


*.log_archive_dest_1='location=/dbfile/archive/prdbcspvalid_for=(all_logfiles,all_roles) db_unique_name=prdbcsp'


*.log_archive_dest_2='service=stbbcspoptional lgwr async valid_for=(online_logfiles,primary_role)db_unique_name=stbbcsp compression=enable'


*.log_archive_dest_state_2='ENABLE'


*.log_file_name_convert='/dbfile/oradata/stbbcsp','/dbfile/oradata/prdbcsp'


*.db_file_name_convert='/dbfile/oradata/stbbcsp','/dbfile/oradata/ prdbcsp'


standby_file_management='AUTO'


*.fal_client='prdbcsp'


*.fal_server='stbbcsp'


 


備庫增加:


*.db_unique_name='stbbcsp'


*.log_archive_config='dg_config=(stbbcsp,prdbcsp)'


*.log_archive_dest_1='location=/dbfile/archive/stbbcspvalid_for=(all_logfiles,all_roles) db_unique_name=stbbcsp'


*.log_archive_dest_2='service=prdbcspoptional lgwr async valid_for=(online_logfiles,primary_role)db_unique_name=prdbcsp compression=enable'


*.log_archive_dest_state_2='ENABLE'


*.log_file_name_convert='/dbfile/oradata/prdbcsp','/dbfile/oradata/stbbcsp'


*.db_file_name_convert='/dbfile/oradata/prdbcsp','/dbfile/oradata/ stbbcsp'


standby_file_management='AUTO'


*.fal_client='stbbcsp'


*.fal_server='prdbcsp'


 


6、Copy database orapw口令檔案


複製後重新命名


 


7、Create the standby controlfile


主庫執行:


Shutdown immediate


startup mount;


alter databasecreate standby controlfile as '/home/oracle/stdby_controlfile.ctl';


 


複製到備庫


 


 


8、停止主庫,完成資料檔案遷移


有兩種方式:


(1)利用RMAN匯出,然後恢復


(2)直接複製檔案


 


rman target /


run{


allocate channel c3type disk;


copy datafile'/dev/vg_iora01/redo_256m_02.dbf' to '/dev/vg_iora03/rdata_512m_001';


copy datafile'/dev/vg_iora01/redo_256m_03.dbf' to '/dev/vg_iora03/rdata_512m_002';


}


 


最好用asm複製


 


利用RMAN匯出,然後恢復


Startup nomountpfile=’/home/oracle/pfile.ora


Alter databasemount;


Select name fromv$datafile;


Select name fromv$tempfile;


然後恢復:


RMAN> restore controlfile to '/dbfile1/database/prdfrdb1/control1.ctl'from '/dbfile2/backupprdfrdb1/prdfrdb1_1_6100.ctb';


RMAN> alter database mount;


RMAN> RUN {


set command id to'123';


allocate channel d1type disk ;


allocate channel d2type disk ;


allocate channel d3type disk ;


allocate channel d4type disk ;


SET NEWNAME FORDATAFILE '/dbfile/oradata/prdbcsp/system01.dbf' to'/dbfile/oradata/stbbcsp/system01.dbf';


SET NEWNAME FORDATAFILE '/dbfile/oradata/prdbcsp/sysaux01.dbf' to'/dbfile/oradata/stbbcsp/sysaux01.dbf';


SET NEWNAME FORDATAFILE '/dbfile/oradata/prdbcsp/undotbs01.dbf' to'/dbfile/oradata/stbbcsp/undotbs01.dbf';


SET NEWNAME FORDATAFILE '/dbfile/oradata/prdbcsp/users01.dbf' to'/dbfile/oradata/stbbcsp/users01.dbf';


SET NEWNAME FORDATAFILE '/dbfile/oradata/prdbcsp/temp01.dbf' to'/dbfile/oradata/stbbcsp/temp01.dbf';


restore database;


SWITCH DATAFILE ALL;


release channel d1;


release channel d2;


release channel d3;


release channel d4;


}exit                     


 


 


直接複製檔案:


複製dbfile下資料檔案到備庫,更改資料夾名稱


複製之前的控制檔案替換dbfile內的控制檔案


 


Startup nomountpfile=’/home/oracle/pfile.ora


Alter databasemount;


Select name fromv$datafile;


Select name fromv$tempfile;


重新命名:


alter datbase renamefile '/dbfile/oradata/prdbcsp/system01.dbf' to'/dbfile/oradata/stbbcsp/system01.dbf';


alter datbase renamefile '/dbfile/oradata/prdbcsp/sysaux01.dbf' to'/dbfile/oradata/stbbcsp/sysaux01.dbf';


alter datbase renamefile '/dbfile/oradata/prdbcsp/undotbs01.dbf' to'/dbfile/oradata/stbbcsp/undotbs01.dbf';


alter datbase renamefile '/dbfile/oradata/prdbcsp/users01.dbf' to '/dbfile/oradata/stbbcsp/users01.dbf';


alter datbase renamefile '/dbfile/oradata/prdbcsp/temp01.dbf' to'/dbfile/oradata/stbbcsp/temp01.dbf';


  


 9、檢查並修改資料檔名稱和路徑


select name fromV$datafile;


select name fromV$tempfile;


單機環境:


select member fromV$logfile;


RAC環境:


select a.group#,A.MEMBERfrom V$logfile a, V$log b where A.GROUP#=B.GROUP#  and B.THREAD#=1;


selecta.group#,A.MEMBER from V$logfile a, V$log b where A.GROUP#=B.GROUP#  and B.THREAD#=2;


 


修改logfile檔案(不一定需要)


alter database renamefile '/dbfile/database/stbecif/stbecif-redoa1.rdo' to'/dbfile/database/stbecif/thread1-redoa1.rdo';


 


 


10、配置完成Standby redo logfile


主庫:


alter database addstandby logfile group 6 ('/dbfile/oradata/prdbcsp/stbredoa.rdo') size 1024m;


alter database addstandby logfile group 7 ('/dbfile/oradata/prdbcsp/stbredob.rdo') size 1024m;


alter database addstandby logfile group 8 ('/dbfile/oradata/prdbcsp/stbredoc.rdo') size 1024m;


alter database addstandby logfile group 9 ('/dbfile/oradata/prdbcsp/stbredod.rdo') size 1024m;


alter database addstandby logfile group 10 ('/dbfile/oradata/prdbcsp/stbredoe.rdo') size 1024m;


alter database addstandby logfile group 11 ('/dbfile/oradata/prdbcsp/stbredof.rdo') size 1024m;


 


備庫:


alter database addstandby logfile group 6 ('/dbfile/oradata/stbbcsp/stbredoa.rdo') size 1024m;


alter database addstandby logfile group 7 ('/dbfile/oradata/stbbcsp/stbredob.rdo') size 1024m;


alter database addstandby logfile group 8 ('/dbfile/oradata/stbbcsp/stbredoc.rdo') size 1024m;


alter database addstandby logfile group 9 ('/dbfile/oradata/stbbcsp/stbredod.rdo') size 1024m;


alter database addstandby logfile group 10 ('/dbfile/oradata/stbbcsp/stbredoe.rdo') size 1024m;


alter database addstandby logfile group 11 ('/dbfile/oradata/stbbcsp/stbredof.rdo') size 1024m;


 


 


11. 開啟同步,檢視狀態


 


alter databaserecover managed standby database using current logfile disconnect from session;


alter databaserecover managed standby database cancel;


 


col open_mode fora25


col database_rolefor a30


col db_unique_namefor a20


selectopen_mode,database_role,db_unique_name from v$database;


 


col name format a30


col value format a30


col time_computedformat a30


set linesize 200


selectname,value,time_computed from V$dataguard_stats;

 ———————————————— 




About Me

........................................................................................................................

● 本文作者:小麥苗,部分內容整理自網路,若有侵權請聯絡小麥苗刪除

● 本文在itpub、部落格園、CSDN和個人微 信公眾號( xiaomaimiaolhr)上有同步更新

● 本文itpub地址: http://blog.itpub.net/26736162

● 本文部落格園地址: http://www.cnblogs.com/lhrbest

● 本文CSDN地址: https://blog.csdn.net/lihuarongaini

● 本文pdf版、個人簡介及小麥苗雲盤地址: http://blog.itpub.net/26736162/viewspace-1624453/

● 資料庫筆試面試題庫及解答: http://blog.itpub.net/26736162/viewspace-2134706/

● DBA寶典今日頭條號地址:

........................................................................................................................

● QQ群號: 230161599 、618766405

● 微 信群:可加我微 信,我拉大家進群,非誠勿擾

● 聯絡我請加QQ好友 646634621 ,註明新增緣由

● 於 2019-08-01 06:00 ~ 2019-08-31 24:00 在西安完成

● 最新修改時間:2019-08-01 06:00 ~ 2019-08-31 24:00

● 文章內容來源於小麥苗的學習筆記,部分整理自網路,若有侵權或不當之處還請諒解

● 版權所有,歡迎分享本文,轉載請保留出處

........................................................................................................................

小麥苗的微店

小麥苗出版的資料庫類叢書http://blog.itpub.net/26736162/viewspace-2142121/

小麥苗OCP、OCM、高可用網路班http://blog.itpub.net/26736162/viewspace-2148098/

小麥苗騰訊課堂主頁https://lhr.ke.qq.com/

........................................................................................................................

使用 微 信客戶端掃描下面的二維碼來關注小麥苗的微 信公眾號( xiaomaimiaolhr)及QQ群(DBA寶典)、新增小麥苗微 信, 學習最實用的資料庫技術。

........................................................................................................................

歡迎與我聯絡

 

 



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

相關文章