在第一天我大概介紹了DG,這篇我們就了解DG架構及相關參數。
小弟認為了解架構是一件很重要的事,因當有know how知識又具備know why精神,我想不管遇到任何事情都難不倒自己的。
文章均為自己見解,如有錯誤還請指教
事前確認事項
Hardware and Operatin System限制
*同一個DG中所有的ORACLE DB的OS須同一平台。
*不同的DB 硬體可以不同 如CPU 記憶體 硬碟大小數量等,但是須確保
standby DB有足夠的硬碟空間來接收和應用Redo log。
Oracle databse software限制
* DG只有ORACLE 企業版才有的特性。
*sys accounts密碼須相同。
*每個DB有各自controlfile。
*primary and standby must archivelog mode。
*primary enable force logging(alter database force logging)。
*primary為ASM/OMF那麼standby也要ASM/OMF。
DG架構
Log writer(LGWR)process:收集transaction redo information and updates the online redo logs and standby redo logs。
Archiver(ARCn) process: 預設情況下,redo傳輸服務使用ARCn歸檔redo日誌(primary db switch logfile就會啟動)。
Remote file server(RFS) process:接收primary db redo informatino。
Fetch archive log(FAL):當archivelog失敗或中斷,DG會自動解決處理就是靠這參數。Fal_server接收fal_client請求,fal_client主動要求再傳送。
Managed recovery process(MRP):physical standby only。Apply archivelog
Logical standby process(LSP):logical standby only。
參數介紹
DB_UNIQUE_NAME:DG中所有DB_NAME需要相同,但DB_UNIQUE_NAME在同一機器上一定要不同。
VAILD_FOR:指定傳輸archivelog對象。
Primary.ora
*.LOG_ARCHIVE_DEST_1='LOCATION=D:\oradata\priarch
VALID_FOR=(ALL_LOGFILES,ALL_ROLES)
DB_UNIQUE_NAME=pridg'
*.LOG_ARCHIVE_DEST_2='SERVICE=sdb2 LGWR ASYNC
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)
DB_UNIQUE_NAME=sdb2'
Standby.ora
*.LOG_ARCHIVE_DEST_1='LOCATION=D:\oradata\sdb2arch
VALID_FOR=(ALL_LOGFILES,ALL_ROLES)
DB_UNIQUE_NAME=sdb2'
*.LOG_ARCHIVE_DEST_2='SERVICE=pridg LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)
DB_UNIQUE_NAME=pridg'
Only one invalid:standby_logfile,primary_role
Standby redo log configuration
*enable即時應用
*size建議和online redo log一樣(方便接收)
*oracle推薦最好建立(primary and standby)
*接收primary redo data,online redo log則是紀錄本機操作紀錄
*建立方式可透過EM和SQL
add
Alter database add standby logfile group 4(‘d:\oradata\pridg\STANDBYRD01.log’) size 50M;
Delete
Alter database drop standby logfile group 4;
Check standby redo log
SELECT GROUP#,THREAD#,SEQUENCE#,ARCHIVED,STATUS FROM V$STANDBY_LOG;