oracle rac dg庫報錯ORA-01031: insufficient privileges

賀子_DBA時代發表於2023-10-21

一、問題現象:

今天由於要開審計,把主庫的rac節點重啟了下,然後rac的其中一個節點傳輸給dg庫的程式報錯ORA-01031: insufficient privileges,具體如下所示:

rac1報錯:

SQL> select status ,error from v$archive_dest where dest_id=3;

STATUS ERROR

-----------------------------------------------------------------------

ERROR ORA-01031: insufficient privileges

錯誤日誌:

Error 1031 received logging on to the standby

PING[ARC1]: Heartbeat failed to connect to standby 'hxedg'. Error is 1031.

rac2正常:

SQL> select status ,error from v$archive_dest where dest_id=3;

STATUS ERROR

------------------------------------------

ERROR

二、問題原因排查:

嘗試把報錯的主庫節點的口令檔案傳輸到dg庫,然後把主庫重啟下歸檔引數

alter system set log_archive_dest_state_3=defer;

alter system set log_archive_dest_state_3=enable;

如果發現之前好的節點,開始報同樣錯了,那麼基本上可以判斷出是因為rac的兩個節點的口令檔案不一致導致的!rac兩個節點的口令檔案不一樣,最大可能就是修該sys這類的密碼沒只在一個節點執行了

三、解決辦法:

方法1:rac兩個節點的口令檔案不一樣,最大可能就是修該sys這類的密碼沒只在一個節點執行了!

把rac2(主從正常的節點)的口令檔案傳輸到其他rac節點,同時傳輸給dg庫,基本上可以解決問題;

scp orapwHRAPP2 oracle@節點B:/home/oracle

scp orapwHRAPP2 oracle@節點dg:/home/oracle

然後等一會沒有自動恢復,那就嘗試在報錯的主庫執行如下:

alter system set log_archive_dest_state_3=defer;

alter system set log_archive_dest_state_3=enable;

如果還是沒解決,

那麼使用方法2:

1、隨便找一個節點A執行修改密碼命令:

alter user sys identified by "D0TszIoPbQxlIV0.";

3、把節點A上的口令檔案 依次傳輸給 另一個節點B,以及dg庫

scp orapwHRAPP2 oracle@節點B:/home/oracle

scp orapwHRAPP2 oracle@節點dg:/home/oracle

四、 sys(sysdba使用者組成員)使用者有兩種認證方式:

1、作業系統認證方式 在本地伺服器(資料庫所在伺服器)登入資料庫

oracle將使用者認證由作業系統在資料庫外執行,預設情況下只需要以oracle賬戶登入作業系統便可以直接連線資料庫,不需要口令。

如果需要口令認證,需要在$ORACLE_HOME/dbs/sqlnet.ora,加入如下行:

SQLNET.AUTHENTICATION_SERVICES=NONE

此時連線資料庫就需要輸入使用者和密碼了

2、資料庫認證方式 透過在資料庫配置檔案裡(spfile)裡配置REMOTE_LOGIN_PASSWORDFILE指定遠端登入訪問資料庫的方式

a、none

Oracle ignores any password file. Therefore, privileged users must be authenticated by the operating system

不允許sysdba使用者組成員遠端登入訪問資料庫

b、exclusive

The password file can be used by only one database. The password file can contain SYS as well as non-SYS users.

只允許口令檔案用於本資料庫,允許sysdba使用者組成員遠端登入訪問資料庫

c、shared

One or more databases can use the password file. The password file can contain SYS as well as non-SYS users.

允許其他資料庫使用該口令檔案,允許sysdba使用者組成員遠端登入訪問資料庫

五、主庫為Oracle rac ,主庫修改sys賬號密碼注意事項:

sys遠端登入需要以sysdba的角色登入,並且需要藉助口令檔案!但是Oracle rac alter修改sys密碼的時候只會修改當前節點的口令檔案!所以如果你需要修改sys這類的賬號,就需要在rac的所有節點都執行,否則沒執行的節點 ,sys無法遠端登入!

rac修改sys密碼方法1:需要在rac兩個節點都要執行: alter user sys , 因為修改sys的賬號的時候會自動修改本節點口令檔案!,這樣sys照樣可以遠端登入所有節點!

rac修改sys密碼方法2:一個節點執行alter user sys,然後scp口令檔案到另一個節點!

總結:

RAC環境下對於SYSDBA許可權密碼更改注意事項:

對於RAC環境,修改擁有SYSDBA許可權的使用者密碼的時候,應該在每個例項上都執行,否則會造成密碼檔案的不一致。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29654823/viewspace-2990258/,如需轉載,請註明出處,否則將追究法律責任。

相關文章