debezium / debezium/dbz

Investigate compatibility with DBMS_REDEFINITION

Open
#1,588 1 comment 0 reactions 1 assignee Claimed by @Naros View on GitHub
component/oracle-connector type/task
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.