Oracle 11g R2 Streams ORA-26744: ORA-26767: Error

Source: Internet
Author: User

Problem:

A Streams exception is found in the source database, for example:

Check: select * from dba_capture. An error is returned.

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 explanation:

Streams Capture Aborting With ORA-26767 Due To Temp Tables Created By DBMS_COMPRESSION [ID 1082323.1]

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

Modification time 22-nov-2010 type PROBLEM status PUBLISHED

 

In this Document

Symptoms

Changes

Cause

Solution

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

Applies:

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 "<capture name>" does not support "<schema>". "DBMS_TABCOMP_TEMP_UNCMP" because of the following reason:

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 CILS 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 wocould 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 specified sion_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 ',

Required sion_rule => false); -- specifies the negative rule set

END;

/

 

Solution:

1. The strmadmin user of streams stops the caputer process in the source database.

SQL> begin

Dbms_capture_adm.stop_capture (

Capture_name => 'capture _ stream ');

End;

/

 

2. Create three rules with no table Transfer Restrictions

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. Start the caputer Process

SQL> begin

Dbms_capture_adm.start_capture (

Capture_name => 'capture _ stream ');

End;

/

PL/SQL procedure successfully completed.

Solve the problem above

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.