首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法删除Oracle闪回数据归档

无法删除Oracle闪回数据归档
EN

Stack Overflow用户
提问于 2020-05-12 14:36:08
回答 1查看 304关注 0票数 3

想要在闪回数据归档上做一个干净的测试,所以必须删除现有的。

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

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

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

我尝试了alter flashback数据归档清除,但仍然无法删除TS

代码语言:javascript
复制
alter flashback archive fla1 purge all;

然后我尝试更改FDA,看看是否可以解除链接-- alter flashback archive fla1 remove tablespace tbs2;我得到错误消息"ORA-55626: Cannot remove the Flashback Archive's primary tablespace“。

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

EN

回答 1

Stack Overflow用户

发布于 2020-09-01 07:09:48

我遇到过类似的情况;在我的例子中,我一直在使用Flashback Data Archive (也称为FBA、FBDA、FDA)时遇到一些查询问题,可能是由于物化视图。因此,为了解决这个问题,我使用DBMS_FLASHBACK_ARCHIVE.DISASSOCIATE_FBA(owner_name, table_name)解除了这些表与FBDA的关联,它解决了性能问题,但当然,这些表不再被跟踪。

现在,我已经放弃了该实例的FBA,并且在清理时,我遇到了相同的ORA-55641和ORA-55626。

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

代码语言:javascript
复制
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;

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61745317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档