MySQL DBA运维工具之Orzdba
一.Orzdba简介
Orzdba是淘宝DBA团队使用perl语言开发出来的一个脚本,可以监测系统,cpu,磁盘,innodb引擎内部实时信息的运维自动化工具,非常实用。github上有大佬用python改写了,直接clone下来即可使用。 linux下直接执行`git clone https://github.com/cnlubo/orzdba`即可,执行`tree orzdba/`查看目录下文件,最主要的就是orzdba.py这个脚本了。
orzdba/
├── gl.py
├── gl.pyc
├── LICENSE
├── orzdba.py
└── README.md
二.安装和使用
使用方法简介:
./orzdba.py --help
usage: orzdba.py [-h] [-i INTERVAL] [-t] [-sys] [-l] [-c] [-d DISK] [-n NET]
[-s] [-com] [-innodb_rows] [-innodb_pages] [-innodb_data]
[-innodb_log] [-innodb_status] [-innodb] [-T] [-B] [-rt]
[-hit] [-mysql] [-P PORT] [-S SOCKET] [-p PWD] [-C COUNT]
[-L LOGFILE] [-logfile_by_day] [-lazy] [--nocolor]
Created By lubo 454331202@qq.com
optional arguments:
-h, --help show this help message and exit #打印帮助
-i INTERVAL, --interval INTERVAL Time(second) Interval. #输出信息间隔(s)
-t, --time Print The Current Time. #打印当前时间
-sys print SysInfo (include -l,-c,-s). #打印系统信息
-l, --load Print Load Info. #打印负载信息
-c, --cpu Print Cpu Info. #打印cpu信息
-d DISK, --disk DISK Print Disk Info. #打印磁盘信息
-n NET, --net NET Print Net Info.Time. #打印网络信息
-s, --swap Print The Swap Info. #打印swap信息
-com print mysql status. #打印mysql状态
-innodb_rows Print Innodb Rows Status. #打印innodb行状态
-innodb_pages Print Innodb Buffer Pool Pages Status. #打印innodb buffer pool页状态
-innodb_data Print Innodb Data Status. #打印innodb数据状态
-innodb_log Print Innodb Log Status. #打印innodb日志状态
-innodb_status Print Innodb Status from Command: "Show Engine Innodb Status". #打印innodb所有状态
-innodb Print Innodb Info. #打印innodb信息
-T, --threads Print Threads Status. #打印线程信息
-B, --bytes Print Bytes Status. #打印收发数据信息
-rt Print MySQL DB RT. #打印数据响应信息
-hit Print Innodb Hit% #打印innodb缓存命中率
-mysql print SysInfo (Print MySQLInfo (include -t,-com,-hit,-T,-B). #打印msyql系统信息,包括-t,-com,-hit,-T,-B信息
-P PORT, --port PORT Port number to use for mysql connection(default 3306). #mysql端口
-S SOCKET, --socket SOCKET Socket file to use for mysql connection. #mysql socket文件
-p PWD, --pwd PWD root user password. #mysql 密码
-C COUNT, --count COUNT Times. #打印的次数
-L LOGFILE, --logfile LOGFILE ath of logfile. #信息输出到日志文件的位置
-logfile_by_day one day a logfile. #日志切割,每天一个
-lazy Print Info (include -t,-l,-c,-s,-m,-hit). #懒人模式,包含 -t,-l,-c,-s,-m,-hit信息
--nocolor Print NO color. #不打印颜色
三.使用示例
-lazy懒人模式,./orzdba.py -S /tmp/mysql.sock57 -lazy
.=================================================.
| Welcome to use the orzdba tool ! |
| Yep...Chinese English~ |
| Created by lubo qq:454331202~ |
'=============== Date: 2020-09-18 ================'
HOST: mysql01 IP: 10.0.0.51
Ver : 5.7.29-log MySQL Community Server (GPL)
DB : dbt3|emp|performance_schema|sbtest|sys|world
Var : binlog_format[ROW]max_connect_errors[10000]max_connections[1000]
max_user_connections[0]open_files_limit[65536]sync_binlog[1]
table_definition_cache[4096]table_open_cache[4096]thread_cache_size[64]
innodb_adaptive_flushing[ON]innodb_adaptive_hash_index[ON]innodb_buffer_pool_size[128M]
innodb_file_per_table[ON]innodb_flush_log_at_trx_commit[1]innodb_flush_method[O_DIRECT]
innodb_io_capacity[1000]innodb_lock_wait_timeout[5]innodb_log_buffer_size[16M]
innodb_log_file_size[48M]innodb_log_files_in_group[2]innodb_max_dirty_pages_pct[75.000000]
innodb_open_files[4096]innodb_read_io_threads[4]innodb_thread_concurrency[0]
innodb_write_io_threads[4]
-------- -----load-avg---- ---cpu-usage--- ---swap--- -----------QPS--TPS-----------
time | 1m 5m 15m |usr sys idl iow| si so| ins upd del sel iud|
17:12:09| 0.00 0.01 0.05| 5 3 90 1| 0 0| 0 0 0 0 0|
17:12:10| 0.00 0.01 0.05| 1 3 95 1| 24 0| 0 0 0 1 0|
17:12:11| 0.00 0.01 0.05| 1 2 97 0| 32 0| 0 0 0 1 0|
17:12:12| 0.00 0.01 0.05| 2 3 95 0| 48 0| 0 0 0 1 0|
17:12:13| 0.00 0.01 0.05| 2 2 96 0| 16 0| 0 0 0 1 0|
17:12:14| 0.00 0.01 0.05| 1 3 86 10| 24 0| 0 0 0 1 0|
17:12:15| 0.00 0.01 0.05| 1 2 96 1| 40 0| 0 0 0 1 0|
-innodb查看innodb引擎信息,./orzdba.py -S /tmp/mysql.sock57 -innodb
.=================================================.
| Welcome to use the orzdba tool ! |
| Yep...Chinese English~ |
| Created by lubo qq:454331202~ |
'=============== Date: 2020-09-18 ================'
HOST: mysql01 IP: 10.0.0.51
Ver : 5.7.29-log MySQL Community Server (GPL)
DB : dbt3|emp|performance_schema|sbtest|sys|world
Var : binlog_format[ROW]max_connect_errors[10000]max_connections[1000]
max_user_connections[0]open_files_limit[65536]sync_binlog[1]
table_definition_cache[4096]table_open_cache[4096]thread_cache_size[64]
innodb_adaptive_flushing[ON]innodb_adaptive_hash_index[ON]innodb_buffer_pool_size[128M]
innodb_file_per_table[ON]innodb_flush_log_at_trx_commit[1]innodb_flush_method[O_DIRECT]
innodb_io_capacity[1000]innodb_lock_wait_timeout[5]innodb_log_buffer_size[16M]
innodb_log_file_size[48M]innodb_log_files_in_group[2]innodb_max_dirty_pages_pct[75.000000]
innodb_open_files[4096]innodb_read_io_threads[4]innodb_thread_concurrency[0]
innodb_write_io_threads[4]
-----------innodb bp pages status-- -----innodb data status---- --innodb log-- his --log(byte)-- read ---query---
time | data free dirty flush| reads writes read written|fsyncs written| list uflush uckpt view inside que|
17:12:56| 0 0 0 0| 0 0 0 0| 0 0| 0 0.0b 0.0b 0 0 0|
17:12:57| 3899 4175 0 0| 0 0 0 0| 0 0| 2541 0.0b 9.0b 0 0 0|
17:12:58| 3899 4175 0 0| 0 0 0 0| 0 0| 2541 0.0b 9.0b 0 0 0|
17:12:59| 3899 4175 0 0| 0 0 0 0| 0 0| 2541 0.0b 9.0b 0 0 0|
17:13:00| 3899 4175 0 0| 0 0 0 0| 0 0| 2541 0.0b 9.0b 0 0 0|
17:13:02| 3899 4175 0 0| 0 0 0 0| 0 0| 2541 0.0b 9.0b 0 0 0|
17:13:03| 3899 4175 0 0| 0 0 0 0| 0 0| 2541 0.0b 9.0b 0 0 0|
总体来说,Orzdba还是非常实用的一个脚本工具,在以后工作中多多实践。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现