天天看點

【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;

資料庫已更改。

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

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