3

想要对 Flashback Data Archive 进行干净测试,因此必须删除现有的。

我在所有启用的表上禁用了 FDA 并删除了 FDA。

但我仍然看到 DBA_FLASHBACK_ARCHIVE 和 DBA_FLASHBACK_ARCHIVE_TS 中的记录

如果我尝试删除表空间,我会得到“ora-55641 无法删除闪回数据存档使用的表空间”。当我放弃 FDA 时,它成功并且没有错误。

我尝试了alter flashback data archive purge,但仍然无法删除TS

alter flashback archive fla1 purge all;

然后我尝试更改 FDA 并查看是否可以断开链接 - 更改闪回存档 fla1 删除表空间 tbs2;我收到错误“ORA-55626:无法删除闪回存档的主表空间”

我能知道是否需要清理任何内部表吗?

4

1 回答 1

1

我也有类似的情况;就我而言,我在闪回数据存档(也称为 FBA、FBDA、FDA)方面遇到了一些问题,可能是由于物化视图。所以为了解决这个问题,我从 FBDA 中取消了这些表的关联,使用DBMS_FLASHBACK_ARCHIVE.DISASSOCIATE_FBA(owner_name, table_name)它解决了性能问题,但当然这些表不再被跟踪。

现在,我暂时放弃了该实例上的 FBA,在清理时,我在尝试清理时遇到了相同的 ORA-55641 和 ORA-55626。

我最终做的是将表重新关联到闪回数据存档,并且(不确定是否需要这样做,但是......)我清除了所有记录:

alter flashback archive ARCH_FLASHBACK_10_YEAR purge all;

-- Identify tables tied to the flashback archive; mine was named ARCH_FLASHBACK_10_YEAR 
select owner_name, table_name, FLASHBACK_ARCHIVE_NAME, 
    ARCHIVE_TABLE_NAME, status from DBA_FLASHBACK_ARCHIVE_TABLES;

-- look for ones with a STATUS of "DISASSOCIATED" and do the next two 
-- statements for those tables

exec DBMS_FLASHBACK_ARCHIVE.REASSOCIATE_FBA ('YOUR_OWNER', 'YOUR_TABLE')
alter table YOUR_OWNER.YOUR_TABLE no flashback archive;

-- Then query again.  When clean:

alter flashback archive ARCH_FLASHBACK_10_YEAR remove  tablespace ARCH_HIST;
drop  flashback archive ARCH_FLASHBACK_10_YEAR;

-- And if ARCH_HIST has no other data:
drop tablespace ARCH_HIST including contents and datafiles;

在完成这些步骤之后,我能够删除闪回存档,并删除与该闪回存档关联的表空间。

于 2020-08-31T23:09:47.840 回答