[Oracle][Data Guard]Oracle11g Active Data Guard#5 Temporarily logical standby

[Oracle][Data Guard]Oracle11g Active Data Guard#5 Temporarily logical standby

Oracle11g多了Physics standby converted to temporarily logical standby功能,該功能主要是針對rolling upgrade所使用‧

在以前DG架構下要執行upgrade database,可以新建logical standby或利用physics standby轉換logical standby,

開啟sql apply完成rolling database upgrade,但physics standby只要轉換為logical standby將無法再還原為physics standby,

只能重新建立physics standby,或新建一個logical standby,這樣的情況會浪費空間(EMC硬碟很貴的..XD)及管理成本,

到了11g可以建立臨時logical standby等執行完upgrades再轉回physics standby在執行switchover回覆到原來DG設定,解決了上述的困擾。

文章均為自己見解,如有錯誤還請指教

 

先前有提到rolling upgrade兩種方式,看圖片就要知道要選那種方式了(小弟只是凡人~~~><)

11g採用temporarily logical standby

clip_image002

傳統switch方式

clip_image002[6]

 

看完圖後我相信大多數人會選擇傳統switch方式(畢竟還沒到神的境界~~xd),馬上來演練轉換過程(不包含rolling upgrade)。

1. primary配置(建立logminer table方便讓logical standby db擷取資訊)

begin

dbms_logstdby.build;

end;

/

image

2.停止redo apply process(確定apply done)

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

Create a guaranteed restore point --建立還原點

CREATE RESTORE POINT pre_stb GUARANTEE FLASHBACK DATABASE;

image

確認guaranteed restore point 資訊

SELECT NAME, SCN, TIME, DATABASE_INCARNATION#,
        GUARANTEE_FLASHBACK_DATABASE, STORAGE_SIZE
        FROM V$RESTORE_POINT
      WHERE GUARANTEE_FLASHBACK_DATABASE='YES';

3. 轉換臨時logical

alter database recover to logical standby keep identity;--簡單的一句SQL,記得加keep identity

(如無配置字典檔該操作會卡住,直到字典檔配置完成)

image

Shutdown immediate/startup mount

alter database open (不加resetlogs,DB也會以resetlogs來OPEN)

4.Open sql apply

官方建議關閉自動刪除foreign archivelogs

Disable automatic deletion of foreign archived logs at the logical standby database and then start SQL Apply for the first time:

execute DBMS_LOGSTDBY.APPLY_SET('LOG_AUTO_DELETE', 'FALSE');

image

關閉後在開啟sql apply process

alter database start logical standby apply immediate;

image

clip_image002[8]

執行到這裡已經完成temporarily logical standby的轉換,接下來測試是否可以成功還原physics standby。

關閉redo transport

Alter system set log_archive_dest_state_2=defer;

Shutdown immediate/startup mount(new logical)

使用Flashback技術還原

FLASHBACK DATABASE TO RESTORE POINT pre_stb ;(利用之前所建立的還原點)

ALTER DATABASE CONVERT TO PHYSICAL STANDBY;(執行轉換)

image

還原成功,後面就是開啟redo apply執行physics standby正常工作摟。