Investigate compatibility with DBMS_REDEFINITION
- Dominant language
- HTML
- Stars
- 6
- Forks
- 8
- Avg merge
- 2d 19h
- Merged PRs (30d)
- 1
Description
The `DBMS_REDEFINITION` PL/SQL package is used by DBAs to reorganize tables on disk for performance. It does so by creating a temporary table, copying data from the base table while keeping it synchronized with current actions on the base table, and ultimately replacing the base table with the redefined one.
The key concern is the final table replacement, since the interim table's object identity is retained, meaning that a table would randomly move from being OBJECT_ID 12345 to 24567. For `redo_log_catalog` and `online_catalog` mining strategies, this is not an issue since object identity isn't used; however, for `hybrid`, this could be a concern.
The key question is how DBMS_REDEFINITION renames the table; does it use `ALTER TABLE RENAME TO ` or does it use some other internal or undocumented way to rename the table?
If it uses DDL statements, we already handle this scenario; however, if it uses another approach (including a currently unsupported DDL syntax), the table object identity would be out of sync, which would be problematic.
We should investigate how the use of DBSM_REDEFINITION affects captured tables.
See [#community-oracle > Debezium Oracle interaction with DBMS_REDEFINITION](https://debezium.zulipchat.com/#narrow/channel/348250-community-oracle/topic/Debezium.20Oracle.20.20interaction.20.20with.20DBMS_REDEFINITION/with/572142449)
Contributor guide
Assessment
This issue has not been assessed yet.