【YashanDB知识库】如何dump数据文件,转换rowid, 查询对应内容

news/2024/10/3 22:58:27/

本文来自YashanDB官网,具体内容可见https://www.yashandb.com/newsinfo/7459464.html?templateId=1718516

问题现象

客户环境有时候会遇到文件损坏的情况,需要dump文件,根据rowid查询数据情况。

问题的风险及影响

熟练掌握崖山数据文件dump操作,并识别rowid,在故障的情况下可以快速确认相应的数据情况,查找需要的数据。

问题影响的版本

YashanDB版本所有版本

问题分析和处理过程

1、在故障情况下,直接查询表数据,会遇到YAS-02147的错误。

2、崖山提供dump命令,可以dump出db数据文件,但不包含数据内容。

详细说明见dump | YashanDB Doc (yasdb.com)


3、确认文件id和blockid

在上述命令中,dump的时候需要文件id和blockid。

文件id对应V$datafile表空间所在的文件id,如下面users表空间文件id是4。

表block对应dba_segments中block起始位置及数量,如下面CUSTOMER从block 131开始,有8个block。

根据上面分析,执行dump命令ALTER SYSTEM DUMP DATAFILE 4 MINBLOCK 131 MAXBLOCK 140,结果如下:

点击查看代码
SQL> ALTER SYSTEM DUMP DATAFILE 4 MINBLOCK 131 MAXBLOCK 140;Succeed.SQL> exit[cod@6c5c2b1ac6f0 trace]$ ls -ltotal 8-rw-rw-r-- 1 cod cod 5541 Jul 30 10:18 yashan_yas_21.trc[cod@6c5c2b1ac6f0 trace]$ cat yashan_yas_21.trc*** 2024-07-30 10:17:52.212Start dump data blocks TS#: 4 FILE#: 4 minblk 132 maxblk 132Block dump from disk:warning: disk dump block information is incompleted, file#: 4 blk#: 132 ts#: 4*** 2024-07-30 10:18:53.922Start dump data blocks TS#: 4 FILE#: 4 minblk 131 maxblk 140Block dump from cache:BUFFER CTRL DUMPFILE#: 4 BLK#: 131 TS#: 4bucketId: 29579 crNext: 4294967295 hashNext:4294967295lruListId: 2 lru: [7546, 7537]resStatus: 0 refCount: 1 pcFlag: 0scn: 0 ext: 0 node: 0 xsn: 0 ssn: 0lastLfn: 0 dtyList: [NULL, NULL]truncPoint: [0, 0, 0, 0]BUFFER CTRL DUMP ENDDISK BLOCK DUMPsegmenthead: id 0-131, type 33, instance id 0 lsn 5031, checksum: 0, change num 4, isEncrypted 0, isCompressed 0segType: heapdataOid: 2486ssm tree: search entry: 0-129, level: 1level[0]: ssm block count: 1, current block: 0-128level[1]: ssm block count: 1, current block: 0-129level[2]: ssm block count: 1, current block: 0-130hwm L1: 0-128hwm L1 node: 7extents lhwm: block id: 0-136, extent idx: 0, map block: 0-131, offset: 0, blkIdx: 8, used block count: 8. lhwmL1: 0-128extent ctrl: extent count: 1, block count: 8, map count: 0 , extent map offset: 380last map block: 63-67108863, offset: 0, extents change number: 0extents hwm: block id: 0-136, extent idx: 0, offset: 0, unformatted block count: 0, used block count: 8, map block: 63-67108863extents map: extent count: 1, capacity: 487, next map: 63-67108863, map nodes:id: 0-128 size: 80. L1 block id: 0-128 data block id: 0-132tail: change num: 4DISK BLOCK DUMP END*** 2024-07-30 10:18:53.922Block dump from disk:warning: disk dump block information is incompleted, file#: 4 blk#: 132 ts#: 4*** 2024-07-30 10:18:53.922Block dump from cache:BUFFER CTRL DUMPFILE#: 4 BLK#: 133 TS#: 4bucketId: 29581 crNext: 4294967295 hashNext:4294967295lruListId: 2 lru: [7548, 7546]resStatus: 0 refCount: 1 pcFlag: 0scn: 0 ext: 0 node: 0 xsn: 0 ssn: 0lastLfn: 0 dtyList: [NULL, NULL]truncPoint: [0, 0, 0, 0]BUFFER CTRL DUMP ENDDISK BLOCK DUMPheap datahead: id 0-133, type 4, instance id 0 lsn 5029, checksum: 0, change num 1, isEncrypted 0, isCompressed 0dataOid: 2486, extent change number: 0block scn: 0, map block: 0-128, slot: 5, freeness: 5rows: 0, dirs: 0, xslots: 0, si xslots: 0, free size: 8108, free begin: 80, free end: 8188 free dir: 4095tail: change num: 1DISK BLOCK DUMP END*** 2024-07-30 10:18:53.922Block dump from cache:BUFFER CTRL DUMPFILE#: 4 BLK#: 134 TS#: 4bucketId: 29582 crNext: 4294967295 hashNext:4294967295lruListId: 2 lru: [4294967295, 7547]resStatus: 0 refCount: 1 pcFlag: 0scn: 0 ext: 0 node: 0 xsn: 0 ssn: 0lastLfn: 0 dtyList: [NULL, NULL]truncPoint: [0, 0, 0, 0]BUFFER CTRL DUMP ENDDISK BLOCK DUMPheap datahead: id 0-134, type 4, instance id 0 lsn 5029, checksum: 0, change num 1, isEncrypted 0, isCompressed 0dataOid: 2486, extent change number: 0block scn: 0, map block: 0-128, slot: 6, freeness: 5rows: 0, dirs: 0, xslots: 0, si xslots: 0, free size: 8108, free begin: 80, free end: 8188 free dir: 4095tail: change num: 1DISK BLOCK DUMP END*** 2024-07-30 10:18:53.922Block dump from cache:BUFFER CTRL DUMPFILE#: 4 BLK#: 135 TS#: 4bucketId: 29583 crNext: 4294967295 hashNext:4294967295lruListId: 1 lru: [4294967295, 7543]resStatus: 0 refCount: 1 pcFlag: 0scn: 0 ext: 0 node: 0 xsn: 0 ssn: 0lastLfn: 0 dtyList: [NULL, NULL]truncPoint: [0, 0, 0, 0]BUFFER CTRL DUMP ENDDISK BLOCK DUMPheap datahead: id 0-135, type 4, instance id 0 lsn 5030, checksum: 0, change num 4, isEncrypted 0, isCompressed 0dataOid: 2486, extent change number: 0block scn: 581620909456666624, map block: 0-128, slot: 7, freeness: 1rows: 1, dirs: 1, xslots: 2, si xslots: 0, free size: 2022, free begin: 6116, free end: 8138 free dir: 4095row[0]: size: 6036 xslot id: 0 columns: 3 format/link/migr/deleted/compact:1/0/0/0/0xslot[0]: xid: 25-11349-1 active: 0 owscn: 0 fastcommit: 1 ura: block: 0-15758, ver: 0, dir: 1 ssn: 3055202304 fsc: 21794 mfb: 2066 scn: 581620909456666624xslot[1]: xid: 0-0-0 active: 0 owscn: 0 fastcommit: 0 ura: block: 0-0, ver: 0, dir: 0 ssn: 0 fsc: 0 mfb: 0 scn: 0tail: change num: 4DISK BLOCK DUMP END*** 2024-07-30 10:18:53.922Block dump from disk:DISK BLOCK DUMPunknownhead: id 0-136, type 0, instance id 0 lsn 9, checksum: 999298229, change num 0, isEncrypted 0, isCompressed 0unknown type 0tail: change num: 0DISK BLOCK DUMP END*** 2024-07-30 10:18:53.922Block dump from disk:DISK BLOCK DUMPunknownhead: id 0-137, type 0, instance id 0 lsn 9, checksum: 3105528825, change num 0, isEncrypted 0, isCompressed 0unknown type 0tail: change num: 0DISK BLOCK DUMP END*** 2024-07-30 10:18:53.922Block dump from disk:DISK BLOCK DUMPunknownhead: id 0-138, type 0, instance id 0 lsn 9, checksum: 996768988, change num 0, isEncrypted 0, isCompressed 0unknown type 0tail: change num: 0DISK BLOCK DUMP END*** 2024-07-30 10:18:53.922Block dump from disk:DISK BLOCK DUMPunknownhead: id 0-139, type 0, instance id 0 lsn 9, checksum: 3118723984, change num 0, isEncrypted 0, isCompressed 0unknown type 0tail: change num: 0DISK BLOCK DUMP END*** 2024-07-30 10:18:53.922Block dump from disk:DISK BLOCK DUMPunknownhead: id 0-140, type 0, instance id 0 lsn 9, checksum: 979551335, change num 0, isEncrypted 0, isCompressed 0unknown type 0tail: change num: 0DISK BLOCK DUMP END
分析数据发现135的块中存在数据:


4、转换ROWID,查询数据内容

查看ROWID说明:ROWID UROWID | YashanDB Doc (yasdb.com)

对应:

dataoid 为2486

spaceid为4

fileid为0(同个表空间可能有多个数据文件)

blockid为135

dir为0

最终拼接的rowid为2486:4:0:135:0,根据rowid查询结果如下:


http://www.ppmy.cn/news/1534138.html

相关文章

虚拟机、ubantu不能连接网络,解决办法

虚拟机、ubantu不能连接网络,解决办法 物理机OS: [Windows10 专业版](https://so.csdn.net/so/search?qWindows10 专业版&spm1001.2101.3001.7020) 虚拟机平台: VMware Workstation 16 Pro 虚拟机OS: Ubuntu 18.04 自动配…

定制化CRM如何重塑科技服务领域的生态链?

企业不仅面临着技术创新与知识产权保护的双重挑战,还需在激烈的市场竞争中构建稳固的客户关系与广泛的合作网络。传统的CRM(客户关系管理)系统,往往局限于企业内部的数据管理与流程优化,难以满足当前复杂多变的业务需求…

JVM相关的命令汇总

一、简介 虽然目前市场上有很多成熟的 JVM 可视化监控分析工具,但是所有的工具其实都依赖于 JDK 的接口和底层相关的命令,了解这些命令的使用对于在紧急情况下排查 JVM 相关的线上故障,会有更加直观的帮助。 下面一起来看看 JVM 常用的命令…

各种 JIT(Just-In-Time) 编译器

JIT(Just-In-Time)编译器广泛应用于各种编程语言和运行时环境中,不同的语言和平台都实现了各自的 JIT 编译器来提升执行效率。以下是一些常见的使用 JIT 技术的编译器和虚拟机: 1. Java HotSpot 语言:Java描述&#…

小红书制作视频如何去原视频音乐,视频如何去原声保留背景音乐?

在视频编辑、音乐制作或个人娱乐中,有时我们希望去掉视频中的原声(如对话、解说等),仅保留背景音乐。这种处理能让观众更加聚焦于视频的氛围或节奏,同时也为创作者提供了更多创意空间。选择恰当的背景音乐,…

简单分享下Python和MySQL管理和执行测试用例

在软件开发过程中,自动化测试是非常重要的一环。本文将介绍如何使用Python和MySQL来管理和执行测试用例,并处理用例之间的依赖关系和参数化问题。我们将通过几个简单的步骤来构建一个完整的测试框架。 项目需求概述 我们的目标是创建一个测试框架&#…

android Activity生命周期

android 中一个 activity 在其生命周期中会经历多种状态。 您可以使用一系列回调来处理状态之间的转换。下面我们来介绍这些回调。 onCreate(创建阶段) 初始化组件:在这个阶段,Activity的主要工作是进行初始化操作。这包括为Ac…

安防监控/视频系统EasyCVR视频汇聚平台如何过滤134段的告警通道?

视频汇聚/集中存储EasyCVR安防监控视频系统采用先进的网络传输技术,支持高清视频的接入和传输,能够满足大规模、高并发的远程监控需求。平台支持国标GB/T 28181协议、部标JT808、GA/T 1400协议、RTMP、RTSP/Onvif协议、海康Ehome、海康SDK、大华SDK、华为…