天天看點

19C rac-rac dataguard環境配置用戶端高可用連接配接測試(二)

作者:葫蘆兒的成長記錄

接上文,上文配置完畢了基于角色的service。

19C rac-rac dataguard環境配置用戶端高可用連接配接測試(二)

通過不同的服務配置,實作了不同業務的讀寫分離,同時針對不同的應用實作了不同執行個體的資料庫執行個體的連接配接。

19C rac-rac dataguard環境配置用戶端高可用連接配接測試(二)

正常情況下rw的服務運作在主庫角色上面,當資料庫為physical standy的時候運作zd服務。

預期效果

1、當執行資料庫switchover後,新的主庫需要啟動rw服務,讀寫的應用自動連接配接到新的主庫

2、當執行資料庫switchover後,新的備庫需要啟動zd服務,隻讀應用自動連接配接到新的備庫。

手動switchover并檢視服務運作狀态

  • 執行切換(gadb-gadbstd)
alter database switchover to gadbstd verify;
alter database switchover to gadbstd;           

切換後狀态:原主庫執行個體全部shutdown,且svc服務全部offline

19C rac-rac dataguard環境配置用戶端高可用連接配接測試(二)

切換後的原備庫(新主庫)狀态 發現rw服務并未啟動,zd服務也沒有offline

19C rac-rac dataguard環境配置用戶端高可用連接配接測試(二)

新備庫的所有服務為offline狀态(和預期是不一緻)

19C rac-rac dataguard環境配置用戶端高可用連接配接測試(二)

新主庫(rw服務并未啟動,zd服務仍然運作)(和預期不一緻)

19C rac-rac dataguard環境配置用戶端高可用連接配接測試(二)
  • 再次執行反向切換(即恢複到原來的同步關系)gadbstd>gadb

原主庫,資料庫啟動到mount狀态,但是對應的rw服務目标是online

19C rac-rac dataguard環境配置用戶端高可用連接配接測試(二)

原備庫執行個體關閉同時對應的zd服務對應的目标是online狀态

19C rac-rac dataguard環境配置用戶端高可用連接配接測試(二)

手動啟動原主庫gadb時候 rw服務自動啟動了同時zd服務沒啟動。(和預期是一緻的)

19C rac-rac dataguard環境配置用戶端高可用連接配接測試(二)

手動啟動備庫gadbstd發現備庫對應的服務zd也啟動了 rw服務沒啟動(和預期是一緻的)

19C rac-rac dataguard環境配置用戶端高可用連接配接測試(二)

總結如下

1 gadb switchover to gadbstd 切換完成後gadbstd作為新主庫啟動到了mount狀态,gadb作為新備庫處于shutdown狀态,同時新備庫上面的所有服務為offline狀态,而且新主庫上面的zd服務沒有變化,同時rw服務并未啟動(和預期不一緻)

手動啟動資料庫後對應的服務并未按照之前規劃的角色進行啟動。即新主庫應該啟動rw服務,新備庫應該啟動zd服務。需要手動啟動對應的服務

2、再次執行反向切換 即gadbstd切換到gadb,切換完畢後新主庫gadb 啟動到了mount狀态,gadbstd為shutdown狀态,但是對應的服務資訊的target資訊變為和正正常劃的一緻即gadb的wr為online,gadbstd的zd服務的target為online。

手動啟動資料庫後發現gadb的rw服務正常啟動,gadbstd的rd服務正常啟動,和規劃的一緻。

原因:手動切換不會更新ocr的資訊,檢視到即便執行了switchover,通過srvctl config database指令檢視對應的資料庫角色并未變化,但是通過資料庫裡面sqlplus 檢視database role已經改變。通過指令行切換,由于無法更新ocr中的database_role,是以服務不會正常啟動或停止。導緻叢集無法啟動對應的服務,這一點是需要注意的,如果執行的是手動switchover需要手動啟動或停止對應的服務。

通過檢視《How to create a RAC Database Service With Physical Standby Role Option? (Doc ID 1129143.1)》裡面寫到通過dgbroker進行的切換會更新叢集的ocr資訊實作服務的自動啟動。下一章節介紹通過dgbroker進行切換的測試。

繼續閱讀