ORA-12545: Connect failed because target host or object does not exist
SQL> select status,error_message,error_date from dba_propagation;
抓取進程
select CAPTURE_NAME,QUEUE_NAME,ERROR_MESSAGE,CAPTURED_SCN,APPLIED_SCN,status from dba_capture; STATUS ---------- ERROR_MESSAGE ---------------------------------------------------------------------- ERROR_DATE ------------------- DISABLED ORA- 25315: unsupported configuration for propagation of buffered messa ges 2013-09-05 07:54:34
一、
begin
dbms_streams_adm.add_schema_propagation_rules(
schema_name => 'qbjmes',
streams_name => 'qbjmes_to_racdb',
source_queue_name => 'strmadmin.qbjmes_queue',
destination_queue_name => 'strmadmin.racdb_queue@racdb',
include_dml => true,
include_ddl => true,
include_tagged_lcr => false,
source_database => 'qbjmes',
inclusion_rule => true
queue_to_queue => true); ------新添加的
end;
/
不報錯了ora 25315
報錯 ora 12545
SQL> select PROPAGATION_NAME,SOURCE_QUEUE_NAME,DESTINATION_QUEUE_NAME,DESTINATION_DBLINK,RULE_SET_NAME,STATUS,ERROR_MESSAGE from dba_propagation;
PROPAGAT SOURCE_Q DESTINATION_QUEUE_NAME
-------- -------- ------------------------------
DESTINATION_DBLINK
--------------------------------------------------------------------------------
RULE_SET_NAME STATUS ERROR_MESSAGE
--------------- ---------- ----------------------------------------------------
QBJMES_T QBJMES_Q MES_QUEUE_QBJ
O_MES UEUE
MES
RULESET$_54 DISABLED ORA-12545: Connect failed because target host or object does not exist
建立傳播進程
Stop the propagation.
Ensure that the source queue is empty.
Ensure that the destination queue is empty and has no unapplied, spilled messages before you drop the propagation.
Re-create the propagation with the queue_to_queue parameter set to TRUE in the creation procedure.
---------------------------------------------------------------------------------------------
Oracle RAC的ORA- 12545 Connect failed because target host or object does not exist問題
aix5.3系統上的oracle 10.2.0.3 RAC,串連資料庫的時候經常報如下錯誤:
| ORA-12545: Connect failed because target host or object does not exist |
這個問題可以通過設定rac資料庫各個節點的local_listener參數來解決,有兩種方式:
方式1 在RAC的每個節點上編輯$ORACLE_HOME/network/admin/tnsnames.ora,增加
local_listener_rac= (ADDRESS_LIST= (ADDRESS=(PROTOCOL=tcp)(HOST=<vip>)(PORT=1521)) ) |
其中 <vip>對應每個節點各自的vip地址;
在rac的任意一個節點上修改資料庫參數,設定local_listener為local_listener_rac
$ sqlplus / as sysdba SQL> alter system set local_listener='local_listener_rac' scope=spfile; |
重新啟動各個節點上的資料庫執行個體
方式2 也可以按照metallink上id為 364855.1的文檔使用如下方法修改
在rac的每個節點上執行如下語句設定local_listener參數
| sql>alter system set LOCAL_LISTENER="(ADDRESS=(PROTOCOL=TCP)(HOST=<VIP_address>)(PORT=1521))" scope=both sid='instance_name'; |
其中 <VIP_address>對應每個節點的vip地址;
instance_name對應當前節點的執行個體名,如rac1、rac2等,即每次只修改當前執行個體的參數