本文来自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 -l
total 8
-rw-rw-r-- 1 cod cod 5541 Jul 30 10:18 yashan_yas_21.trc
[cod@6c5c2b1ac6f0 trace]$