天天看點

【DATAGUARD 學習】學習DATAGUARD 過程中遇到的問題

錯誤1:

ora-16057: dgid from server not in data guard configuration

原因:主庫沒有設定參數log_archive_config

解決方法*.log_archive_config='dg_config=(orcl,testdg)'

alter system set log_archive_config='dg_config=(orcl,testdg)' scope=both;

錯誤2:

error 1031 received logging on to the standby

errors in file f:\orcl\diag\rdbms\orcl\orcl\trace\orcl_arc3_736.trc:

ora-01031: insufficient privileges

ping[arc3]: heartbeat failed to connect to standby 'testdg'. error is 1031.

解決問題思路:

1、檢查sys密碼是否正确,大部分是這個原因。

一般建議使用主庫的密碼檔案修改為pwdstanddy_name.ora 當做備庫的密碼檔案。

在linux 下 使用 ls -l 密碼檢視備庫的使用者是否有密碼檔案的讀寫權限!

2、oracle使用者有寫standby_archive_dest的權限,11g 已經将這個參數廢棄了!

錯誤3:

ora-16025: parameter log_archive_dest_2 contains repeated or conflicting attributes

*.log_archive_dest_2='service =orcl lgwr async valid_for=(online_logfiles,primary_role) db_unique_name=orcl'

*.log_archive_dest_2='service=orcl lgwr async valid_for=(online_logfiles,primary_role) db_unique_name=orcl'

出現該錯誤的原因是這個語句中某兩個單詞之間缺少空格,或者是拼寫錯誤。我的錯誤是:

service=orcl與service =orcl之間的差別,即後者service 與=之間多了一個空格!

還有的是log_archive_dest_2='service=orcl lgwr async valid_for=(online_logfiles,primary_role) db_unique_name=orcl'

db_unique_name前少了一個空格導緻的。

錯誤4

ora-16136: managed standby recovery not active

cause: an attempt was made to cancel a managed recovery session but no managed recovery session was active.

action: no action is necessary.

cause解釋在試圖取消恢複會話的時候出錯,原因是沒有活躍的恢複會話。

testdg>alter database recover managed standby database cancel;

alter database recover managed standby database cancel

*

第 1 行出現錯誤:

ora-16136: 受管備用恢複未激活

打開另一個會話session 2 ,在這個會話上執行

c:\documents and settings\administrator>set oracle_sid=testdg

c:\documents and settings\administrator>sqlplus "/as sysdba"

sql*plus: release 11.1.0.6.0 - production on 星期一 9月 20 18:35:51 2010

copyright (c) 1982, 2007, oracle.  all rights reserved.

連接配接到:

oracle database 11g enterprise edition release 11.1.0.6.0 - production

with the partitioning, olap, data mining and real application testing options

sql> select db_unique_name from v$database;

db_unique_name

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

testdg

sql> alter database recover managed standby database cancel;

資料庫已更改。

此時 備庫已經停止應用歸檔日志了!

然後在出現問題的會話上執行所需要的操作.