博客
关于我
昨日遇到一个妖精的事情
阅读量:783 次
发布时间:2019-03-25

本文共 1041 字,大约阅读时间需要 3 分钟。

最近在一次ORACLE数据库优化项目中,我们遇到了一个奇怪的错误。集成商的业务一运行,就会报错一个af文件,提示某个partnum的页存在异常。具体的错误信息已经记不太清了,但我们还是尝试拭нциклопед式地解决问题,最终通过重建表接数据的方式找到了解决办法。以下是我们的详细步骤和思考过程。

抗击异常页的过程

在面对这个问题之前,我们已经成功地让数据库运行了几个月,并且通过oncheck -cDI dbname:tabname进行检查。所有检查都没有发现问题,这意味着这个错误可能是由某些特定操作触发的。

经过反复思考和尝试,我们决定采取以下步骤来解决问题:

  • 创建原始表

    我们首先创建了一个原始的表框架,并且没有在这个阶段创建索引。这一步的目的是让表结构简单,避免索引相关的潜在问题。

  • 设置强制删除优先级

    我们知道ORACLE有一个叫做pdqpriority的参数,它可以用来设置表的删除优先级。我们将这个参数设置为90。这样做的原因是要尽可能地让这个表在其他对象被删除之前被删除,这可以帮助避免一些复杂的约束问题。

  • 插入数据

    接下来,我们从源表中复制数据到这个新表中。由于我们没有在插入数据之前创建索引,这一步需要一定的耐心,因为ORACLE会自动对新插入的数据进行检查。

  • 创建索引

    在数据插入完成后,我们开始为表创建索引。这个过程包括创建多个索引,每个索引针对不同的查询条件和约束。这一步必须小心操作,因为索引的创建会影响数据库的性能。

  • 改变表类型

    在索引创建完成后,我们使用alter table XXX type(standard);命令将表类型改为标准类型。这一步的目的是确保表的结构完全正常,没有任何特殊的存储结构。

  • 删除旧表

    为了彻底清除旧表的影响,我们决定直接删除它。通过使用drop table old_xxx;命令,我们彻底地从数据库中移除了旧的数据。

  • 重命名表

    最后,我们对新表进行了重命名,仅仅保留了它的相关数据和结构。通过使用rename table XXX to XXX2;命令,我们给新表起了一个新的名字,以区分它已经更换了。

  • 总结

    通过以上步骤的顺序执行,我们成功地解决了这个异常页的问题。虽然在实际操作中遇到了很多不确定性,但通过耐心地一步步推进,每个环节都进行了充分的测试,最终达到了预期的效果。ORACLE的强大之处在于它提供了丰富的工具来处理各种复杂的问题,只要我们善于利用这些工具,并且仔细实施每一步操作,就能找到最适合的解决方案。

    转载地址:http://ztduk.baihongyu.com/

    你可能感兴趣的文章
    OpenCV与AI深度学习 | 基于PyTorch语义分割实现洪水识别(数据集 + 源码)
    查看>>
    OpenCV与AI深度学习 | 基于YOLOv8的停车对齐检测
    查看>>
    OpenCV与AI深度学习 | 基于机器视觉的磁瓦表面缺陷检测方案
    查看>>
    Opencv中KNN背景分割器
    查看>>
    OpenCV中基于已知相机方向的透视变形
    查看>>
    opencv保存图片路径包含中文乱码解决方案
    查看>>
    opencv图像分割2-GMM
    查看>>
    OpenCV(1)读写图像
    查看>>
    OpenCV:概念、历史、应用场景示例、核心模块、安装配置
    查看>>
    Openlayers图文版实战,vue项目从0到1做基础配置
    查看>>
    Openlayers高级交互(10/20):绘制矩形,截取对应部分的地图并保存
    查看>>
    Openlayers高级交互(16/20):两个多边形的交集、差集、并集处理
    查看>>
    Openlayers高级交互(19/20): 地图上点击某处,列表中显示对应位置
    查看>>
    openlayers:圆孔相机根据卫星经度、纬度、高度、半径比例推算绘制地面的拍摄的区域
    查看>>
    OpenMCU(一):STM32F407 FreeRTOS移植
    查看>>
    OpenMMLab | S4模型详解:应对长序列建模的有效方法
    查看>>
    OpenMMLab | 【全网首发】Llama 3 微调项目实践与教程(XTuner 版)
    查看>>
    OpenMMLab | 面向多样应用需求,书生·浦语2.5开源超轻量、高性能多种参数版本
    查看>>
    OpenPPL PPQ量化(4):计算图的切分和调度 源码剖析
    查看>>
    OpenPPL PPQ量化(5):执行引擎 源码剖析
    查看>>