YashanDB dump
YashanDB 提供 dump 命令,让用户手动将系统内部结构信息转储到 trace 文件中,这些信息可被用于进行故障问题的跟踪和分析。
dump 命令
dump 命令通过 SQL 语句实现,对其详细的语法描述请参考开发手册ALTER SYSTEM的 dump_clause 子句。
YashanDB 允许将如下内部信息 dump 到 trace 文件中:
private redo in memory
内存中的私有日志数据,对应的 dump 命令为:
logfile blocks
磁盘中的 redo 日志数据,对应的 dump 命令为:
datafile blocks
磁盘中的数据文件数据,对应的 dump 命令为:
stack of this session
某个会话的堆栈数据,对应的 dump 命令为:
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 运行时产生的内部结构数据,如在故障跟踪时希望获得对这些数据的解析,请咨询我们的技术支持。
版权声明: 本文为 InfoQ 作者【YashanDB】的原创文章。
原文链接:【http://xie.infoq.cn/article/9d1c4adbaa5ce231799a3bfe3】。文章转载请联系作者。
评论