当前位置: 首页 > YashanDB, 工具 > 正文

我们的文章会在微信公众号 IT民工的龙马人生 和博客网站 ( www.htz.pw )同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢!

由于博客中有大量代码,通过页面浏览效果更佳。

库变慢、锁等待、空间告急、要追一条 SQL——不知道跑哪个脚本时,打开本篇。按场景列出 ytop 内置的全部脚本;怎么 -S / -f 见 05-脚本怎么找怎么跑。

覆盖范围YashanDB 相关脚本(库内 SQL + Linux 主机运维 OS 工具);有单篇详解的链 scripts/;其余用 ytop -f

快速入口

我想… 先看 再看
谁在用库、在等什么 we lock / sess_by_event
锁住了、谁挡谁 lock lock_blocklock_waitchain
追一条 SQL plan_by_sqlid sql
空间快满 tablespace db_sizedatafile
历史性能 ytop -f ash.sql ytop -f awr_snapshot.sql
主机资源 ytop -f pidstat.py ytop -f iostat.sh / ytop -f sar.py

第一批 · 高频诊断

当前谁在忙 / 在等

脚本 做什么 入口 版本 风险
dump_sid SID 状态 dump 到 trace ytop -f dump_sid.sql 只读
mysid 当前这条连接的 SID mysid 只读
sess_by_event 按等待事件名片段筛会话 sess_by_event 只读
sess_by_sql 按 SQL 文本片段筛会话 sess_by_sql 只读
sess_cursor open cursor 数量与内存 sess_cursor 只读
sess_job 运行中的调度作业与会话 sess_job 只读
sess_time_model 会话 time model 间隔采样 sess_time_model 只读
sess 指定 SID,竖排看 GV$SESSION sess 只读
sess_spa 会话概览 + SESSION_SPA ytop -f sess_spa.sql 只读
sess_undo 会话 UNDO 占用 ytop -f sess_undo.sql 只读
sess_vm 会话概览 + VMSTAT ytop -f sess_vm.sql 只读
we 集群:谁在等、跑什么 SQL、多久 we 只读
we_23.5 23.5+ 集群会话概览 we_23.5 23.5 只读
we_single 单机:会话等待概览 we_single 只读

会话管控

脚本 做什么 入口 版本 风险
kill_sess_by_where 按 WHERE 批量杀会话 kill_sess_by_where 高危

锁与阻塞

推荐:lock → lock_block → lock_waitchain;链复杂再用 lock_tree / lock_tx_tree。

脚本 做什么 入口 版本 风险
lock 行/事务锁:谁持谁等 lock 只读
lock_block 锁:等待者与阻塞者成对 lock_block 只读
lock_ddl DDL/表锁持有与等待 lock_ddl 只读
lock_tree 行锁等待树 lock_tree 只读
lock_tx_tree 事务锁等待树 lock_tx_tree 只读
lock_waitchain 锁等待链 lock_waitchain 只读

一条 SQL 说清

推荐:find_sql 或 we 拿 sql_id → plan_by_sqlid;要全文+对象再开 sql。

脚本 做什么 入口 版本 风险
find_sql GV$SQL 按文本搜 SQL(含 inst_id) find_sql 只读
index_by_sqlid sql_id 涉及表的索引 ytop -f index_by_sqlid.sql 只读
plan_by_hash 按 plan_hash 看计划 plan_by_hash 只读
plan_by_sqlid 按 sql_id 看执行计划 plan_by_sqlid 只读
plan_pred_by_sqlid 字面量 SQL + 计划 + EXPLAIN plan_pred_by_sqlid 只读
sql sql_id 完整调优报告 sql 只读
sql_bind_by_sqlid 绑定替换与 bind capture ytop -f sql_bind_by_sqlid.sql 只读
sql_bind_replay 按 sql_id 业务仿真重放 ytop -f sql_bind_replay.sql 只读
sql_by_sqlid 按 sql_id 取 SQL 全文 sql_by_sqlid 只读
sql_mem 共享池 SQL 内存占比 ytop -f sql_mem.sql 只读
sql_pred_by_sqlid 带谓词的调优报告 ytop -f sql_pred_by_sqlid.sql 只读
sql_sqlmap_by_sqlid 调优报告 + SQLMAP 名 ytop -f sql_sqlmap_by_sqlid.sql 只读
sql_stat GV$SQLAREA / GV$SQL / AWR 统计(含 inst_id) sql_stat 只读

库状态与表空间

脚本 做什么 入口 版本 风险
datafile 数据/临时文件清单 datafile 只读
db 库打开模式、归档、角色 db 只读
db_size 表空间用量 vs autoextend 上限 db_size 只读
db_version 版本与实例启动信息 db_version 只读
tablespace 表空间 used/free(含 TEMP) tablespace 只读

第二批 · 性能史料

ASH

脚本 做什么 入口 版本 风险
ash ASH 等待类时间矩阵 ytop -f ash.sql 只读
ash_info ASH 缓冲区统计 ytop -f ash_info.sql 只读
ash_onesess 单会话 ASH 明细 ytop -f ash_onesess.sql 只读
ash_onesql 单 SQL 的 ASH 与等待类 ytop -f ash_onesql.sql 只读
ash_topsess ASH Top 会话 ytop -f ash_topsess.sql 只读
ash_topsql ASH Top SQL ytop -f ash_topsql.sql 只读
ash_topwait ASH Top 等待事件 ytop -f ash_topwait.sql 只读

AWR

脚本 做什么 入口 版本 风险
awr AWR load profile ytop -f awr.sql 只读
awr_control AWR 间隔与保留策略 ytop -f awr_control.sql 只读
awr_create 手动打 AWR 快照 ytop -f awr_create.sql 只读
awr_event_avg_time_trend AWR 事件均等待按日/时 ytop -f awr_event_avg_time_trend.sql 只读
awr_event_hour_trend AWR 等待事件按小时趋势 ytop -f awr_event_hour_trend.sql 只读
awr_event_top5 AWR Top5 等待 ytop -f awr_event_top5.sql 只读
awr_snapshot AWR 快照列表 ytop -f awr_snapshot.sql 只读
awr_sql_by_buffer_gets_by_day AWR 按日 Top SQL(gets) ytop -f awr_sql_by_buffer_gets_by_day.sql 只读
awr_sql_by_cpu_by_day AWR 按日 Top SQL(CPU) ytop -f awr_sql_by_cpu_by_day.sql 只读
awr_sql_by_disk_reads_by_day AWR 按日 Top SQL(读盘) ytop -f awr_sql_by_disk_reads_by_day.sql 只读
awr_sql_by_elapsed_by_day AWR 按日 Top SQL(elapsed) ytop -f awr_sql_by_elapsed_by_day.sql 只读
awr_top_sql_last_day 近 N 天 Top SQL + 计划 ytop -f awr_top_sql_last_day.sql 只读
awr_top_sql_last_day_opt 近 N 天 Top SQL(对象收集优化) ytop -f awr_top_sql_last_day_opt.sql 只读
awr_top_sql_last_snap 最近快照 Top SQL ytop -f awr_top_sql_last_snap.sql 只读

主机:CPU / 内存 / 进程

脚本 做什么 入口 版本 风险
memhammer 内存压测工具 ytop -f memhammer.c 高危
pidstat 进程/线程 CPU、内存、IO ytop -f pidstat.py 只读
ps_mem 进程 RSS Top ytop -f ps_mem.sh 只读

主机:磁盘与文件系统

脚本 做什么 入口 版本 风险
df_mount 文件系统/inode 容量 ytop -f df_mount.sh 只读
io_count strace IO 延迟直方图 ytop -f io_count.py 只读
iostat iostat 包装 ytop -f iostat.sh 只读
iotop 进程磁盘读写速率 ytop -f iotop.py 只读

主机:网络

脚本 做什么 入口 版本 风险
iftop 进程/线程或主机对 TCP 吞吐 ytop -f iftop.py / ytop -f iftop.c 只读
ss_summary TCP socket 汇总 ytop -f ss_summary.sh 只读
trace_net eBPF 线程级 TCP ytop -f trace_net.py 只读

主机:趋势 sar

脚本 做什么 入口 版本 风险
sar SAR 趋势 vs 基线 ytop -f sar.py / ytop -f sar.sh 只读

第三批 · 对象与 DDL

表 / 段 / 索引空间

脚本 做什么 入口 版本 风险
index 索引检索 ytop -f index.sql 只读
segment 段大小 ytop -f segment.sql 只读
table 表存储与列摘要 ytop -f table.sql 只读
table_by_sqlid sql_id 引用的表 ytop -f table_by_sqlid.sql 只读
table_column 表列定义 ytop -f table_column.sql 只读
table_column_by_sqlid sql_id 引用表的列 ytop -f table_column_by_sqlid.sql 只读
table_index 表上索引 ytop -f table_index.sql 只读
table_part_size 分区与 LOB 大小 ytop -f table_part_size.sql 只读
table_size 表+索引+LOB 大小 ytop -f table_size.sql 只读
tablespace 表空间 used/free(含 TEMP) tablespace 只读

对象与依赖

脚本 做什么 入口 版本 风险
constraint_table 表约束与引用 ytop -f constraint_table.sql 只读
dblink DB Link 列表 ytop -f dblink.sql 只读
object 按 owner/名搜对象 ytop -f object.sql 只读
object_dependency 对象直接依赖 ytop -f object_dependency.sql 只读
object_dependency_all 依赖树 CONNECT BY 正向 ytop -f object_dependency_all.sql 只读
object_dependency_recursive_object 对象依赖递归(正向,PL/SQL) ytop -f object_dependency_recursive_object.sql 只读
object_dependency_recursive_object_re... Recursive reverse dependency tree (who depends… ytop -f object_dependency_recursive_object_re... 只读
object_invalid 无效对象列表 ytop -f object_invalid.sql 只读
object_invalid_compile 无效对象编译 DDL ytop -f object_invalid_compile.sql 只读
sequence 序列列表 ytop -f sequence.sql 只读
synonym 同义词与指向 ytop -f synonym.sql 只读

DDL 导出

脚本 做什么 入口 版本 风险
ddl_dblink 导出 dblink DDL ytop -f ddl_dblink.sql 只读
ddl_function 导出 function DDL ytop -f ddl_function.sql 只读
ddl_index 导出 index DDL ytop -f ddl_index.sql 只读
ddl_mview 导出 mview DDL ytop -f ddl_mview.sql 只读
ddl_package 导出 package DDL ytop -f ddl_package.sql 只读
ddl_procedure 导出 procedure DDL ytop -f ddl_procedure.sql 只读
ddl_profile 导出 profile DDL ytop -f ddl_profile.sql 只读
ddl_role 导出 role DDL ytop -f ddl_role.sql 只读
ddl_sequence 导出 sequence DDL ytop -f ddl_sequence.sql 只读
ddl_synonym 导出 synonym DDL ytop -f ddl_synonym.sql 只读
ddl_table 导出 table DDL ytop -f ddl_table.sql 只读
ddl_tablespace 导出 tablespace DDL ytop -f ddl_tablespace.sql 只读
ddl_trigger 导出 trigger DDL ytop -f ddl_trigger.sql 只读
ddl_type 导出 type DDL ytop -f ddl_type.sql 只读
ddl_user 导出 user DDL ytop -f ddl_user.sql 只读
ddl_view 导出 view DDL ytop -f ddl_view.sql 只读

统计信息

脚本 做什么 入口 版本 风险
stats_delete 删表/分区/列统计 ytop -f stats_delete.sql 高危
stats_delete_column_histogram 只删直方图 ytop -f stats_delete_column_histogram.sql 高危
stats_delete_column_stat 删列统计 ytop -f stats_delete_column_stat.sql 高危
stats_table 收集表统计 ytop -f stats_table.sql 改配置
stats_table_by_sqlid 收集 sql_id 引用表统计 ytop -f stats_table_by_sqlid.sql 改配置
stats_table_hist 列直方图端点 ytop -f stats_table_hist.sql 只读

第四批 · HA / 备份 / 作业

主备 / 实例 / PDB

脚本 做什么 入口 版本 风险
instance 实例状态与角色 ytop -f instance.sql 只读
parameter_ha HA/备库相关参数 ytop -f parameter_ha.sql 只读
pdb CDB/PDB 容器状态 ytop -f pdb.sql 23.5 只读
standby 备库 HA 与同步状态 ytop -f standby.sql 只读
standby_switch_max_avai 切 max availability ytop -f standby_switch_max_avai.sql 高危
standby_switch_max_perf 切 max performance ytop -f standby_switch_max_perf.sql 高危
standby_switch_max_prot 切 max protection ytop -f standby_switch_max_prot.sql 高危

归档 / redo / 日志

脚本 做什么 入口 版本 风险
arch_delete_all 删除全部归档 ytop -f arch_delete_all.sql 高危
arch_dest_status 归档目的地与 gap ytop -f arch_dest_status.sql 只读
arch_list 时间窗内归档列表 ytop -f arch_list.sql 只读
checkpoint 检查点进度 ytop -f checkpoint.sql 只读
log_switch 日志切换频率图 ytop -f log_switch.sql 只读
log_switch_size redo 大小热力图 ytop -f log_switch_size.sql 只读
logfile 在线 redo 成员状态 ytop -f logfile.sql 只读
logfile_add_redo 在线加/扩 redo 组 ytop -f logfile_add_redo.sql 高危
redo_add 按规格重建 redo ytop -f redo_add.sql 高危
redo_drop 删 redo 组/文件 ytop -f redo_drop.sql 高危
redo_switch 切换 redo ytop -f redo_switch.sql 只读

闪回与备份

脚本 做什么 入口 版本 风险
backup_info 备份集与进度 ytop -f backup_info.sql 23.4 只读
flashback 闪回状态与日志 ytop -f flashback.sql 23.4 只读
flashback_on 开关闪回(需确认) ytop -f flashback_on.sql 高危

调度作业

脚本 做什么 入口 版本 风险
job_disable 禁用作业 ytop -f job_disable.sql 改配置
job_enable 启用作业 ytop -f job_enable.sql 改配置
job_info 调度作业列表 ytop -f job_info.sql 只读
job_stop 停止运行中作业 ytop -f job_stop.sql 高危

集群运维工具

脚本 做什么 入口 版本 风险
yasboot_process yasboot 集群进程 ytop -f yasboot_process.py 只读
yashan_backup yasrman 备份/归档 ytop -f yashan_backup.py 只读

第五批 · 专项工具

SQLMAP / sql_collect

同 stem 多文件时,SQL 查字典用 .sql,一键/JDBC 工具用 .py/.sh(见入口列)。

脚本 做什么 入口 版本 风险
sql_collect JDBC 收集、回放与 sqlmap 工具链(多入口) ytop -f sql_collect.sh / ytop -f sql_collect.py 只读
sql_sqlmap_by_sqlid 调优报告 + SQLMAP 名 ytop -f sql_sqlmap_by_sqlid.sql 只读
sqlmap SQLMAP 查看 / 一键工具(多入口) ytop -f sqlmap.sql / ytop -f sqlmap.py 只读
sqlmap_create_awr_by_sqlid 从 AWR 创建 SQLMAP ytop -f sqlmap_create_awr_by_sqlid.sql 只读
sqlmap_create_by_sqlid 从 sql_id 创建 SQLMAP ytop -f sqlmap_create_by_sqlid.sql 只读
sqlmap_drop 删除 SQLMAP ytop -f sqlmap_drop.sql 高危
sqlmap_gen_ddl 生成 SQLMAP DDL ytop -f sqlmap_gen_ddl.sql 只读

OUTLINE

脚本 做什么 入口 版本 风险
outline 查看 OUTLINE ytop -f outline.sql 只读
outline_create_by_sqlid 从 sql_id 建 OUTLINE ytop -f outline_create_by_sqlid.sql 只读
outline_disable 禁用 OUTLINE ytop -f outline_disable.sql 改配置
outline_drop 删除 OUTLINE ytop -f outline_drop.sql 高危
outline_enable 启用 OUTLINE ytop -f outline_enable.sql 改配置

跟踪 / 火焰图

脚本 做什么 入口 版本 风险
generate_flamegraph 由 perf 数据生成 SVG ytop -f generate_flamegraph.sh 只读
gstack yasdb 进程 native 栈 ytop -f gstack.sh 只读
perf_flamegraph perf 采样火焰图 ytop -f perf_flamegraph.sh 只读
strace strace 排障包装 ytop -f strace.sh 只读
trace_blk 块层 IO 延迟 ytop -f trace_blk.py 只读
trace_fsync fsync 延迟 ytop -f trace_fsync.py 只读
trace_io bpftrace IO 延迟 ytop -f trace_io.sh 只读
trace_net eBPF 线程级 TCP ytop -f trace_net.py 只读
trace_user_func 用户态函数跟踪 ytop -f trace_user_func.sh 只读

其它

参数与内存

脚本 做什么 入口 版本 风险
para_om_to_ini OM 生成 yasdb.ini ytop -f para_om_to_ini.py 只读
para_runlog_ini ini 与 run.log 参数对比 ytop -f para_runlog_ini.py 只读
flush_b 刷 buffer cache ytop -f flush_b.sql 高危
flush_s 刷 shared pool ytop -f flush_s.sql 高危
gv_vm 全局 VM/SGA 摘要 ytop -f gv_vm.sql 只读
mem 内存参数与 SGA/共享池 ytop -f mem.sql 只读
para_mem_to_ini 非默认参数写 SPFILE ytop -f para_mem_to_ini.sql 高危
parameter 实例参数与默认值 ytop -f parameter.sql 只读
parameter_23.5 23.5+ 实例参数 ytop -f parameter_23.5.sql 23.5 只读
parameter_ha HA/备库相关参数 ytop -f parameter_ha.sql 只读

UNDO / TEMP / YFS

脚本 做什么 入口 版本 风险
rollback_stat 回滚队列与会话 UNDO ytop -f rollback_stat.sql 只读
temp_usage TEMP/SWAP 使用 ytop -f temp_usage.sql 只读
tran_rollback 事务回滚 ETA 估算 ytop -f tran_rollback.sql 只读
undo_tb UNDO 表空间压力 ytop -f undo_tb.sql 只读
yfs_disk YFS 盘路径与挂载 ytop -f yfs_disk.sql 只读
yfs_diskgroup YFS 磁盘组空间 ytop -f yfs_diskgroup.sql 只读

用户与权限

脚本 做什么 入口 版本 风险
role 数据库角色 ytop -f role.sql 只读
user 用户与 profile ytop -f user.sql 只读
user_all_priv 用户角色+对象权限汇总 ytop -f user_all_priv.sql 只读
user_obj_priv 用户对象权限 ytop -f user_obj_priv.sql 只读
user_quota 表空间配额 ytop -f user_quota.sql 只读
user_role 用户角色(递归) ytop -f user_role.sql 只读
user_sys_priv 用户系统权限 ytop -f user_sys_priv.sql 只读
user_unlock 解锁用户 ytop -f user_unlock.sql 高危

压测模拟

脚本 做什么 入口 版本 风险
sim_dml 持续 DML 压测 ytop -f sim_dml.sql 压测
sim_long PL/SQL 长会话压测 ytop -f sim_long.sql 压测
sim_phys_read 物理读压测 ytop -f sim_phys_read.sql 压测
sim_phys_write 物理写压测 ytop -f sim_phys_write.sql 压测
sim_redo redo 压测 ytop -f sim_redo.sql 压测
sim_swap SWAP 压测 ytop -f sim_swap.sql 压测
sim_undo UNDO 压测 ytop -f sim_undo.sql 压测

诊断辅助

脚本 做什么 入口 版本 风险
analyze_slow_log 慢 SQL 日志分析 ytop -f analyze_slow_log.sh 只读
tail_yashan tail 崖山日志 ytop -f tail_yashan.sh 只读
yasql_parallel 并行 yasql 执行 ytop -f yasql_parallel.py 只读
dump_block 块 dump + trace 路径 ytop -f dump_block.sql 只读
print_table 查询竖排输出 ytop -f print_table.sql 只读

说明

  • 版本:非空表示有版本变体;ytop 通常按库版本自动解析,也可 -V
  • 多入口sqlmapsql_collectsariftop 等同 stem 对应多个文件,任选其一或按上表推荐。
  • 风险高危 / 改库 / 改配置 / 压测 类先在测试环境看清 PROMPT。
  • JDBC 壳-E 见 06-交互CLI与JDBC壳。

ytop 系列:YashanDB 200+ 脚本场景地图(值班一张表):等您坐沙发呢!

发表评论

gravatar

? razz sad evil ! smile oops grin eek shock ??? cool lol mad twisted roll wink idea arrow neutral cry mrgreen

快捷键:Ctrl+Enter