這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)如何理解primary數(shù)據(jù)庫standby,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
安化網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站開發(fā)等網(wǎng)站項目制作,到程序開發(fā),運營維護(hù)。創(chuàng)新互聯(lián)成立于2013年到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。
一、Read only/write模式打開物理standby
以read only 或read write模式打開物理standby,可以轉(zhuǎn)移一些查詢,備份之類的操作到standby數(shù)據(jù)庫,以分擔(dān)一些primary的壓力。
1). standby數(shù)據(jù)庫處于shutdown狀態(tài)
直接startup即可
2). standby數(shù)據(jù)庫處于redo應(yīng)用狀態(tài)
首先取消redo應(yīng)用:
SQL> alter database recover managed standby database cancel; SQL> alter database open
3). 從open狀態(tài)再切換回redo應(yīng)用,并不需要shutdown,只需啟用redo應(yīng)用即可
SQL> alter database recover managed standby database disconnect from session;
由于只讀打開時就不能應(yīng)用,雖然我們能夠查詢,但是查詢的結(jié)果確是與primary 不同步的,這點大大降低了物理standby 做報表服務(wù)分擔(dān)主庫壓力的可能性,對于這點呢,我們有兩個解決方案:
a.改用邏輯standby b. 使用oracle 11G
二、管理影響standby的primary數(shù)據(jù)庫事件
某些情況下,primary數(shù)據(jù)庫的某些改動會自動通過redo數(shù)據(jù)傳播到standby數(shù)據(jù)庫,因此不需要在standby數(shù)據(jù)庫做額外的操作,而某些情況,則需要手工調(diào)整。
下列事件會由redo傳輸服務(wù)及redo應(yīng)用自動處理,不需要dba的干預(yù):
ALTER DATABASE ENABLE|DISABLE THREAD語句
修改表空間狀態(tài)(例如read-write到read-only, online到offline)
創(chuàng)建修改刪除表空間或數(shù)據(jù)文件(前提條件:參數(shù)STANDBY_FILE_MANAGEMENT設(shè)置為AUTO)
以下事情則需要dba手工干預(yù):
1. 添加、修改、刪除數(shù)據(jù)文件或表空間
Standby_file_management設(shè)置為manual
不過需要注意一點,如果數(shù)據(jù)文件是從其它數(shù)據(jù)庫復(fù)制而來,則不管Standby_file_management參數(shù)值如何設(shè)置,都必須同時復(fù)制到standby數(shù)據(jù)庫,并注意要修改standby數(shù)據(jù)庫的控件文件。
2. 重命名數(shù)據(jù)文件
如果primary數(shù)據(jù)庫重命名了一個或多個數(shù)據(jù)文件,該項不修改并不會自動傳播到standby數(shù)據(jù)庫,不管standby_file_management它是auto還是manual。
A. SQL> alter tablespace webtbs offline; -- primary數(shù)據(jù)庫操作
B. 手工數(shù)據(jù)文件改名(操作系統(tǒng)) -- primary數(shù)據(jù)庫操作
C. SQL> alter tablespace webtbs rename datafile
'webtbs01.dbf' to 'tbsweb01.dbf';
SQL> alter tablespace webtbs online;
D. 暫停redo應(yīng)用,并shutdown --standby數(shù)據(jù)庫操作
SQL> alter database recover managed standby database cancel;
SQL> shutdown immediate
E. 手工將數(shù)據(jù)文件改名 -- standby數(shù)據(jù)庫操作
F. 重啟standby,修改數(shù)據(jù)文件路徑(數(shù)據(jù)字典) --standby數(shù)據(jù)庫操作
SQL> startup mount
SQL> alter database rename file
'webtbs01.dbf' to 'tbsweb01.dbf';
G. 重新啟動redo應(yīng)用
SQL> alter database recover managed standby database disconnect from session;
H. 切換日志 -- primary數(shù)據(jù)庫操作
SQL> alter system switch logfile;
3. 添加或刪除online redo logs
三、對open resetlogs的primary數(shù)據(jù)庫standby的恢復(fù)
四、 監(jiān)控primary/standby數(shù)據(jù)庫
1. 與恢復(fù)進(jìn)度相關(guān)的v$視圖應(yīng)用
A). 查看進(jìn)程的活動狀況 --v$managed_standby
B). 確認(rèn)redo應(yīng)用進(jìn)度 -- v$archive_dest_status
C). 檢查歸檔文件路徑及創(chuàng)建信息 -- v$archived_log
D). 查詢歸檔歷史 -- v$log_history
E). 查詢備庫上gap問題 --v$archived_gap,顯示有關(guān)備用數(shù)據(jù)庫上存檔空缺的信息。 這個視圖可以用來找出當(dāng)前存檔的差距,阻礙目前恢復(fù)化身的恢復(fù)
1.1、查看進(jìn)程的活動狀態(tài)
SQL> select process,status,thread#,sequence# from v$managed_standby order by 3,1;
PROCESS STATUS THREAD# SEQUENCE#
--------- ------------ ---------- ----------
RFS IDLE 0 0
RFS IDLE 0 0
RFS IDLE 0 0
RFS IDLE 0 0
ARCH CLOSING 1 13411
ARCH CLOSING 1 13412
RFS IDLE 1 13413
ARCH CLOSING 2 8849
ARCH CLOSING 2 4101
MRP0 APPLYING_LOG 2 8850
RFS IDLE 2 8850
這里,process就是進(jìn)程名,包括ARCH, RFS, MRP0等,對應(yīng)英文解釋如下:
Type of the process whose information is being reported:
RFS - Remote file server----接收進(jìn)程
MRP0 - Detached recovery server process----恢復(fù)進(jìn)程
MR(fg) - Foreground recovery session
ARCH - Archiver process
FGRD
LGWR
RFS(FAL)
RFS(NEXP)
LNS - Network server process
CLIENT_PROCESS 對應(yīng) Primary 數(shù)據(jù)庫中的進(jìn)程如 ARCH\LGWR等
SEQUENCE#:歸檔序號
STATUS 當(dāng)前進(jìn)程狀態(tài)
重要的是status字段,表示當(dāng)前的進(jìn)程狀態(tài),中文解釋如下:
ALLOCATED: 正在準(zhǔn)備但還未連接主庫
ATTACHED: 正在連接到主庫
CONNECTED:已經(jīng)連接到主庫
IDLE:空閑
ERROR:失敗的進(jìn)程,需要關(guān)注
RECEIVING:歸檔日志接收中
OPENING:歸檔日志處理中
CLOSING:歸檔日志處理完,正在收尾中
WRITING: 進(jìn)程在將REDO數(shù)據(jù)寫向歸檔文件中
WAIT_FOR_LOG:等待新的REDO歸檔數(shù)據(jù)中
WAIT_FOR_GAP:歸檔有中斷,正在等待中斷的那部分REDO數(shù)據(jù).
APPLYING_LOG:正在應(yīng)用REDO歸檔數(shù)據(jù)到備庫
1.2 查看REDO應(yīng)用進(jìn)度
SELECT DEST_NAME,ARCHIVED_THREAD#,ARCHIVED_SEQ#,APPLIED_THREAD#,APPLIED_SEQ#,DB_UNIQUE_NAME,STATUS FROM V$ARCHIVE_DEST_STATUS
--WHERE STATUS='VALID'
DEST_NAME ARCHIVED_THREAD# ARCHIVED_SEQ# APPLIED_THREAD# APPLIED_SEQ# DB_UNIQUE_NAME STATUS
------------------------- ---------------- ------------- --------------- ------------ ------------------------------ ---------
LOG_ARCHIVE_DEST_1 0 0 0 0 cuuo VALID
LOG_ARCHIVE_DEST_2 0 0 0 0 cuug VALID
LOG_ARCHIVE_DEST_3 0 0 0 0 NONE INACTIVE
LOG_ARCHIVE_DEST_4 0 0 0 0 NONE INACTIVE
LOG_ARCHIVE_DEST_5 0 0 0 0 NONE INACTIVE
LOG_ARCHIVE_DEST_6 0 0 0 0 NONE INACTIVE
LOG_ARCHIVE_DEST_7 0 0 0 0 NONE INACTIVE
LOG_ARCHIVE_DEST_8 0 0 0 0 NONE INACTIVE
LOG_ARCHIVE_DEST_9 0 0 0 0 NONE INACTIVE
LOG_ARCHIVE_DEST_10 0 0 0 0 NONE INACTIVE
STANDBY_ARCHIVE_DEST 0 0 0 0 NONE VALID
11 rows selected.
1.3 查看歸檔文件的路徑及創(chuàng)建信息
15:24:30 > SELECT NAME,CREATOR,THREAD#,SEQUENCE#,APPLIED,ARCHIVED,COMPLETION_TIME FROM V$ARCHIVED_LOG;
NAME CREATOR THREAD# SEQUENCE# APP ARC COMPLETIO
---------------------------------------------------- ------- ---------- ---------- --- --- ---------
/u01/app/oracle/oradata/cuuo/arch2_91_787689201.dbf ARCH 1 91 YES YES 04-JUL-12
/u01/app/oracle/oradata/cuuo/arch2_92_787689201.dbf LGWR 1 92 YES YES 04-JUL-12
/u01/app/oracle/oradata/cuuo/arch2_93_787689201.dbf LGWR 1 93 YES YES 04-JUL-12
/u01/app/oracle/oradata/cuuo/arch2_94_787689201.dbf LGWR 1 94 YES YES 04-JUL-12
1.4 查看歸檔歷史
SELECT FIRST_TIME,FIRST_CHANGE#,NEXT_CHANGE#,SEQUENCE# FROM V$LOG_HISTORY;
1.5 查看物理STANDBY數(shù)據(jù)庫未接收的日志文件
--從primary 數(shù)據(jù)庫獲取
select local.thread#,local.sequence# from
(select thread#,sequence# from v$archived_log where dest_id=1) local
where local.sequence# not in
(select sequence# from v$archived_log where dest_id=2 and thread# = local.thread#);
2 監(jiān)控日志應(yīng)用服務(wù)
2.1 查詢當(dāng)前數(shù)據(jù)的基本信息(V$DATABASE) 數(shù)據(jù)庫角色、保護(hù)模式、保護(hù)級別
SELECT DATABASE_ROLE,DB_UNIQUE_NAME,OPEN_MODE,PROTECTION_MODE,PROTECTION_LEVEL,SWITCHOVER_STATUS FROM V$DATABASE;
查詢failover后快速啟動的信息:
SELECT FS_FAILOVER_STATUS,FS_FAILOVER_CURRENT_TARGET,FS_FAILOVER_THRESHOLD,FS_FAILOVER_OBSERVER_PRESENT FROM V$DATABASE;
2.2 查詢REDO應(yīng)用和REDO傳輸服務(wù)的活動狀態(tài)
SELECT PROCESS,STATUS,THREAD#,SEQUENCE#,BLOCK#,BLOCKS FROM V$MANAGED_STANDBY;
2.3 查看REDO應(yīng)用模式(物理STANDBY數(shù)據(jù)庫)
SELECT RECOVERY_MODE FROM V$ARCHIVE_DEST_STATUS WHERE DEST_ID=2;
RECOVERY_MODE
-----------------------
MANAGED
--如果開啟了實時應(yīng)用,此處顯示的狀態(tài)應(yīng)該為 MANAGED REAL TIME APPLY
2.4 DATAGUARD 事件監(jiān)控
2.4.1 ALERT LOG
2.4.2 查詢 V$DATAGUARD_STATUS 視圖
16:03:17 > SELECT SEVERITY,DEST_ID,MESSAGE_NUM,ERROR_CODE,CALLOUT,MESSAGE FROM V$DATAGUARD_STATUS;
SEVERITY DEST_ID MESSAGE_NUM ERROR_CODE CAL MESSAGE
------------- ---------- ----------- ---------- --- ----------------------------------------
Informational 0 1 0 NO ARC0: Archival started
Informational 0 2 0 NO ARC1: Archival started
Informational 0 3 0 NO ARC0: Becoming the 'no FAL' ARCH
Informational 0 4 0 NO ARC0: Becoming the 'no SRL' ARCH
Informational 0 5 0 NO ARC1: Becoming the heartbeat ARCH
Control 0 6 0 YES Media Recovery Start: Managed Standby Recovery
Informational 0 7 0 NO Managed Standby Recovery not using Real Time Apply
3. 與log應(yīng)用相關(guān)的v$視圖應(yīng)用
A). 查詢當(dāng)前數(shù)據(jù)的基本信息 -- v$database
B). 檢查應(yīng)用模式 --v$archive_dest_status
C). Data guard事件 -- v$dataguard_status
五、調(diào)整物理standby log應(yīng)用頻率
調(diào)整應(yīng)用頻率說白了就是調(diào)整IO讀取能力
5.1設(shè)置RECOVER并行度
在介質(zhì)恢復(fù)或REDO應(yīng)用期間都需要讀取redo log ,默認(rèn)都是串行恢復(fù),
可以在RECOVER的時候加上PARALLEL子句來指定并行度。
RECOVER STANDBY DATABASE PARALLEL 2;
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE PARALLEL 2 DISCONNECT FROM SESSION;
5.2 加快REDO 應(yīng)用頻率
修改 DB_BLOCK_CHECKING=FALSE 能夠提高2倍的應(yīng)用效率,設(shè)置為FALSE只適合物理STANDBY數(shù)據(jù)庫,不適合primary數(shù)據(jù)庫。
5.5 設(shè)置 parallel_execution_message_size
如果打開了并行恢復(fù),適當(dāng)加大parallel_execution_message_size大小也可以提升性能,不過需要注意的事
增加該參數(shù)會占用更多的內(nèi)存。
5.5 優(yōu)化磁盤I/O
恢復(fù)期間最大的性能瓶頸是I/O讀寫,某些情況下將 DISK_ASYNCH_IO設(shè)置為TRUE 即使用本地異步I/O能夠降低并行讀取的次數(shù),加快整個恢復(fù)時間。
上述就是小編為大家分享的如何理解primary數(shù)據(jù)庫standby了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。