delete误删基表(seg$)bbed恢复cluster table

有客户通过delete误删了sys.seg$表的数据,重启数据库,发现数据库不能正常启动。

删除命令:delete from sys.seg$ t where ts#=2;

数据库启动报错

Errors in file /u01/app/diag/rdbms/orcl/orcl/trace/orcl_ora_48064.trc (incident=325391): ORA-00600: internal error code, arguments: [ktsircinfo_num1], [1], [2], [5826], [], [], [], [], [], [], [], [] Incident details in: /u01/app/diag/rdbms/orcl/orcl/incident/incdir_325391/orcl_ora_48064_i325391.trc ARC3: Archival started ARC0: STARTING ARCH PROCESSES COMPLETE Use ADRCI or Support Workbench to package the incident. See Note 411.1 at My Oracle Support for error and packaging details. Errors in file /u01/app/diag/rdbms/orcl/orcl/trace/orcl_ora_48064.trc (incident=325392): ORA-00600: internal error code, arguments: [ktsircinfo_num1], [1], [2], [5826], [], [], [], [], [], [], [], [] Incident details in: /u01/app/diag/rdbms/orcl/orcl/incident/incdir_325392/orcl_ora_48064_i325392.trc Tue Apr 11 22:56:42 2023 Dumping diagnostic data in directory=[cdmp_20230411225642], requested by (instance=1, osid=48064), summary=[incident=325391]. Use ADRCI or Support Workbench to package the incident. See Note 411.1 at My Oracle Support for error and packaging details. Undo initialization errored: err:600 serial:0 start:412236424 end:412238104 diff:1680 (16 seconds) Errors in file /u01/app/diag/rdbms/orcl/orcl/trace/orcl_ora_48064.trc: ORA-00600: internal error code, arguments: [ktsircinfo_num1], [1], [2], [5826], [], [], [], [], [], [], [], [] Errors in file /u01/app/diag/rdbms/orcl/orcl/trace/orcl_ora_48064.trc: ORA-00600: internal error code, arguments: [ktsircinfo_num1], [1], [2], [5826], [], [], [], [], [], [], [], [] Error 600 happened during db open, shutting down database

通过dump删除标识

tab 2, row 21, @0x151b
tl: 4 fb: -CHDFL-- lb: 0x2  cc: 0 cki: 21
tab 2, row 22, @0x14e9
tl: 4 fb: -CHDFL-- lb: 0x2  cc: 0 cki: 22
tab 2, row 23, @0x14b7
tl: 4 fb: -CHDFL-- lb: 0x2  cc: 0 cki: 23

对比正常时:

tab 2, row 21, @0x151b
tl: 50 fb: -CH-FL-- lb: 0x0  cc: 16 cki: 21
col  0: [ 2]  c1 0b
col  1: [ 2]  c1 09
col  2: [ 2]  c1 02
col  3: [ 2]  c1 11
col  4: [ 2]  c1 03
col  5: [ 4]  c3 04 1c 42
col  6: [ 2]  c1 09
col  7: [ 1]  80
col  8: [ 1]  80
col  9: [ 1]  80
col 10: [ 1]  80
col 11: [ 1]  80
col 12: [ 1]  80
col 13: [ 1]  80
col 14: [ 2]  c1 02
col 15: [ 5]  c4 05 14 2c 08
tab 2, row 22, @0x14e9
tl: 50 fb: -CH-FL-- lb: 0x0  cc: 16 cki: 22

在bbed中查看:

正常数据:

flag@6355: 0x6c (KDRHFL, KDRHFF, KDRHFH, KDRHFC)

删除数据

rowdata[398] @5095

flag@5095: 0x7c (KDRHFL, KDRHFF, KDRHFD, KDRHFH, KDRHFC)
lock@5096: 0x02
cols@5097:    0
ckix@5098:   29

获取对象数据块

#!/bin/sh. ~/.bash_profilefor ((i=1; i<=89600; i ++))
do
objectid=`echo p /d dba 1,$i ktbbh.ktbbhsid.ktbbhod1 | bbed parfile=bbedpar.txt password=blockedit | grep 'ktbbhod1' | awk '{print $5}'`
if [ "$objectid" = "8" ];then
echo $i;
fi;
done

从数据块里面获取修复脚本

#!/bin/sh. ~/.bash_profilecat sh.out | while read idolen=`echo p /d dba 1,$i offset 0 kdbr | bbed parfile=bbedpar.txt password=blockedit | grep 'kdbr' | wc -l`if [ -n "$len" ];thenfor ((j=0; j<$len; j++))dooffset=`echo p dba 1, $i *kdbr[$j]| bbed parfile=bbedpar.txt password=blockedit | grep '^ub1*.*rowdata' | awk '{print $3}' |sed 's/@//g'`echo "x /rnc *kdbr[$j]"echo "assign /x dba 1, $i offset $offset = 0x6c"donefiecho "sum apply dba 1,$i"done

为了验证脚本准确性,先验证是否有删除记录:

x /rnc *kdbr[0]

。。。。

x /rnc *kdbr[69]

跟普通表所在行不一样,存数据的是row 30,没有数据

BBED> x /rnc *kdbr[30]
rowdata[900] @5597

flag@5597: 0xac (KDRHFL, KDRHFF, KDRHFH, KDRHFK)
lock@5598: 0x00
cols@5599:    3
kref@5600:    1
hrid@5602:0x004000c7.1e
nrid@5608:0x004000c7.1e

col    0[2] @5616: 2
col    1[2] @5619: ??
col    2[3] @5622: .I

位置65,才是放数据的:

BBED> x /rnccntnnn *kdbr[65]
rowdata[348] @5045

flag@5045: 0x7c (KDRHFL, KDRHFF, KDRHFD, KDRHFH, KDRHFC)
lock@5046: 0x02
cols@5047:    0
ckix@5048:   30  《—-连接到30行

恢复:

assign /x dba 1, 199 offset 5445 = 0x6c
assign /x dba 1, 199 offset 5395 = 0x6c
assign /x dba 1, 199 offset 5345 = 0x6c
assign /x dba 1, 199 offset 5295 = 0x6c
assign /x dba 1, 199 offset 5245 = 0x6c
assign /x dba 1, 199 offset 5195 = 0x6c
assign /x dba 1, 199 offset 5145 = 0x6c
assign /x dba 1, 199 offset 5095 = 0x6c
assign /x dba 1, 199 offset 5045 = 0x6c

该cluseter表:

create table SYS.SEG$
(
file#        NUMBER not null,
block#       NUMBER not null,
type#        NUMBER not null,
ts#          NUMBER not null,
blocks       NUMBER not null,
extents      NUMBER not null,
iniexts      NUMBER not null,
minexts      NUMBER not null,
maxexts      NUMBER not null,
extsize      NUMBER not null,
extpct       NUMBER not null,
user#        NUMBER not null,
lists        NUMBER,
groups       NUMBER,
bitmapranges NUMBER not null,
cachehint    NUMBER not null,
scanhint     NUMBER not null,
hwmincr      NUMBER not null,
spare1       NUMBER,
spare2       NUMBER
)
cluster C_FILE#_BLOCK# ();

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/709860.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【蓝桥杯入门记录】动态数码管例程

目录 &#xff08;1&#xff09;例程1&#xff1a;两个数码管显示不同内容。本例以第一个数码管显示数字“0”&#xff0c;第二个数码管显示数字“1”为例。 &#xff08;2&#xff09;例程2&#xff1a;多个数码管显示不同内容&#xff08;二&#xff09;。注&#xff1a;创建…

HarmonyOS 开发之———应用程序入口—UIAbility的使用

谢谢关注!! 前言:上一篇文章主要介绍ArkJS 基础—〉自定义组件使用。如需了解谢谢查阅:http://t.csdnimg.cn/01PQ2 一、UIAbility概述 UIAbility是一种包含用户界面的应用组件,主要用于和用户进行交互。UIAbility也是系统调度的单元,为应用提供窗口在其中绘制界面。 …

掌握结构化日志记录:全面指南

在当今复杂的软件生态系统中&#xff0c;应用程序日志非常宝贵。它们允许开发者窥视应用程序的内部&#xff0c;了解系统内部的真实情况。但是&#xff0c;传统的非结构化日志数据有很多不足之处。这些混乱的文本块无法提供完整的画面。要真正发挥日志的力量&#xff0c;我们需…

浅析扩散模型与图像生成【应用篇】(三)——RDDM

3. Residual Denoising Diffusion Models 该文提出一种残差去噪扩散模型&#xff08;RDDM&#xff09;可用去图像生成和图像修复&#xff08;如去除阴影、去雨、暗光提升等&#xff09;。该文最大的特点是提出一种双扩散模型&#xff0c;在扩散过程中不仅包含噪声 ϵ \epsilon …

Windows WMI详解

WMI简介 WMI ( Windows Management Instrumentation, Windows管理规范)是Windows 2000/XP管理系统的核心&#xff0c;属于管理数据和操作的基础模块。设计WMI的初衷是达到一种通用性&#xff0c;通过WM操作系统、应用程序等来管理本地或者远程资源。它支持分布式组件对象模型(…

select * from 表 c=‘1‘ and b=‘2‘ and a=‘3‘; abc是联合索引,这样查询会命中索引吗?

倒叙也会命中索引 但是要注意&#xff0c;倒叙的时候必须要有a存在&#xff0c;否则就会索引失效 因为mysql底层会有优化器去进行优化&#xff0c;但是如果没有a的话&#xff0c;那么优化器就不知道要优化那个索引了&#xff0c;所以他走了全表&#xff0c;导致索引失效

[MYSQL数据库]--mysql的基础知识

前言 作者&#xff1a;小蜗牛向前冲 名言&#xff1a;我可以接受失败&#xff0c;但我不能接受放弃 如果觉的博主的文章还不错的话&#xff0c;还请点赞&#xff0c;收藏&#xff0c;关注&#x1f440;支持博主。如果发现有问题的地方欢迎❀大家在评论区指正 目录 一、数据库…

【Rust详细学习路线】讲解

Rust详细学习路线 1. 介绍2. 初学者阶段3. 进阶阶段4. 深入研究阶段 1. 介绍 学习Rust编程语言可以采取分阶段的方法来确保全面掌握其特色和细节&#xff0c;以下是Rust的一个详细学习路线&#xff0c;你可以根据个人学习进度做适当的调整&#xff1a; 2. 初学者阶段 了解Rus…

Redis数据类型--List类型详解及应用

数据结构 Redis无论什么数据类型&#xff0c;存储的时候都是以键值对key-value形势存储&#xff0c;并且所有的key都是String类型&#xff0c;本文讨论的数据类型是value的数据类型。 List类型 概述&#xff1a;list类型可以存储一个有序的字符串列表&#xff0c;为了方便理…

Tomcat服务部署

1、安装jdk、设置环境变量并测试 第一步&#xff1a;安装jdk 在部署 Tomcat 之前必须安装好 jdk&#xff0c;因为 jdk 是 Tomcat 运行的必要环境。 1. #关闭防火墙 systemctl stop firewalld systemctl disable firewalld setenforce 02. #将安装 Tomcat 所需软件包传到/opt…

备战蓝桥杯Day20 - 堆排序的实现

一、每日一题 蓝桥杯真题之互质数的个数 我的解法&#xff1a; 两个数互质&#xff0c;说明两个数的最大公约数是1&#xff0c;定义了一个函数判断两个数的最大公约数&#xff0c;再在循环中判断&#xff0c;并实现计数。可以实现运行&#xff0c;缺点是时间复杂度很高&#…

javaweb学习(day04-XML)

一、介绍 1 官方文档 地址: https://www.w3school.com.cn/xml/index.asp 2 为什么需要 XML 需求 1 : 两个程序间进行数据通信需求 2 : 给一台服务器&#xff0c;做一个配置文件&#xff0c;当服务器程序启动时&#xff0c;去读取它应当监听的端口号、还有连接数据库的用户名…

C++ 并发编程(3)线程间共享数据

文章目录 一、线程间共享数据1、线程间共享数据的问题2、使用互斥元保护共享数据 一、线程间共享数据 1、线程间共享数据的问题 2、使用互斥元保护共享数据

睿易产品售后工程师初级认证课程练习题

1、以下关于有问必答说法正确的是(A B C) A、睿易APP和睿易公众号都可以找到入口 B、智能机器人+人工双重保障服务质量 C、在线客服有机器人也有人工客服 D、在线客服只有机器人 A B C 2、锐捷设备报修以下说法正确的是(B) A、睿易APP当前不可以进行报修 B、报修需要填写设…

【Java程序设计】【C00321】基于Springboot的在线租房和招聘平台(有论文)

基于Springboot的在线租房和招聘平台&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的在线租房和招聘平台&#xff0c;本系统有管理员、用户、房东以及公司四种角色&#xff1b; 管理员&#xff1a;首页、个人中心…

spring boot集成Elasticsearch 7.16.3

环境&#xff1a;Elasticsearch 版本 7.16.3 Elasticsearch for windows下载地址 windows 若依 spring boot版本 2.6.0 pom文件添加 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-elasticsearch<…

【Kubernetes】K3S

目录 前言一、原理单体架构高可用架构 二、初始化1.配置yum源2.关掉防火墙3.关掉selinux4. 修改内核参数5.关掉swap交换分区 三、安装master节点1. 安装container2.启动master服务 四、安装node节点五、卸载六、总结 前言 各位小伙伴们&#xff0c;大家好&#xff0c;小涛又来…

在消息队列kafka多消费者组消费同一Topic场景下的idea调试debug断点进不去的解决方案

1. 问题场景复现 不同类型的消息发到同一个Topic中&#xff0c;设置多个消费者组&#xff0c;为每个消费者组打一个标记。每一种消费者组只能消费对应的消息类型。这样做的好处是避免设置多个Topic&#xff0c;简化代码开发的同时性能损耗小。问题出现在消费端&#xff0c;由于…

面试数据库篇(mysql)- 10事务中的隔离性是如何保证

锁:排他锁(如一个事务获取了一个数据行的排他锁,其他事务就不能再获取该行的其他锁mvcc : 多版本并发控制MVCC 全称 Multi-Version Concurrency Control,多版本并发控制。指维护一个数据的多个版本,使得读写操作没有冲突 MVCC的具体实现,主要依赖于数据库记录中的隐式字段…

Sui在AIBC Eurasia奖项评选中被评为2024年度最佳区块链解决方案

自2023年主网上线以来&#xff0c;经历了爆炸性增长的Layer1区块链Sui在2月25–27日迪拜举办的第二届AIBC Eurasia活动中获得“2024最佳区块链解决方案奖”&#xff08;Best Real World Application Award 2024&#xff09;。这个盛大的活动以世界级的参与者和往届获奖者而闻名…