背景
??在做節(jié)前環(huán)境巡檢時,發(fā)現(xiàn)數(shù)據(jù)庫alert日志在2022-09-29 00:10:14的時候突然報ORA-16191,一直報到現(xiàn)在。ORA-16191一般為主備庫的密碼不致導(dǎo)致的。但0點不可能有人為操作,備份及日志清理腳本也不會影響到密碼文件。因此主備庫的密碼文件應(yīng)該是不會有什么變更的,這個問題就很有奇怪了。
- alert 報錯日志:
Thu Sep 29 00:10:14 2022
Error 1017 received logging on to the standby
------------------------------------------------------------
Check that the primary and standby are using a password file
and remote_login_passwordfile is set to SHARED or EXCLUSIVE,
and that the SYS password is same in the password files.
returning error ORA-16191
------------------------------------------------------------
FAL[server, ARC2]: Error 16191 creating remote archivelog file 'standby1'
FAL[server, ARC2]: FAL archive failed, see trace file.
ARCH: FAL archive failed. Archiver continuing
ORACLE Instance db - Archival Error. Archiver continuing.
- DG同步時間監(jiān)控也沒有預(yù)警:(此庫為數(shù)據(jù)變動很小的庫)
按理來講都同步異常2天了,為什么這個值還是00 00:00:00,看來監(jiān)控腳本再優(yōu)化一下了。
-- DG同步時間報警監(jiān)控是根據(jù)下面的查詢寫的監(jiān)控腳本
-- 該值表示在通過在備庫上應(yīng)用主庫傳遞過來的重做日志與出庫同步所延遲的時間。
SQL> select value from v$dataguard_stats where NAME='apply lag';
VALUE
--------------------
+00 00:00:00
復(fù)現(xiàn)測試
- 參數(shù):remote_login_passwordfile
SQL> show parameter remote_login_passwordfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
remote_login_passwordfile string EXCLUSIVE
測試一:
- 數(shù)據(jù)庫版本:Release 11.2.0.3.0
- 主庫修改密碼,不同步密碼文件
1、主庫修改sys密碼
SQL> alter user sys identified by oracle;
User altered.
2、log_archive_dest_state_2 禁用再啟用
-- 主庫操作:禁用log_archive_dest_state_2
SQL> alter system set log_archive_dest_state_2='defer';
System altered.
SQL> alter system set log_archive_dest_state_2='enable';
System altered.
-- 切歸檔:
SQL> alter system switch logfile;
-- 查看主庫的alert 日志:
Tue Nov 08 10:42:37 2022
ALTER SYSTEM SET log_archive_dest_state_2='defer' SCOPE=BOTH;
Tue Nov 08 10:42:50 2022
ALTER SYSTEM SET log_archive_dest_state_2='enable' SCOPE=BOTH;
Tue Nov 08 10:42:50 2022
Error 1031 received logging on to the standby
PING[ARC2]: Heartbeat failed to connect to standby 'standby1'. Error is 1031.
-- 查看報錯:
SQL> select dest_name,status,error from v$archive_dest where dest_id=1 or dest_id=2;
DEST_NAME STATUS ERROR
-------------------- -------------------- ------------------------------------------------------------
LOG_ARCHIVE_DEST_1 VALID
LOG_ARCHIVE_DEST_2 ERROR ORA-01031: insufficient privileges
報錯:ORA-01031: insufficient privileges
3、查看備庫的同步狀態(tài)
-- 同步時間:
SQL> select value from v$dataguard_stats where NAME='apply lag';
VALUE
--------------------
+00 00:00:00
-- 進程:
SQL> select process,status,client_process,thread#,sequence# from v$managed_standby;
PROCESS STATUS CLIENT_P THREAD# SEQUENCE#
--------- ------------ -------- ---------- ----------
ARCH CLOSING ARCH 1 7133
ARCH CLOSING ARCH 1 7134
ARCH CONNECTED ARCH 0 0
ARCH CLOSING ARCH 1 7132
MRP0 WAIT_FOR_LOG N/A 1 7135
RFS IDLE UNKNOWN 0 0
RFS IDLE UNKNOWN 0 0
RFS IDLE UNKNOWN 0 0
RFS IDLE UNKNOWN 0 0
1、apply lag 的 value : +00 00:00:00
2、MRP0、RFS:進程存在
測試二:
- 數(shù)據(jù)庫版本:Release 11.2.0.4.0
- 主庫修改密碼,不同步密碼文件
-- 修改sys 密碼:
SQL> alter user sys identified by oracle;
User altered.
SQL> alter system set log_archive_dest_state_2='defer';
System altered.
SQL> alter system set log_archive_dest_state_2='enable';
System altered.
-- alert 日志:
ALTER SYSTEM SET log_archive_dest_state_2='defer' SCOPE=BOTH;
ALTER SYSTEM SET log_archive_dest_state_2='enable' SCOPE=BOTH;
Tue Nov 08 15:45:16 2022
Error 1017 received logging on to the standby
------------------------------------------------------------
Check that the primary and standby are using a password file
and remote_login_passwordfile is set to SHARED or EXCLUSIVE,
and that the SYS password is same in the password files.
returning error ORA-16191
------------------------------------------------------------
報錯:ORA-16191: Primary log shipping client not logged on standby
總結(jié)
1、sys主備庫密碼不一致不同版本報錯不一樣:
Oracle 版本:11.2.0.3 報錯為:ORA-01031: insufficient privileges
Oracle 版本:11.2.0.4 報錯為:ORA-16191: Primary log shipping client not logged on standby
2、11G 修改sys 或密碼文件均需要同步至備庫,否則將影響同步,12c以O(shè)racle推出了db passwd asm存儲的特性,RAC TO RAC ADG的情況下,DB的口令文件存儲在ASM中,那么主庫修改的操作,可以同步到DG環(huán)境,避免每次修改都需要人為修改!
3、在密碼不一致的情況下,主庫報錯:ORA-01031或ORA-16191后,備庫v$dataguard_stats視圖:apply lag 的值依然:+00 00:00:00。
進程RFS、MRP0未見異常,可能隨著時間長會有更新變動。但根據(jù)v$dataguard_stats 的apply lag 值做同步時間監(jiān)控,就不是很敏感了。
4、從測試上來看,密碼修改或密碼文件清除,如果不立即啟動重傳歸檔的話,不影響歸檔傳輸。回到我開頭的問題,應(yīng)該是之前修改過sys密碼,沒有同步密碼文件。本身庫數(shù)據(jù)變化就少,歸檔也沒多少,所以等了幾天后觸發(fā)了重傳歸檔,才有了0點才出現(xiàn)報錯的問題。
解決
- 1、ORA-01031、ORA-16191 一般均為密碼不一致導(dǎo)致,同步密碼文件即可解決。
- 2、關(guān)于同步延遲敏感問題,對主庫和備庫的scn號進行對比監(jiān)控,從而提高敏感度。
腳本實現(xiàn)邏輯:standby_time 監(jiān)控
文章推薦
《Oracle_索引重建—優(yōu)化索引碎片》
《Oracle 自動收集統(tǒng)計信息機制》
《Oracle 腳本實現(xiàn)簡單的審計功能》
《oracle 監(jiān)控表空間腳本 每月10號0點至06點不報警》
《DBA_TAB_MODIFICATIONS表的刷新策略測試》
《FY_Recover_Data.dbf》
《Oracle RAC 集群遷移文件操作.pdf》
《Oracle Date 字段索引使用測試.dbf》
《Oracle 診斷案例 :因應(yīng)用死循環(huán)導(dǎo)致的CPU過高》
《Oracle 慢SQL監(jiān)控腳本》
《Oracle 慢SQL監(jiān)控測試及監(jiān)控腳本.pdf》
《記錄一起索引rebuild與收集統(tǒng)計信息的事故》
《RAC DG刪除備庫redo時報ORA-01623》
《ASH報告發(fā)現(xiàn):os thread startup 等待事件分析》
《問答榜上引發(fā)的Oracle并行的探究(一)》
《問答榜上引發(fā)的Oracle并行的探究(二)》
– 安裝系列
文章推薦
《ORACLE_19C_linux安裝.pdf》
《Oracle 19c-手工建庫.pdf》
《19c單庫升級19.11補丁.pdf
19c_rac補丁《19.11-p32841500》.pdf
《oracle_圖形-單實例11.2.0.4升級19.3.pdf
《oracle_11.2.0.3升級11.2.0.4–單實例升級.pdf
《oracle_靜默-單實例 11.2.0.4升級19.3.pdf
《CentOS_6.7系統(tǒng)一步一步 RAC 11.2.0.4升級19.3.pdf
《整理后_RAC_11.2.0.4升級19c.pdf
歡迎贊賞支持或留言指正




