YashanDB提供dump命令,让用户手动将系统内部结构信息转储到trace文件中,这些信息可被用于进行故障问题的跟踪和分析。

dump命令

dump命令通过SQL语句实现,对其详细的语法描述请参考开发手册ALTER SYSTEM的dump_clause子句。

YashanDB允许将如下内部信息dump到trace文件中:

private redo in memory
内存中的私有日志数据,对应的dump命令为:

ALTER SYSTEM DUMP PRIVATE LOG;

logfile blocks
磁盘中的redo日志数据,对应的dump命令为:

ALTER SYSTEM DUMP LOGFILE 'redo1';

datafile blocks
磁盘中的数据文件数据,对应的dump命令为:

ALTER SYSTEM DUMP DATAFILE 6;  --DUMP整个数据文件

ALTER SYSTEM DUMP DATAFILE 6 BLOCK 0; --DUMP一个页面

ALTER SYSTEM DUMP DATAFILE 6 MINBLOCK 128 MAXBLOCK 137;  --DUMP一批页面

stack of this session
某个会话的堆栈数据,对应的dump命令为:

ALTER SYSTEM DUMP SESSION 20 BACKTRACE;

Note:
dump操作转储的是某一时间点的内部数据,多次dump可以跟踪变化。
dump操作涉及磁盘写,运行时间势必受数据量和IO影响。

trace文件

trace文件与会话一一对应,在会话首次执行dump时创建,之后每一次dump操作在文件里生成一段数据。

文件路径

trace文件为自动诊断存储库的一部分,默认存放在{YASDB_DATA}/diag/trace中,文件名称为{dbname}yas{sid}.trc。

文件内容

每一次dump操作对应文件中的一段内容,每一段内容由标题和数据组成:

标题:包含dump时间、dump类型、dump数据大小等信息。
数据:根据不同的dump类型,获取到的系统内部结构数据。
Note:

由于会话ID可以重复使用,当相同ID的新会话第一次dump,而该ID对应trace文件存在时,不会创建新文件,而是继续追加写入。

死锁发生时,后台线程若检测到死锁,数据库会选择死锁环中的一个session返回error,并且dump对应的死锁信息到该session对应的trace文件,死锁信息不可手动通过SQL语句实现,在检测到死锁时自动触发。

trace文件不会自动清理,管理员需关注其占用空间,判断不再使用的trace文件手动清理。

trace文件里的数据为YashanDB运行时产生的内部结构数据,如在故障跟踪时希望获得对这些数据的解析,请咨询我们的技术支持。


YashanDB
1 声望0 粉丝

崖山数据库系统YashanDB是深圳计算科学研究院自主设计研发的新型数据库管理系统,融入原创的有界计算、近似计算、并行可扩展和跨模融合计算理论,可满足金融、政企、能源等关键行业对高性能、高并发及高安全性的...


下一篇 »
YashanDB巡检