当前位置: 首页 > news >正文

ORA-01555 ORA-22924 快照过旧问题处理

ORA-01555 ORA-22924 快照过旧问题处理

问题描述

使用数据泵导出数据,或在业务功能查询某个表时,可能出现 ORA-01555 ORA-22924 快照过旧的错误:

ORA-01555: snapshot too old: rollback segment number with name "" too small
ORA-22924: snapshot too old

解决办法

1.创建表存放查询出有问题的rowid

create table corrupted_lob_data (corrupted_rowid rowid, err_num number);

2.收集有问题字段中存在问题值的rowid

在plsql工具里执行以下sql,并替换以下3个变量:

lob_column 表的字段名(一般扫描blob、clob字段)
table_owner 表的所有者
table_with_lob 表名

declare  error_1578 exception;error_1555 exception;error_22922 exception;error_22924 exception;pragma exception_init(error_1578,-1578);pragma exception_init(error_1555,-1555);pragma exception_init(error_22922,-22922);pragma exception_init(error_22924,-22924);num number;  
begin  for cursor_lob in (select rowid r, &lob_column from &table_owner.&table_with_lob) loop  begin  num := dbms_lob.instr (cursor_lob.&lob_column, hextoraw ('889911')) ;  exception  when error_1578 then  insert into corrupted_lob_data values (cursor_lob.r,1578);  commit;  when error_1555 then  insert into corrupted_lob_data values (cursor_lob.r,1555);  commit;when error_22922 then  insert into corrupted_lob_data values (cursor_lob.r,22922);  commit;when error_22924 then  insert into corrupted_lob_data values (cursor_lob.r,22924);  commit;end;  end loop;  
end;  
/  

3.查看是否有数据损坏:

select * from corrupted_lob_data;

4.通过查询出的rowid查看存在问题的记录:

select * from 有LOB段损坏的表名 where rowid in (select corrupted_rowid from corrupted_lob_data);

5.对问题数据进行删除或置空
注:清理前需要与业务部门确认影响,二进制数据一般是很难被修复的。

--如果更新的表的字段类型为CLOB,则用以下脚本修复:
update 表名 set LOB字段名=empty_clob() where rowid in (select corrupted_rowid from corrupted_lob_data);
--如果更新的表的字段类型为BLOB,则用以下脚本修复:
update 表名 set LOB字段名=empty_blob() where rowid in (select corrupted_rowid from corrupted_lob_data);
commit;
http://www.lryc.cn/news/67194.html

相关文章:

  • Win11系统更新后网络速度变的很慢怎么办?
  • 了解 XML结构(一)
  • Vue简单语法记录
  • matplotlib的安装和使用教程:中文字体及语言参数设置
  • mysql深分页
  • 【JavaScript由浅入深】常用的正则表达式
  • QT常用类型字节数组QByteArray及其基本使用
  • APP 兼容性测试是什么?8年测试老鸟告诉你
  • Golang每日一练(leetDay0061) 表列序号、阶乘后的零
  • 深度解析C++异常处理机制:最佳实践、性能分析和挑战
  • 【Spring事务】Spring事务事件控制,解决业务异步操作
  • Java 中的注释有哪些?
  • yolov4
  • 金融学第二版笔记第一章1.1
  • [架构之路-193]-《软考-系统分析师》-2-应用数学 - 项目周期与关键路径(PERT图、甘特图、单代号网络图、双代号网络图)
  • 滋灌中小企业,分销伙伴和华为来做“送水人”
  • 面试华为测试岗,收到offer后我却毫不犹豫拒绝了....
  • 深入了解浮点型变量输入与输出
  • Vector - CAPL - CANoe硬件配置函数 - 03
  • 单开网页应用利器 - BroadcastChannel
  • OpenCv更改颜色空间以及图像阈值
  • (邱维声)高等代数课程笔记:基,维数与坐标
  • Spring Security + Jwt 集成实现登录
  • yolov5 用自己的数据集进行训练
  • 1951-2023最新中国基础地理信息,包括水系、行政区、DEM高程、气象站经纬位置、土地利用,这些数据获取方法介绍
  • CAD处理控件Aspose.CAD功能演示:在 C#中以编程方式搜索 DWG 图形文件中的文本
  • 实验二十、压控电压源二阶 LPF 幅频特性的研究
  • 类和对象【C++】【中篇】
  • 2.SpringBoot运维实用篇
  • 【c++】浅讲引用