Oracle11gR2Streams出现ORA-26744:ORA-26767:错误
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Oracle11gR2Streams出现ORA-26744:ORA-26767:错误,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4582字,纯文字阅读大概需要7分钟。
内容图文
在源数据库发现Streams异常,如:查:select * from dba_capture看到异常错误ORA-26744: STREAMS capture process quot;CAPTURE
问题:
在源数据库发现Streams异常,,如:
查:select * from dba_capture看到异常错误
ORA-26744: STREAMS capture process "CAPTURE_STREAM" does not support "BHOMSWAS"."DBMS_TABCOMP_TEMP_UNCMP" because of the following reason:
ORA-26767: No enough redo log information for LogMiner
Oracle metalink的解释:
Streams Capture Aborting With ORA-26767 Due To Temp Tables Created By DBMS_COMPRESSION [ID 1082323.1]
--------------------------------------------------------------------------------
修改时间22-NOV-2010 类型PROBLEM 状态PUBLISHED
In this Document
Symptoms
Changes
Cause
Solution
--------------------------------------------------------------------------------
Applies to:
Oracle Server -EnterpriseEdition - Version:11.2.0.0. to 11.2.0.0 - Release: 11.2 to 11.2
Information in this document applies to any platform.
Symptoms
Streams Capture is aborting with ORA-26767 . The following error message is logged in Capture trace
ORA-26744: STREAMS capture process "
ORA-26767: No enough redo log information for LogMiner
Sometime the table mentioned in above error message is either DBMS_TABCOMP_TEMP_UNCMP OR DBMS_TABCOMP_TEMP_CMP. These tables do not exist on source database.
-Streams Apply can fail with ORA-26714 and ORA-00942
-Streams slows down mining archive logs generated during maintenance window
Additional Explanation:
It appears that the "Automated Maintenance Window" jobs Segment Advisor calls dbms_compression which creates two tables called DBMS_TABCOMP_TEMP_UNCMP and DBMS_TABCOMP_TEMP_CMP in users schema
Changes
Cause
DBMS_COMPRESSION is a new utility introduce in 11GR2 which is used for Compression Advisory.
DBMS_COMPRESSION creates two temporary tables (namely,
DBMS_TABCOMP_TEMP_UNCMP &
DBMS_TABCOMP_TEMP_CMP)
while doing the analyze of the table in the table owner schema. These tables are compared to see what compression level can be achieved.
By default ddl for above mentioned tables has nologging option enabled.
Now if CAPTURE has schema level rule defined, then DDL/DML for these tables will be captured as well.Since ddl for above mentioned table has nologging option enabled., enough redo information for the capture process was not available, and hence CAPTURE failed with ORA-26767 .
Solution
The workaround would be to specify a negative rule for the tables DBMS_TABCOMP_TEMP_UNCMP, and DBMS_TABCOMP_TEMP_CMP.
This will skip the replication of these table.
Please see the below example and make the appropriate changes with respect your environment.
The negative rule condition here eliminates table named 'unwantedtable' in the SCOTT schema.
Use ADD_TABLE_RULES to specify the table. Specify the inclusion_rule => FALSE clause
in the ADD_TABLE_RULES command to place the rule in the negative rule set.
BEGIN
DBMS_STREAMS_ADM.ADD_TABLE_RULES (
table_name => 'scott.unwantedtable',
streams_type => 'capture',
streams_name => 'strm01_capture',
queue_name => 'strmadmin.streams_queue',
include_dml => true,
include_ddl => true,
source_database => 'SOURCE.ORACLE.COM',
inclusion_rule => false ); --specifies the negative rule set
END;
/
解决:
1、在源数据库用streams的strmadmin用户把caputer进程停止
SQL> begin
dbms_capture_adm.stop_capture(
capture_name => 'capture_stream');
end;
/
2、建立3个限制不传输表的规则
SQL> BEGIN
DBMS_STREAMS_ADM.ADD_TABLE_RULES (
table_name =>'bhomswas.DBMS_TABCOMP_TEMP_UNCMP',
streams_type=>'capture',
streams_name=>'capture_stream',
queue_name=>'strmadmin.SOURCE_QUEUE',
include_dml=>true,
include_ddl=>true,
source_database=>'CBOMS',
inclusion_rule=>false);
END;
/
PL/SQL procedure successfully completed.
SQL> BEGIN
DBMS_STREAMS_ADM.ADD_TABLE_RULES (
table_name =>'bhomswas.DBMS_COMPRESSION',
streams_type=>'capture',
streams_name=>'capture_stream',
queue_name=>'strmadmin.SOURCE_QUEUE',
include_dml=>true,
include_ddl=>true,
source_database=>'CBOMS',
inclusion_rule=>false);
END;
/
PL/SQL procedure successfully completed.
SQL> BEGIN
DBMS_STREAMS_ADM.ADD_TABLE_RULES (
table_name =>'bhomswas.DBMS_TABCOMP_TEMP_CMP',
streams_type=>'capture',
streams_name=>'capture_stream',
queue_name=>'strmadmin.SOURCE_QUEUE',
include_dml=>true,
include_ddl=>true,
source_database=>'CBOMS',
inclusion_rule=>false);
END;
/
PL/SQL procedure successfully completed.
3、启动caputer进程
SQL> begin
dbms_capture_adm.start_capture(
capture_name => 'capture_stream');
end;
/
PL/SQL procedure successfully completed.
解决上面问题
内容总结
以上是互联网集市为您收集整理的Oracle11gR2Streams出现ORA-26744:ORA-26767:错误全部内容,希望文章能够帮你解决Oracle11gR2Streams出现ORA-26744:ORA-26767:错误所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。