【环境介绍】

系统环境:IBM P740 8205-E6C (AIX) + 11.2.0.3.0 Oracle RAC

【背景介绍】

故障描述:数据库表空间超过90%,无法进行扩容表空间,需要业务侧清理历史数据,在清理期间出现ORA-08104报错,无法再进行清理数据。

反馈报错信息:

从数据库报错看出,有会话执行了重建索引操作或者重建索引操作时回退。

【问题分析】

查看数据库日志信息:发现数据库报错,出现临时表空间不足情况,查看当前表为分区表,大小为180多G,怀疑重建索引时临时表空间不足导致回滚。

查看等待事件信息:没有发现异常等待事件。

查看有会话对这个对象进行索引操作:根据用户帅选,发现ACTIVE状态会话没有对该对象索引操作。

查看是否有大事务回滚情况:查询没有大事务回滚信息。

查看是否僵死进程:根据对象名,定位sqltext,sql_id发现有INACTIVE状态会话有重建索引操作

经过咨询,需求方反馈期间对该对象重建索引操作,但是期间终端终端,之后重新删除分区时报错。

确认可以杀掉该会话,当前status为INACTIVE状态,需要spid定位主机进程杀掉,杀到进行后需要清理索引信息,否则还是会报错。

declare
done boolean;
begin
   done:=dbms_repair.online_index_clean(275314);---OBJECT_ID
end;
/

Drop Partition Failed With ORA-08104: This Index Object Is Being Online Built Or Rebuilt (文档 ID 2358693.1)

【总结】

虽然操纵很简单,但是注意的问题会有很多,准确评估才能使工程的正常完成:

删除数据时,需要备份数据(物理备份,逻辑备份),制定正确清理策略,定期移动或者清理历史数据,防止误操作引起的数据丢失;

对于日志类型监控表,建议使用分区方式存储数据,方便清理历史数据,SQL分区查询性能优化;

对于全局索引建议在表比较小的情况下使用online方式重建索引;

重建索引时注意表大小和临时表空间大小,对于对象较大的情况,建议使用并行方式重建索引;

建议使用脚本删除或者重建索引操作,防止网络引起终端断开导致事务回滚;

建议对表操作后可根据分区进行收集统计信息;

建议对分区表使用local index,全局索引删除分区导致索引失效。

Oracle ORA-08104报错处理方法及注意事项的更多相关文章

  1. Oracle ORA 12541 报错解决过程

    Oracle 导入全库之后使用plsql登陆时报错 版本12C版本2 ORA-12541: TNS: No Listener 再oracle主机本地可以使用sqlplus 登陆,但是使用plsql无法 ...

  2. 一次使用innobackupex重新搭建主从复制报错解决方法及注意事项

    [环境介绍] 系统环境:CentOS release 6.4 (Final) + Server version: 5.7.18-log MySQL Community Server (GPL) + i ...

  3. Oracle Online Patching报错"This is not a RAC setup. OPatch cannot determine the local node name"

    Oracle Online Patching报错"This is not a RAC setup. OPatch cannot determine the local node name&q ...

  4. 安装Oracle 11gR2,报错:[INS-06101] IP address of localhost could not be determined

    安装Oracle 11gR2,报错:[INS-06101] IP address of localhost could not be determined 出现这种错误是因为主机名和/etc/host ...

  5. eclipse创建的maven项目,pom.xml文件报错解决方法

    [错误一:]maven 编译级别过低 [解决办法:] 使用 maven-compiler-plugin 将 maven 编译级别改为 jdk1.6 以上: <!-- java编译插件 --> ...

  6. [转]ORACLE 11G 导出报错(EXP-00003)未找到段 (0,0) 的存储定义

    http://blog.csdn.net/qq_19524879/article/details/51313205 ORACLE 11G 导出报错(EXP-00003)未找到段 (0,0) 的存储定义 ...

  7. MyEclipse Server view报错解决方法

    MyEclipse Server view报错解决方法 方法/步骤     启动MyEclipse,弹出一个框,报错. ---------------------------------------- ...

  8. Oracle Client安装报错

    Oracle Client安装报错:引用数据不可用于验证此操作系统分发的先决条件 http://tunps.com/p/11797.html 原因是Oracle Client 11g版本不支持最新的W ...

  9. Loadrunner参数化逗号报错解决方法

    Loadrunner参数化逗号报错解决方法     介绍Loadrunner参数化时,参数中包含有逗号时出错的解决方法. 在Loadrunner进行参数化时,参数中如果含有逗号,编辑保存后会报错: 此 ...

随机推荐

  1. mssql2008 r2 修改默认端口

    1.点击“开始”-“所有程序”-“Microsoft SQL Server 2008R2”-“配置工具”-“SQL Server配置管理器” 2.在打开的“SQL Server配置管理器”窗口中,在左 ...

  2. Python之python的一些理解

    应用领域: 1. 网络爬虫 2. 大数据分析与挖掘 3. 机器学习 4. web应用 5. 游戏开发 6. 自动化运维 入门学习网站: imooc,廖雪峰,黑马 环境变量 --- 就是告诉电脑,你的程 ...

  3. Java 环境下载设置

    本篇文章出处: http://www.cnblogs.com/xiaofeixiang/p/4085159.html 和 https://www.cnblogs.com/renqiqiang/p/68 ...

  4. Java 8 Stream介绍及使用1

    (原) stream的内容比较多,先简单看一下它的说明: A sequence of elements supporting sequential and parallel aggregate * o ...

  5. SpringBoot整合Redis及Redis工具类撰写

            SpringBoot整合Redis的博客很多,但是很多都不是我想要的结果.因为我只需要整合完成后,可以操作Redis就可以了,并不需要配合缓存相关的注解使用(如@Cacheable). ...

  6. EXCEL记录

    ー.重要快捷键 Ctrl + F → 查找 Ctrl + H → 替换 Ctrl + G → 定位 Ctrl + 1 → 设置单元格格式 Ctrl + Enter → 一并输入多个单元格 Ctrl + ...

  7. python3.4中自定义数组类(即重写数组类)

    '''自定义数组类,实现数组中数字之间的四则运算,内积运算,大小比较,数组元素访问修改及成员测试等功能''' class MyArray: '''保证输入值为数字元素(整型,浮点型,复数)''' de ...

  8. Java Selenium中的几种等待方式

    Selenium自动化性能测试过程中,经常会出现取不到界面元素,主要原因是界面元素的加载与我们访问页面的时机不一致.可能是界面要素过多或者网络较慢,界面一直加载中:为了解决这种问题,selenium提 ...

  9. 暂时禁止Cnario Player开机自动启动的办法

    如果暂时不需要播放器开机后启动Cnario Player, 有两种办法 从Windows启动菜单禁用Cnario Player 在Windows的任务管理器中, 找到启动标签栏, 从里面找到Cnari ...

  10. Linux如何管理目录和文件属性

    概述:在Linux文件系统的安全模型中,为系统中的文件(或目录)赋予了两个属性:访问权限和文件所有者,简称为“权限”和“归属”.其中,访问权限包括读取.写入.可执行三种基本类型,归属包括属主(拥有该文 ...