ORA-08189: 因为未启用行移动功能, 不能闪回表问题

2024-06-01 01:44

本文主要是介绍ORA-08189: 因为未启用行移动功能, 不能闪回表问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在执行闪回恢复误删数据出现“ORA-08189: 因为未启用行移动功能, 不能闪回表”的错误提示。

ORA-08189 错误表示你尝试对一个表执行闪回操作,但该表没有启用行移动(ROW MOVEMENT)功能。行移动是Oracle中的一个特性,它允许表中的行在物理位置上被移动,这对于某些操作(如闪回表)是必要的。

要解决这个问题,需要在表上启用行移动功能。这可以通过以下步骤来完成:

  1. 登录到Oracle数据库
    使用具有足够权限的用户(如SYSDBA)登录到Oracle数据库。

  2. 启用行移动
    使用ALTER TABLE语句为表启用行移动。例如,如果你的表名为MY_TABLE,你可以执行以下SQL命令:

ALTER TABLE alter_test ENABLE ROW MOVEMENT;

再次尝试闪回表
在启用行移动后,再次尝试执行闪回表操作:

FLASHBACK TABLE alter_test TO TIMESTAMP (TIMESTAMP '2024-05-30 22:58:00');

执行成功。

如果你知道SCN(系统更改号):

FLASHBACK TABLE 表名 TO SCN <SCN_NUMBER>;

(可选)禁用行移动:
如果之后你不再需要行移动功能,可以将其禁用。但请注意,禁用行移动可能会影响某些操作(如未来的闪回表操作)。禁用行移动的命令如下:

ALTER TABLE 表名 DISABLE ROW MOVEMENT;


但通常,在大多数生产环境中,建议保持行移动功能启用,以便在需要时能够执行闪回操作。
注意事项:
* 在启用或禁用行移动时,确保没有其他用户或进程正在对该表进行写操作,因为这可能会导致不一致或错误。
* 始终在执行此类操作之前备份你的数据,以防万一出现问题。
* 确保你了解闪回操作对表的影响,特别是当表中包含外键约束或触发器时。在某些情况下,闪回操作可能会失败或导致不一致的数据状态。
 

也可以查询修改数据之前时间 该 表数据是否正常,如果正常 采用该时间戳 进行下一步的 闪回数据:


select * from alter_testas of timestamp to_timestamp('2024-05-30 22:59:12','yyyy-mm-dd hh24:mi:ss') where C1='123';select * from 表名as of timestamp to_timestamp('2024-05-30 22:59:12','yyyy-mm-dd hh24:mi:ss') where 表里某个字段='值'

也可以查询上一步 正确数据 对应的 SCN 号 然后进行闪回数据

SELECT timestamp_to_scn(to_timestamp('2024-05-30 22:59:12','yyyy-mm-dd hh24:mi:ss')) SCNFROM alter_test as of timestamp to_timestamp('2024-05-30 22:59:12','yyyy-mm-dd hh24:mi:ss');SELECT timestamp_to_scn(to_timestamp('2024-05-30 22:59:12','yyyy-mm-dd hh24:mi:ss')) SCNFROM 表名 as of timestamp to_timestamp('2024-05-30 22:59:12','yyyy-mm-dd hh24:mi:ss')

然后通过SCN(系统更改号)闪回:

FLASHBACK TABLE alter_test TO SCN 6503632;FLASHBACK TABLE 表名 TO SCN <SCN_NUMBER>;

如果ROW_MOVEMENT被启用,对表进行UPDATE或DELETE操作时需要额外的资源消耗。因为每次操作发生时,Oracle需要找到并移动受影响的行,以保证行在表中的真实位置与存储中的位置一致。这就意味着启用ROW_MOVEMENT可能会导致性能下降,特别是对于大型的数据表。禁用行移动指令:

ALTER TABLE 表名 DISABLE ROW MOVEMENT;

如果ROW_MOVEMENT被禁用,对表进行UPDATE或DELETE操作时不需要移动受影响的行。相反,Oracle将插入新的行并标记旧行为删除。这将导致表中存在大量已删除但未被清理的行,从而浪费存储空间。

这篇关于ORA-08189: 因为未启用行移动功能, 不能闪回表问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1019638

相关文章

好题——hdu2522(小数问题:求1/n的第一个循环节)

好喜欢这题,第一次做小数问题,一开始真心没思路,然后参考了网上的一些资料。 知识点***********************************无限不循环小数即无理数,不能写作两整数之比*****************************(一开始没想到,小学没学好) 此题1/n肯定是一个有限循环小数,了解这些后就能做此题了。 按照除法的机制,用一个函数表示出来就可以了,代码如下

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

C++11第三弹:lambda表达式 | 新的类功能 | 模板的可变参数

🌈个人主页: 南桥几晴秋 🌈C++专栏: 南桥谈C++ 🌈C语言专栏: C语言学习系列 🌈Linux学习专栏: 南桥谈Linux 🌈数据结构学习专栏: 数据结构杂谈 🌈数据库学习专栏: 南桥谈MySQL 🌈Qt学习专栏: 南桥谈Qt 🌈菜鸡代码练习: 练习随想记录 🌈git学习: 南桥谈Git 🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈🌈�

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

购买磨轮平衡机时应该注意什么问题和技巧

在购买磨轮平衡机时,您应该注意以下几个关键点: 平衡精度 平衡精度是衡量平衡机性能的核心指标,直接影响到不平衡量的检测与校准的准确性,从而决定磨轮的振动和噪声水平。高精度的平衡机能显著减少振动和噪声,提高磨削加工的精度。 转速范围 宽广的转速范围意味着平衡机能够处理更多种类的磨轮,适应不同的工作条件和规格要求。 振动监测能力 振动监测能力是评估平衡机性能的重要因素。通过传感器实时监

缓存雪崩问题

缓存雪崩是缓存中大量key失效后当高并发到来时导致大量请求到数据库,瞬间耗尽数据库资源,导致数据库无法使用。 解决方案: 1、使用锁进行控制 2、对同一类型信息的key设置不同的过期时间 3、缓存预热 1. 什么是缓存雪崩 缓存雪崩是指在短时间内,大量缓存数据同时失效,导致所有请求直接涌向数据库,瞬间增加数据库的负载压力,可能导致数据库性能下降甚至崩溃。这种情况往往发生在缓存中大量 k

6.1.数据结构-c/c++堆详解下篇(堆排序,TopK问题)

上篇:6.1.数据结构-c/c++模拟实现堆上篇(向下,上调整算法,建堆,增删数据)-CSDN博客 本章重点 1.使用堆来完成堆排序 2.使用堆解决TopK问题 目录 一.堆排序 1.1 思路 1.2 代码 1.3 简单测试 二.TopK问题 2.1 思路(求最小): 2.2 C语言代码(手写堆) 2.3 C++代码(使用优先级队列 priority_queue)

Spring框架5 - 容器的扩展功能 (ApplicationContext)

private static ApplicationContext applicationContext;static {applicationContext = new ClassPathXmlApplicationContext("bean.xml");} BeanFactory的功能扩展类ApplicationContext进行深度的分析。ApplicationConext与 BeanF

JavaFX应用更新检测功能(在线自动更新方案)

JavaFX开发的桌面应用属于C端,一般来说需要版本检测和自动更新功能,这里记录一下一种版本检测和自动更新的方法。 1. 整体方案 JavaFX.应用版本检测、自动更新主要涉及一下步骤: 读取本地应用版本拉取远程版本并比较两个版本如果需要升级,那么拉取更新历史弹出升级控制窗口用户选择升级时,拉取升级包解压,重启应用用户选择忽略时,本地版本标志为忽略版本用户选择取消时,隐藏升级控制窗口 2.

我在移动打工的日志

客户:给我搞一下录音 我:不会。不在服务范围。 客户:是不想吧 我:笑嘻嘻(气笑) 客户:小姑娘明明会,却欺负老人 我:笑嘻嘻 客户:那我交话费 我:手机号 客户:给我搞录音 我:不会。不懂。没搞过。 客户:那我交话费 我:手机号。这是电信的啊!!我这是中国移动!! 客户:我不管,我要充话费,充话费是你们的 我:可是这是移动!!中国移动!! 客户:我这是手机号 我:那又如何,这是移动!你是电信!!