数据库宕机了-搞不好得打包滚蛋

这篇具有很好参考价值的文章主要介绍了数据库宕机了-搞不好得打包滚蛋。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

项目背景:oracle11G,一个礼拜前做了数据库迁移
5月27号把虚拟机的oracle数据库rac,迁移到现有的物理机上面,运行了1个多礼拜没有问题;

客户让执行一个存储过程,我尼玛刚执行就报错了GG

ORA-01578: ORACLE 数据块损坏 (文件号 87, 块号 4189572)
ORA-01110: 数据文件 87: '+DATA/XXglrac/datafile/XX_data.319.1136376323'
ORA-26040: 数据块是使用 NOLOGGING 选项加载的
ORA-06512:"XX.TEST1", line 46
ORA-06512:"XX.TEST2", line 5
ORA-06512: 在 line 2

赶紧找DBA协助排除,我艹,DBA说 数据库有坏块,得用备份blockrecover了,关键是这个坏块可能很早之前就存在了,现在得数据库不一定能恢复处理;

只能从5月27号得老库拿数据,完蛋了1个多礼拜的数据可能丢失,搞不好要打包跑路了

什么配置都没有修改,重启一下oracle实例,oracle打开就崩,雪上加爽,这尼玛数据库蹦了…(ORA-07445)
全库还原3T,今天晚上怎么过???
oracle报错信息

Starting background process EMNC
EMNC started with pid=88, OS id=28326
Exception [type: SIGSEGV, Address not mapped to object] [ADDR:0x28] [PC:0x7FC89503CAC8, java_util_HashMap__initHashSeedAsNeeded()+128] [flags: 0x0, count: 1]
Errors in file /u01/app/oracle/diag/rdbms/xxxrac/xxxrac1/trace/xxxrac1_ora_1103.trc  (incident=838370):
ORA-07445: exception encountered: core dump [java_util_HashMap__initHashSeedAsNeeded()+128] [SIGSEGV] [ADDR:0x28] [PC:0x7FC89503CAC8] [Address not mapped to object] []
Incident details in: /u01/app/oracle/diag/rdbms/xxxrac/xxxrac1/incident/incdir_838370/xxxrac1_ora_1103_i838370.trc
Use ADRCI or Support Workbench to package the incident.
See Note 411.1 at My Oracle Support for error and packaging details.
2023-06-06 21:20:45.687000 +08:00
Dumping diagnostic data in directory=[cdmp_20230606212045], requested by (instance=1, osid=1103), summary=[incident=838370].
PMON (ospid: 31124): terminating the instance due to error 397
System state dump requested by (instance=1, osid=31124 (PMON)), summary=[abnormal instance termination].

各种百度,总结后的数据库操作流程,最终是:无法启动是oralce补丁导致的,回退了就可以了

1)全库恢复到20230606 20:00,恢复完了还是无法开,打开就崩
2)尝试startup upgrade,数据库可以打开,结合告警推测可能是ojvm补丁的问题,回滚后重建java可以打开数据库
3)有坏块的表依然存在,truncate以后从旧库dump导入,全表扫描后可以查询所有数据
4)尝试backup validate相关datafile,V$DATABASE_BLOCK_CORRUPTION里面的数据没有刷新,依然显示有坏块,应该是block数据没有刷新的问题,我觉得可以忽略
5)在执行升级程序,目前没有报错

最后反馈给客户评估

1.数据库全库恢复到2023060620:00,恢复后仍然出现无法打开数据库;根据报错判断是Oracle ovjm补丁bug导致,于是执行了回滚ojvm操作,之后可以打开数据库。
2.打开数据库后仍然提示有数据坏块,于是清空了坏块相关的8张表,并从旧库中导出了8张表的数据导入,之后数据库状态一切正常,
3.执行了数据库升级操作后,weblogic 启动正常,登入系统,访问正常,业务查询正常。
4.从旧系统导入的8张表
除了XXXX表,之外的7张表本来在此次数据库发布操作中按脚本执行也会清空操作,并重新生成。

XXXX表恢复使用的是527日的xxx数据库中的数据,恢复之后、操作完今天凌晨的数据库发布操作后,
我们看到表中数据最新时间戳也是67日凌晨4点多的数据。


5.不确定表XXXX表是否存在数据丢失,请评估。

百度和问CHATGPT给出的相关信息
https://blog.51cto.com/miracle/57178
我们执行的存储过程中有一个delete语句;

https://www.cnblogs.com/hmwh/p/12168390.html

6bb078f183ee2c0339160df3f87200b.png
3cb0e5cc61d79057959c1c29d9806a5.png文章来源地址https://www.toymoban.com/news/detail-474382.html

到了这里,关于数据库宕机了-搞不好得打包滚蛋的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • PLC-IoT 网关开发札记(5):将本地数据库作为资产打包发布到 App

    在项目开发中,用到了本地数据库,这个本地数据库记录了系统的物模型。所谓物模型就是对某一个设备的可操纵属性的定义,每一个设备包括了一个或者多个属性,通过获取这些属性的当前值可以得到该设备的状态,改变设备的一个属性(或者多个属性的组合)可以控制该

    2024年01月25日
    浏览(43)
  • eclipse链接数据库,找数据库jar包,项目导入数据库jar包,数据库链接测试,MySQL环境变量配置。

    根据数据库版本找对应jar包 eclipse相应项目导入jar包 数据库链接测试 数据库8以上版本驱动改动 MySQL环境变量配置 1. 根据数据库版本下载jar包 查看系统数据库版本下载对于jar包 Win+r cmd msql -u用户名 -p密码(如果不行就是没有配MySQL环境变量最后有) 可以看出这是8.0.26版本 j

    2024年02月03日
    浏览(58)
  • 数据库-MySQL 实战项目——学生选课系统数据库设计与实现(附源码)

            该项目非常适合MySQL入门学习的小伙伴,博主提供了源码、数据和一些查询语句,供大家学习和参考,代码和表设计有什么不恰当还请各位大佬多多指点。  MySQL可视化工具:navicat;  数据库:MySql 5.7/8.0等版本均可;      学生选课系统主要完成某学校教务系统中

    2024年04月08日
    浏览(60)
  • 【数据库——MySQL(实战项目1)】(1)图书借阅系统——数据库结构设计

    经过前期的学习,我们已经掌握数据库基础操作,因此是时候来做一个实战项目了—— 图书借阅系统 。对于图书借阅系统,相信大家不难想到至少需要 3 张表,分别是: 借阅人表 , 图书表 和 借阅信息表 (当然不限于这些表,大家可以根据自己的想法创建其它表)。 那么

    2024年02月03日
    浏览(69)
  • SpringBoot项目连接数据库

    1、找到applications.yml,如下图  2、写入代码  

    2024年02月15日
    浏览(43)
  • 一个项目,用十款数据库?

    大家好,我是豆小匠。 关于数据库,大学的时候只知道MySQL,学习深入点也就是用到了Redis、MongoDB等非关系型数据库。 然而,工作中用到的数据库实在太多,每种数据库都有自身的优势和局限性。所以在这里梳理下日常常用数据库和适用场景,走起! 关系型数据库通常是业

    2024年02月03日
    浏览(29)
  • 我的项目准备(数据库篇)

    参考何人听我楚狂声的代码,深入理解数据库知识,顺便作为自己项目的准备。 Transaction是 关系型数据库 的核心组成,它将数据有条理地保存在储存介质(磁盘)中, 并在逻辑上,将数据以结构化的形态呈现给用户。支持数据的增、删、改、查,并在过程中保障数据的正确且

    2024年02月15日
    浏览(41)
  • 基于Qt数据库项目实现(Sqlite3为例)|考查数据库、表格(QTableView 显示)(进阶)

    01 数据库表格(QTableView 显示) 本小节设计一个生活中的例子,使用数据库修改/查询员工的编号、姓名、年龄、性别与照片信息。 本例将数据库的内容显示到 QTableView 上。如果只是简单的显示数据库的内容到QTableView 上,可以使用下面的方法,此方法 QTableView 上可以看到

    2024年02月20日
    浏览(49)
  • springboot项目接入Oracle数据库配置

    2024年01月23日
    浏览(42)
  • 项目练习:构建读写分离的数据库集群

    目录 一、目标实现 二、项目准备 三、项目实施 1.配置基础环境 1.1修改主机名 1.2配置3台群集虚拟机的/etc/hosts文件 1.3.配置网卡 1.4.配置本地yum源 2.部署Mycat中间件服务 2.1安装KDJ环境 3.部署MariaDB主从数据库集群服务 3.1安装MariaDB服务 3.2初始化MariaDB数据库 3.3配置数据库集群主

    2024年02月02日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包