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还是非常实用的一个脚本工具,在以后工作中多多实践。

posted @   yang417  阅读(1845)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示