ORACLE DATAGURARD 折騰記二

來源:互聯網
上載者:User

標籤:des   blog   http   io   os   使用   ar   for   檔案   

 前文再續,書接上一回,這次折騰Data Guard的一個重要目的是利用switchover實現機器的升級,怎麼switchover呢?按照我的理解,Data Guard的角色切換是這樣一個過程:

      (1)讓primary節點變為standby節點。

      (2)讓其中一個standby節點變為primary節點

      這裡比較有意思是“其中一個”,也就是說節點A原來是primary轉成standby後,突然我後悔了,還是可以馬上讓他變回primary節點的,具體看操作:

      此時 test02 是primary 節點,test03是standby節點,由於test03缺少一個參數,一點test03變為primary,歸檔不會自動發到test02,於是第一步要補全這個參數:

12 ##### test03 target priamry, standby now #####alter system set log_archive_dest_2=‘service=mydb_test02‘;

      讓test02由primary變為standby:

12 ##### test02, target standby, primary now #####alter database commit to switchover to physical standby ;

      以上語句有可能會遇到如下錯誤:

1234 alter database commit to switchover to physical standby*ERROR at line 1:ORA-01093: ALTER DATABASE CLOSE only permitted with no sessions connected

      這是由於一些串連還沒有釋放所致的,將前端應用關閉後如果還出現這種情況,可以用以下語句確認一下有哪些串連:

1234 ##### test02, target standby, primary now #####SELECT SID, PROCESS, PROGRAM FROM V$SESSION   WHERE TYPE = ‘USER‘AND SID <> (SELECT DISTINCT SID FROM V$MYSTAT);

      如果是Oracle內部進程的串連就不用管他了,執行如下語句就可以了:

1234 ##### test02, target standby, priamry now #####alter database commit to   switchover to physical standby   with session shutdown

      將test03也就是原來是standby的節點轉為primary:

123 ##### test03, target primary, standby now #####alter database commit to switchover to primary;##### test03, target primary, primary now #####

      開啟primary節點的資料庫,使其可對外服務:

123 ##### test03, target primary, primary now #####shutdown immediate;startup;

      啟動standby的歸檔恢複進程:

12 ##### test02, target standby, standby now #####alter database recover managed standby database disconnect from session;

      此時已經完成了Data Guard 主備切換了,可以監控住standby的alert檔案,在primay中做一次日誌切換,看看是否有歸檔記錄傳送過來並且恢複。

 

      如果監控時間比較長的(超過5分鐘)會看到如下錯誤:

123456789101112131415161718 ##### primary alert #####Fri Dec 17 14:04:46 2010Redo Shipping Client Connected as PUBLIC-- Connected User is ValidRFS[10]: Assigned to RFS process 12079RFS[10]: Database mount ID mismatch [0x9e217391:0x9e217bca]RFS[10]: Client instance is standby database instead of primaryRFS[10]: Not using real application clustersFri Dec 17 14:04:46 2010Errors in file /u01/app/admin/mydb/udump/mydb_rfs_12079.trc:ORA-16009: remote archive log destination must be a STANDBY database   ##### standby alert #####Fri Dec 17 14:04:54 2010Errors in file /u01/app/admin/mydb/bdump/mydb_arc1_6821.trc:ORA-16009: remote archive log destination must be a STANDBY databaseFri Dec 17 14:04:54 2010PING[ARC1]: Heartbeat failed to connect to standby ‘mydb_test02‘. Error is 16009.

      雖然不影響 Data Guard 的功能和使用,但如何解決呢?其實這是歸檔進程ARCHn進程在作怪,想辦法屏蔽就可以,一個比較土的方法就是將備節點的log_archive_dest_2設為空白,也就是回到上一篇中提到那種配置上,另外一種聰明點的做法就是引入valid_for參數:

12345 ##### test02 #####alter system set log_archive_dest_2=‘service=mydb_test03 valid_for=(online_logfiles,primary_role)‘; ##### test03 #####alter system set log_archive_dest_2=‘service=mydb_test02 valid_for=(online_logfiles,primary_role)‘;

      alert檔案中再也看不到這兩個錯誤了。

ORACLE DATAGURARD 折騰記二

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.