ORACLE 11G DG遇到的錯誤:ORA-01031,ORA-16191
數據庫版本: 11.2.0.3
DG搭建好后,發現ARCHIVED LOG 傳遞不過來。
剛開始的錯誤如下:
SQL> select dest_name,status,error,target,process from v$archive_dest where substr(dest_name,-1) in (1,2);
DEST_NAME STATUS ERROR TARGET PROCESS
------------------------------ --------- -------------------- ------- ----------
LOG_ARCHIVE_DEST_1 VALID PRIMARY ARCH
LOG_ARCHIVE_DEST_2 ERROR ORA-01031: STANDBY LGWR
insufficient
privileges
LOG_ARCHIVE_DEST_11 INACTIVE PRIMARY ARCH
各自重建密碼文件后報錯如下:
SQL> select dest_name,status,error,target,process from v$archive_dest where substr(dest_name,-1) in (1,2);
DEST_NAME STATUS ERROR TARGET PROCESS
------------------------------ --------- -------------------- ------- ----------
LOG_ARCHIVE_DEST_1 VALID PRIMARY ARCH
LOG_ARCHIVE_DEST_2 ERROR ORA-16191: Primary STANDBY LGWR
log shipping client
not logged on
standby
LOG_ARCHIVE_DEST_11 INACTIVE PRIMARY ARCH
------------------------------------------------------------
METALINK上的文檔ID 462219.1 DATA GUARD LOG SHIPPING FAILS WITH ERROR ORA-16191 IN 11G
這是由於11G在密碼文件中啟用了強密碼認證方式,這特性要求主庫和備庫的密碼要求完全一致。
解決辦法
1) 關閉強密碼認證。
在主庫和備庫上都去執行:
ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON=FALSE SCOPE=BOTH;
在主庫和備庫上創建相同密碼的密碼文件:
orapwd file= entries= force= ignorecase= nosysdba=
2) 拷貝主庫的密碼文件到備庫上,更改文件名。
主庫:
scp orapworadg oradg2:/oracle/product/11.2.0/dbhome_1/dbs/
備庫:
mv orapworadg orapworadg2
這里使用第二種方法得以解決。