Taking up the TEST_FBDA_PARTITIONED table, let's look at a couple of Partition Maintenance operations.
Let's try a TRUNCATE PARTITION
So, that's supported.
Let's try a SPLIT PARTTIION
So, a SPLIT PARTITION fails. We need to DISASSOCIATE the Flashback Archive.
While a Table is disassociated with it's Flashback Archive, DDL that would not normally be permitted may be done under strict control to ensure that there is no data divergence.
.
.
.
SQL> select partition_name, high_value, num_rows 2 from user_tab_partitions 3 where table_name = 'TEST_FBDA_PARTITIONED' 4 order by partition_position 5 / PARTITION_NAME HIGH_VALUE NUM_ROWS ---------------- ------------------------- ---------- P_100 101 100 P_200 201 100 P_300 301 100 P_400 401 100 P_MAX MAXVALUE 301 SQL>
Let's try a TRUNCATE PARTITION
SQL> alter table test_fbda_partitioned truncate partition p_100; Table truncated. SQL>
So, that's supported.
Let's try a SPLIT PARTTIION
SQL> alter table test_fbda_partitioned 2 split partition p_max at (501) 3 into (partition p_500, partition p_max) 4 / alter table test_fbda_partitioned * ERROR at line 1: ORA-55610: Invalid DDL statement on history-tracked table SQL>
So, a SPLIT PARTITION fails. We need to DISASSOCIATE the Flashback Archive.
SQL> execute dbms_flashback_archive.disassociate_fba('HEMANT','TEST_FBDA_PARTITIONED');
PL/SQL procedure successfully completed.
SQL> select table_name, flashback_archive_name, archive_table_name, status
2 from user_flashback_archive_tables
3 where table_name = 'TEST_FBDA_PARTITIONED'
4 /
TABLE_NAME
--------------------------------------------------------------------------------
FLASHBACK_ARCHIVE_NAME
--------------------------------------------------------------------------------
ARCHIVE_TABLE_NAME STATUS
----------------------------------------------------- -------------
TEST_FBDA_PARTITIONED
FBDA
SYS_FBA_HIST_93342 DISASSOCIATED
SQL>
SQL> alter table test_fbda_partitioned
2 split partition p_max at (501)
3 into (partition p_500, partition p_max)
4 /
Table altered.
SQL> execute dbms_flashback_archive.reassociate_fba('HEMANT','TEST_FBDA_PARTITIONED');
PL/SQL procedure successfully completed.
SQL>
SQL> select table_name, flashback_archive_name, archive_table_name, status
2 from user_flashback_archive_tables
3 where table_name = 'TEST_FBDA_PARTITIONED'
4 /
TABLE_NAME
--------------------------------------------------------------------------------
FLASHBACK_ARCHIVE_NAME
--------------------------------------------------------------------------------
ARCHIVE_TABLE_NAME STATUS
----------------------------------------------------- -------------
TEST_FBDA_PARTITIONED
FBDA
SYS_FBA_HIST_93342 ENABLED
SQL>
While a Table is disassociated with it's Flashback Archive, DDL that would not normally be permitted may be done under strict control to ensure that there is no data divergence.
.
.
.
No comments:
Post a Comment