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运行时产生的内部结构数据,如在故障跟踪时希望获得对这些数据的解析,请咨询我们的技术支持。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。