:

ORA-31538 Change Set Disabled

The Problem

Using CDC on Oracle version 11.2.0.1 and running with Asynchronous Autolog mode for the capture at a separate downstream database. I was trying to activate a previously created subscription when I received the following:

— When activating a subscription

begin
dbms_cdc_subscribe.activate_subscription(
subscription_name => ‘Acturis_Subscrpt’);
end;
/

ERROR at line 1:
ORA-31538: change set disabled
ORA-06512: at “SYS.DBMS_CDC_SUBSCRIBE”, line 37
ORA-06512: at line 2

I checked through the alert log and found:

knlbmEnq: all subscribers are inactive – stop enqueuing

And the trace files showed:

knlcsvStoreErrorMessage: propagation rowid not populated!

The Cause

The subscription had been created prior to the captuer processes and object being set-up properly, which meant that the subscription was referring to a potentially partially created streams set-up.

The Solution

Drop the subscription and re-start the capture. Once you have done this you can then re-create the subscription and it should work without a problem. This will not affect what data is available to you because you have not changed the SCN in the change source and the subscription will show you all of the data available to you once created.

Try not to create the first subscription before the CDC has been set-up completely.

If you are experiencing problems such as the ORA-26663 error message when trying to drop a change set, have a read of my other article. You may also find that the DBMS_CAPTURE_ADM.BUILD command can hang when configuring your CDC environment.

Like it, share it...

Category: Change Data Capture


Related Posts

Leave a Reply

Your email address will not be published. Required fields are marked *