#dump
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:
1.dump操作转储的是某一时点的内部数据,多次dump可以跟踪变化。
2.dump操作涉及磁盘写,运行时间势必受数据量和IO影响。
# trace文件
trace文件与会话一一对应,在会话首次执行dump时创建,之后每一次dump操作在文件里生成一段数据。
文件路径
trace文件为自动诊断存储库的一部分,默认存放在{YASDB_DATA}/diag/trace中,文件名称为{dbname}yas{sid}.trc。
文件内容
每一次dump操作对应文件中的一段内容,每一段内容由标题和数据组成:
- 标题:包含dump时间、dump类型、dump数据大小等信息。
- 数据:根据不同的dump类型,获取到的系统内部结构数据。
Note:
1.由于会话ID可以重复使用,当相同ID的新会话第一次dump,而该ID对应trace文件存在时,不会创建新文件,而是继续追加写入。
2.trace文件不会自动清理,管理员需关注其占用空间,判断不再使用的trace文件手动清理。
3.trace文件里的数据为YashanDB运行时产生的内部结构数据,如在故障跟踪时希望获得对这些数据的解析,请咨询我们的技术支持。