ORA-31522: could not find Streams object string for CDC change set string
Cause: An underlying Streams capture, apply, or queue was missing for an imported Change Data Capture change set.
Action: Drop the imported change set because it is invalid. Retry the import, ensuring that STREAMS_CONFIGURATION=y is specified.
。
错误ORA-31522表明在进行CDC(Change Data Capture)操作时,无法找到对应的Streams对象。
官方解释
ORA-31522: 无法为CDC更改集”(string)”找到Streams对象
常见案例
1、当开启CDC时,如果CDC参数设置不正确,会出现ORA-31522的错误。
2、如果某些表的CDC状态被禁用,会出现ORA-31522的错误。
正常处理方法及步骤
1、检查CDC参数是否设置正确,正式点击“DATAPUMP_OPTIONS_job”的status来查看CDC设置的正确性。
2、确保更新表的CDC已经开启,可使用“SELECT ENABLED FROM dba_change_tables WHERE table_name'’;”查看,如果值是N,则表明CDC被禁用,需要在“dba_change_tables”表中更改状态为Y。
a)重建CDC source:exec dbms_cdc_subscribe.regenerate_source (source_name=>'XYZ’);
b)重建CDC apply 对象:exec dbms_cdc_subscribe.generate_apply (source_name=>'XYZ’);
4、最后,可以通过再次执行相关DDL操作来检查是否解决ORA-31522的问题。