利用邏輯備庫進行rolling upgrade
從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
2 檢測DBA_LOGSTDBY_EVENTS,確保及時發現alert並修正
3 執行主庫切換
因為此時備庫的版本比主庫高,因此不能執行prepare階段
直接執行ALTER DATABASE COMMIT TO SWITCHOVER TO LOGICAL STANDBY;
4 將unsupported data types對應的表使用資料泵匯入備庫
5 將備庫切換成主庫
ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;此時的新主庫因為版本比備庫高,所以不能向其傳送redo
6 升級此時的備庫
然後開啟sql apply,因為切換沒有經過prepare步驟,此時需要以sys使用者建立一個dblink
執行ALTER DATABASE START LOGICAL STANDBY APPLY IMMEDIATE NEW PRIMARY db_link_to_b;
若dataguard為physical且希望升級後還是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 log在rolling 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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 邏輯備庫Switchover
- 配置物理備庫+邏輯備庫
- 使用Windows指令碼進行邏輯備份Windows指令碼
- 單節點主庫、邏輯備庫升級為RAC、物理備庫、邏輯備庫(1)
- 單節點主庫、邏輯備庫升級為RAC、物理備庫、邏輯備庫(2)
- 單節點主庫、邏輯備庫升級為RAC、物理備庫、邏輯備庫(3)
- 單節點主庫、邏輯備庫升級為RAC、物理備庫、邏輯備庫(4)
- 單節點主庫、邏輯備庫升級為RAC、物理備庫、邏輯備庫(5)
- 11 管理邏輯備庫
- 資料庫邏輯備份(轉)資料庫
- 邏輯備份全庫或者邏輯備份多個使用者的資料
- 4節點RAC建立邏輯備庫
- oracle邏輯備用資料庫(一)Oracle資料庫
- 按使用者進行資料庫邏輯遷移資料庫
- 邏輯Data Guard主備庫的轉換
- 【DataGuarad】邏輯遷移與standby備庫
- dataguard之邏輯備庫表空間不足
- 邏輯備庫上有指定表不應用
- ORACLE資料庫的邏輯備份(轉)Oracle資料庫
- 邏輯備份--mysqldumpMySql
- 如何利用Rman對Oracle資料庫進行備份Oracle資料庫
- 邏輯DG主備庫轉換的failoverAI
- dataguard回顧之安裝——建立邏輯備庫
- mysql 邏輯備份 (mysqldump)MySql
- mysql的邏輯備份MySql
- rac與邏輯備庫不能自動建表空間,物理備庫正常
- 11g 邏輯備庫簡單故障處理
- 資料庫(表)的邏輯備份與恢復資料庫
- dataguard之邏輯備庫移動資料檔案
- 邏輯備用資料庫主要作用是什麼。資料庫
- 認識資料庫物理備份和邏輯備份區別資料庫
- 【DATAGUARD】 基於同一個主機建立物理備庫和邏輯備庫(二)
- 【DATAGUARD】 基於同一個主機建立物理備庫和邏輯備庫(一)
- 【DATAGUARD】 基於同一個主機建立物理備庫和邏輯備庫 (三)
- MongoDB 邏輯備份工具mongodumpMongoDB
- Oracle 邏輯備份 expdp/impdpOracle
- expdp 邏輯備份指令碼指令碼
- MySql邏輯備份恢復MySql