有客户通过delete误删了sys.seg$表的数据,重启数据库,发现数据库不能正常启动。删除命令:delete from sys.seg$ t where ts#=2;通过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] @5095flag@5095: 0x7c (KDRHFL, KDRHFF, KDRHFD, KDRHFH, KDRHFC) lock@5096: 0x02 cols@5097: 0 ckix@5098: 29先验证是否有删除记录: x /rnc *kdbr[0]。。。。x /rnc *kdbr[69]跟普通表所在行不一样,存数据的是row 30,没有数据BBED> x /rnc *kdbr[30] rowdata[900] @5597flag@5597: 0xac (KDRHFL, KDRHFF, KDRHFH, KDRHFK) lock@5598: 0x00 cols@5599: 3 kref@5600: 1 hrid@5602:0x004000c7.1e nrid@5608:0x004000c7.1ecol 0[2] @5616: 2 col 1[2] @5619: ?? col 2[3] @5622: .I位置65,才是放数据的:BBED> x /rnccntnnn *kdbr[65] rowdata[348] @5045flag@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# ();
delete误删基表(seg$)bbed恢复cluster table
来源:这里教程网
时间:2026-03-03 19:36:36
作者:
编辑推荐:
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- oracle XTTS迁移问题整理
oracle XTTS迁移问题整理
26-03-03 - 数据库管理-第151期 Oracle Vector DB & AI-03(20240218)
- LGWR写操作会导致性能全局卡顿案例分析
LGWR写操作会导致性能全局卡顿案例分析
26-03-03 - 手机玩家“战”AI,OPPO向左,魅族向右
手机玩家“战”AI,OPPO向左,魅族向右
26-03-03 - HP小机下async模式数据库启动故障
HP小机下async模式数据库启动故障
26-03-03 - Oracle 统一审计- Best 实践二
Oracle 统一审计- Best 实践二
26-03-03 - 跑批SQL性能异常分析
跑批SQL性能异常分析
26-03-03 - 数据库管理-第148期 最强Oracle监控EMCC深入使用-05(20240208)
- 分类分级在oracle 23c中应用
分类分级在oracle 23c中应用
26-03-03 - 数据库管理-第152期 Oracle Vector DB & AI-04(20240220)
