利用邏輯備庫進行rolling upgrade

myownstars發表於2012-03-12

10.1.0.3開始,oracle可以使用logical standby進行rolling upgrade

要求

1         資料庫不能使用dataguard broker

2         保護模式只能是最大可用或最大效能

3         主庫上對應的邏輯備庫的log_archive_dest_n不能設定為mandatory,以便備庫升級時不對主庫產生影響

4         確認unsupported data types,檢視dba_logstdby_unsupported;備庫執行DBMS_LOGSTDBY.APPLY_SET('RECORD_UNSUPPORTED_OPERATIONS', 'TRUE')檢視dba_logstdby_events   ;升級完畢後可以透過expdp/impdp手工同步

步驟

1 停止邏輯備庫的sql apply,升級備庫然後開啟sql apply

檢測DBA_LOGSTDBY_EVENTS,確保及時發現alert並修正

3 執行主庫切換

   因為此時備庫的版本比主庫高,因此不能執行prepare階段

   直接執行ALTER DATABASE COMMIT TO SWITCHOVER TO LOGICAL STANDBY;

4 unsupported data types對應的表使用資料泵匯入備庫

將備庫切換成主庫

    ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;此時的新主庫因為版本比備庫高,所以不能向其傳送redo

升級此時的備庫

     然後開啟sql apply,因為切換沒有經過prepare步驟,此時需要以sys使用者建立一個dblink

 執行ALTER DATABASE START LOGICAL STANDBY APPLY IMMEDIATE NEW PRIMARY db_link_to_b;

 

 

dataguardphysical且希望升級後還是physical,則rolling upgrade會麻煩一些

1

開啟主庫的flashback database,並建立一個restore point

SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE FLASHBACK ON;
SQL> ALTER DATABASE OPEN;
SQL> CREATE RESTORE POINT pre_upgrade GUARANTEE FLASHBACK DATABASE;
2
將物理備庫轉化成邏輯備庫
SQL> ALTER DATABASE RECOVER TO LOGICAL STANDBY KEEP IDENTITY;新建成的備庫的db_name/dbid與主庫保持一致,但是隻能進行一次switchover
不可使用ALTER DATABASE RECOVER TO LOGICAL STANDBY db_name
轉成邏輯備庫後,需要進行以下設定
SQL> EXECUTE DBMS_LOGSTDBY.APPLY_SET('LOG_AUTO_DELETE', 'FALSE');--remote archived logrolling upgrade需要使用(step 4)
SQL> EXECUTE DBMS_LOGSTDBY.APPLY_SET('MAX_EVENTS_RECORDED',DBMS_LOGSTDBY.MAX_EVENTS);
SQL> EXECUTE DBMS_LOGSTDBY.APPLY_SET('RECORD_UNSUPPORTED_OPERATIONS', 'TRUE');
3
執行rolling upgrade
執行完畢後,原物理備庫變成了主庫並使用更高的版本,原主庫此時成了邏輯備庫但資料庫版本不變
4
將此時的邏輯備庫轉化成物理備庫
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
SQL> FLASHBACK DATABASE TO RESTORE POINT pre_upgrade;
SQL> SHUTDOWN IMMEDIATE;
使用高版本的binary載入資料庫,因為是物理備庫可以應用現有主庫的redo所以不需要執行upgrade scripts
SQL> STARTUP MOUNT;
SQL> ALTER DATABASE CONVERT TO PHYSICAL STANDBY;
SQL> SHUTDOWN IMMEDIATE;
重新啟動
5
執行switchover,將原主庫重新切換成主庫
刪除restore point
SQL> DROP RESTORE POINT PRE_UPGRADE;

 

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

相關文章