MySQL DBA 刚入职时如何快速拥抱新的环境

   方法何其多、这里介绍的是懒人做法、也就是、借助工具
   但是、生产环境是不能随便安装程序的、肿么办?
   没关系、我们伟大的percona 已经为我们考虑周详鸟
   
   这里、我们要借助三个工具:
   
   ① pt-summary:绿色纯天然、免安装、下载即用、收集MySQL Server所在OS的基本信息
   ② pt-mysql-summary:本地安装、然后远程收集MySQL Server的基本信息
   ③ innotop:将MySQL Server的信息分析的粒度做细、让你深入观察和监控MySQL Server、同样可以远程监控 
   
   
   关于 pt-summary、这个工具几乎把这个服务器的配置从里到外扒了遍、
   而且、所显示的参数也非常明了、有兴趣的朋友到官网下个、跑一下就出来
   
   
   下面重点介绍的是 pt-mysql-summary和innotop
   

   先瞧瞧 pt-mysql-summary 

[mysql@odd ~]$ pt-mysql-summary  --user=david --password=123 --host=62.131.164.222

㈠ 第一部分

# Percona Toolkit MySQL Summary Report #######################
              System time | 2013-06-12 08:58:40 UTC (local TZ: CST +0800)
# Instances ##################################################
  Port  Data Directory             Nice OOM Socket
  ===== ========================== ==== === ======
   3306 /home/mysql/mysql/data     0    0   /tmp/mysql.sock
   
--前面这两部分展示了MySQL 实例的基本概况
--实际上、这里可以列出多个实例、不过、我这里仅有一个
  

㈡ 第二部分
   
# MySQL Executable ###########################################
       Path to executable | /home/mysql/mysql/bin/mysqld
              Has symbols | Yes
# Report On Port 3306 ########################################
                     User | david@%
                     Time | 2013-06-12 16:57:58 (CST)
                 Hostname | cdio
                  Version | 5.5.16-log Source distribution
                 Built On | Linux x86_64
                  Started | 2013-06-11 15:26 (up 1+01:31:13)
                Databases | 6
                  Datadir | /home/mysql/mysql/data/
                Processes | 20 connected, 2 running
              Replication | Is not a slave, has 0 slaves connected
                  Pidfile | /home/mysql/mysql/data/cdio.pid (does not exist)
                  
--这部分是对 MySQL 实例(PS:这里特指3306、因为还可存在其他实例)的基本情况再次做报表、当然、比前面部分来得详细些
--有个参数需要特别注意、Time 指的是MySQL 服务器的当前时间、而不是MySQL 服务器所在的系统的时间


㈢ 第三部分
           
# Processlist ################################################

  Command                        COUNT(*) Working SUM(Time) MAX(Time)
  ------------------------------ -------- ------- --------- ---------
  Query                                 1       1         0         0
  Sleep                                20       0     35000      4000

  User                           COUNT(*) Working SUM(Time) MAX(Time)
  ------------------------------ -------- ------- --------- ---------
  david                                 1       1         0         0
  root                                  9       0         0         0
  shaoyun                              10       0         0         0

  Host                           COUNT(*) Working SUM(Time) MAX(Time)
  ------------------------------ -------- ------- --------- ---------
  110.80.147.20                         1       1         0         0
  110.84.245.124                        6       0         0         0
  27.151.68.106                         4       0         0         0
  localhost                             9       0         0         0

  db                             COUNT(*) Working SUM(Time) MAX(Time)
  ------------------------------ -------- ------- --------- ---------
  cdio                                 15       0         0         0
  NULL                                  5       1         0         0

  State                          COUNT(*) Working SUM(Time) MAX(Time)
  ------------------------------ -------- ------- --------- ---------
                                       20       0         0         0
  NULL                                  1       1         0         0
  
  
--这部分的内容来自 show processlist 、我们先看看未经过统计的 show processlist的 内容、如下:
--
mysql> show processlist;
+------+---------+---------------------+------+---------+------+-------+------------------+
| Id   | User    | Host                | db   | Command | Time | State | Info             |
+------+---------+---------------------+------+---------+------+-------+------------------+
| 1508 | shaoyun | 130.84.225.124:4373 | cdio | Sleep   | 3523 |       | NULL             |
| 1510 | shaoyun | 130.84.225.124:4385 | cdio | Sleep   | 2322 |       | NULL             |
| 1513 | shaoyun | 27.161.68.106:2585  | NULL | Sleep   | 7866 |       | NULL             |
| 1514 | shaoyun | 27.161.68.106:2586  | NULL | Sleep   | 7866 |       | NULL             |
| 1522 | shaoyun | 27.161.68.106:3107  | NULL | Sleep   | 6861 |       | NULL             |
| 1529 | root    | localhost           | cdio | Sleep   | 4426 |       | NULL             |
| 1557 | root    | localhost:59459     | cdio | Sleep   |    7 |       | NULL             |
| 1579 | shaoyun | 165.77.122.42:56966 | cdio | Sleep   |  433 |       | NULL             |
| 1580 | root    | localhost           | cdio | Sleep   |  239 |       | NULL             |
| 1582 | shaoyun | 27.161.68.126:5640  | cdio | Sleep   |  164 |       | NULL             |
| 1583 | root    | localhost           | NULL | Query   |    0 | NULL  | show processlist |
+------+---------+---------------------+------+---------+------+-------+------------------+
--不难看出、这是对每一列都做了统计


㈣ 第四部分

# Status Counters (Wait 10 Seconds) ##########################
Variable                                Per day  Per second    295 secs

Bytes_received                         90000000        1000        4000
Bytes_sent                            600000000        7000       22500
Com_admin_commands                            1                        
Handler_rollback                             80                        
Handler_update                             6000                        
Handler_write                             20000                       5
Innodb_buffer_pool_pages_flushed           2250                       1
Innodb_buffer_pool_read_requests        2250000          25         125
Innodb_buffer_pool_reads                    800                        
Innodb_buffer_pool_write_requests         10000                       7
Innodb_data_fsyncs                         1250                        
Innodb_data_read                       15000000         175         100
Innodb_data_reads                           900                        
Innodb_data_writes                         2000                       1
Innodb_data_written                    40000000         450       25000
Innodb_dblwr_pages_written                 1250                        
Innodb_dblwr_writes                         150                        
Innodb_log_write_requests                  1750                       1
Innodb_log_writes                           600                        
Innodb_os_log_fsyncs                        700                        
Innodb_os_log_written                   1000000          10         600

--这部分内容取自 show global status 、仅收集哪些变化的量
--比较有价值的应该是第三列、取自两张快照、除以变化量、算出每秒的变化


㈤ 第五部分

# Table cache ################################################
                     Size | 64
                    Usage | 100%
                    
--显示表缓存的大小、Usage表示在用百分比、这是个近视值



㈥ 第六部分                    
                    
# Plugins ####################################################
       InnoDB compression | ACTIVE

--显示指定的插件程序以及它们的状态
       

㈦ 第七部分
       
# Query cache ################################################
         query_cache_type | ON
                     Size | 0.0
                    Usage | 0%
         HitToInsertRatio | 0%

--这部分是关于查询缓存基本情况
         

㈧ 第八部分
       
# Schema #####################################################
Would you like to mysqldump -d the schema and analyze it? y/n y
There are 6 databases.  Would you like to dump all, or just one?
Type the name of the database, or press Enter to dump all of them. 

  Database Tables Views SPs Trigs Funcs   FKs Partn
  cdio         61                          65      
  jiradb      130                           6      
  mysql        22                                  
  test                                             

  Database InnoDB MyISAM
  cdio         61       
  jiradb      130       
  mysql               22
  test                  

  Database BTREE
  cdio       193
  jiradb     274
  mysql       31
            c   t           
            h   i
            a   m
            r   e
                s
                t
                a
                m
                p

  Database === === 
  cdio     114 155                                     
  jiradb     1 346                 
  mysql      8   3   
  test                                                                        

--这部分便是 mysqldump --no-data  跑出来的数据
--第一个小部分指明每个库有多少张表、视图、存储过程、触发器、函数、外键约束等
--第二个小部分指明每个库有多少张表使用了不同的存储引擎
--第三个小部分指明每个库有多少索引类型
--第四个小部分指明每个库数据类型的分布情况、可能比较难看、因为列是竖着放、比如第一列是char


㈨ 第九部分

# Noteworthy Technologies ####################################
       Full Text Indexing | No
         Geospatial Types | No
             Foreign Keys | Yes
             Partitioning | No
       InnoDB Compression | No
                      SSL | No
     Explicit LOCK TABLES | No
           Delayed Insert | No
          XA Transactions | No
              NDB Cluster | No
      Prepared Statements | No
 Prepared statement count | 0
 
--这部分显示了一些关键技术是否被用上、如:全文索引、XA等


(十)第十部分

# InnoDB #####################################################
                  Version | 1.1.8
         Buffer Pool Size | 128.0M
         Buffer Pool Fill | 10%
        Buffer Pool Dirty | 0%
           File Per Table | ON
                Page Size | 16k
            Log File Size | 2 * 5.0M = 10.0M
          Log Buffer Size | 8M
             Flush Method | 
      Flush Log At Commit | 1
               XA Support | ON
                Checksums | ON
              Doublewrite | ON
          R/W I/O Threads | 4 4
             I/O Capacity | 200
       Thread Concurrency | 0
      Concurrency Tickets | 500
       Commit Concurrency | 0
      Txn Isolation Level | REPEATABLE-READ
        Adaptive Flushing | ON
      Adaptive Checkpoint | 
           Checkpoint Age | 0
             InnoDB Queue | 0 queries inside InnoDB, 0 queries in queue
       Oldest Transaction | 0 Seconds
         History List Len | 1899
               Read Views | 1
         Undo Log Entries | 0 transactions, 0 total undo, 0 max undo
        Pending I/O Reads | 0 buf pool reads, 0 normal AIO, 0 ibuf AIO, 0 preads
       Pending I/O Writes | 0 buf pool (0 LRU, 0 flush list, 0 page); 0 AIO, 0 sync, 0 log IO (0 log, 0 chkp); 0 pwrites
      Pending I/O Flushes | 0 buf pool, 0 log
       Transaction States | 16xnot started
       
--这部分显示了InnoDB 的基本配置
--Buffer Pool Fill和Buffer Pool Dirty是近视值


(11)第11部分

# MyISAM #####################################################
                Key Cache | 16.0M
                 Pct Used | 20%
                Unflushed | 0%
--这部分是MyISAM的部分

(12)第12部分

# Security ###################################################
                    Users | 9 users, 1 anon, 4 w/o pw, 9 old pw
            Old Passwords | ON
--这部分从 grants table 的mysql表提取出来
--显示了显示了有多少用户以及各种可能的安全配置


(13)第13部分

# Binary Logging #############################################
                  Binlogs | 12
               Zero-Sized | 0
               Total Size | 62.5M
            binlog_format | MIXED
         expire_logs_days | 0
              sync_binlog | 0
                server_id | 1
             binlog_do_db | 
         binlog_ignore_db | 
         
--这部分显示了二进制日志的配置


(14)第14部分

# Noteworthy Variables #######################################
     Auto-Inc Incr/Offset | 1/1
   default_storage_engine | InnoDB
               flush_time | 0
             init_connect | 
                init_file | 
                 sql_mode | 
         join_buffer_size | 128k
         sort_buffer_size | 512k
         read_buffer_size | 256k
     read_rnd_buffer_size | 512k
       bulk_insert_buffer | 0.00
      max_heap_table_size | 16M
           tmp_table_size | 16M
       max_allowed_packet | 1M
             thread_stack | 256k
                      log | OFF
                log_error | /home/mysql/mysql/log/alert.log
             log_warnings | 1
         log_slow_queries | ON
log_queries_not_using_indexes | OFF
        log_slave_updates | OFF
        
--这部分展示了服务器的几个关键配置


(15)第15部分

# Configuration File #########################################
              Config File | /etc/my.cnf

[client]
port                                = 3306
socket                              = /tmp/mysql.sock

[mysqld]
port                                = 3306
socket                              = /tmp/mysql.sock
basedir                             = /home/mysql/mysql
datadir                             = /home/mysql/mysql/data
log-error                           = /home/mysql/mysql/log/alert.log
log_slow_queries                    = /home/mysql/mysql/log/slow.log
skip-external-locking
key_buffer_size                     = 16M
max_allowed_packet                  = 1M
table_open_cache                    = 64
sort_buffer_size                    = 512K
net_buffer_length                   = 8K
read_buffer_size                    = 256K
read_rnd_buffer_size                = 512K
myisam_sort_buffer_size             = 8M
innodb_file_per_table               = 1
log-bin                             = mysql-bin
binlog_format                       = mixed
server-id                           = 1
sync_binlog                         = 1
innodb_support_xa                   = 1
innodb_flush_log_at_trx_commit      = 2

[mysqldump]
quick
max_allowed_packet                  = 16M

[mysql]
no-auto-rehash

[myisamchk]
key_buffer_size                     = 20M
sort_buffer_size                    = 20M
read_buffer                         = 2M
write_buffer                        = 2M

[mysqlhotcopy]
interactive-timeout
# The End ####################################################
--如您所见、这部分完完全全来自 my.cnf、这里不赘述了



   其实分析完 pt-mysql-summary 之后、你基本就已经对你即将管理的Server知根知底了
   接下来的 Innotop 能给您想知道的部分锦上添花的作用
   
   更多了解请查询:code.google.com/p/innotop
   
   ㈠ 安装
   
   # perl -MCPAN -eshell
   CPAN> install Time::HiRes
   CPAN> install Term::ReadKey
   CPAN> install DBI
   CPAN> install DBD::mysql
   
   # wget https://innotop.googlecode.com/files/innotop-1.9.0.tar.gz
   # tar -zxv -f innotop-1.9.0.tar.gz
   # cd innotop-1.9.0
   # perl Makefile.PL
   # make install
   
   
   ㈡ 进入
   
   # innotop -uroot -p123 -h127.0.0.1
   
   
   ㈢ 使用
   
   进入第一件事情就是按 ? 号、然后innotop就会自个教你如何使用
   
   
   
   举个例子、如果你想查询MySQL当前执行的SQL、您可以这么做:
   按 Q 进入 Query list模式
   然后、按 e并输入thread ID显示执行计划



By David Lin

2013-06-13

Good Luck

├─新版MySQL DBA 课件ppt │ 第一课数据库介绍篇.pdf │ 第七课MySQL数据库设计.pdf │ 第三十一课percona-toolkits 的实战及自动化.pdf │ 第三课MySQL授权认证.pdf │ 第九课MySQL字符集.pdf │ 第二十一课MySQL常见错误-converted.pdf │ 第二十课MySQL索引和调优.pdf │ 第二课MySQL门介绍.pdf │ 第五课MySQL常用函数介绍.pdf │ 第八课InnoDB内核.pdf │ 第六课SQL高级应用.pdf │ 第十一课MySQL表分区8.0.pdf │ 第十七课Elasticsearch分享-张亚V4.pdf │ 第十三课MySQL5.7高可用架构之Mycat.pdf │ 第十三课MySQL8.0高可用架构之Mycat.pdf │ 第十九课MySQL备份和恢复.pdf │ 第十二课MySQL5.7复制.pdf │ 第十二课MySQL8.0复制.pdf │ 第十五课MySQL8.0高可用架构之MHA和MMM.pdf │ 第十五课MySQL高可用架构之MHA和MMM.pdf │ 第十八课mongo分享-张亚V1.pdf │ 第十六课Redis分享-张亚V2.pdf │ 第十四课MySQL8.0高可用架构之Atlas.pdf │ 第十课MySQL8.0锁机制和事务.pdf │ 第十课MySQL锁机制和事务.pdf │ 第四课SQL基础语法.pdf │ ├─新版MySQL DBA综合实战班 第01天 │ 0_MySQL高级DBA公开课视频.avi │ 1_数据库通用知识介绍.avi │ 2_MySQL8常规安装.avi │ 3_MySQL8非常规安装.avi │ 4_MySQL8常见客户端和启动相关参数.avi │ ├─新版MySQL DBA综合实战班 第02天 │ 10_MySQL Update课堂练习.mp4 │ 1_课后作业讲解.mp4 │ 2_MySQL权限系统介绍.mp4 │ 3_MySQL授权用户和权限回收.mp4 │ 4_MySQL8新的密码认证方式和客户端链接.mp4 │ 5_MySQL Create命令.mp4 │ 6_MySQL CreateTable命令.mp4 │ 7_课堂练习1.mp4 │ 8_MySQL Insert命令.mp4 │ 9_MySQL Insert课堂练习和Update命令.mp4 │ ├─新版MySQL DBA综合实战班 第03天 │ 1_课堂作业讲解.mp4 │ 2_MySQL Delete语法讲解.mp4 │ 3_MySQL Select语法讲解.mp4 │ 4_MySQL Select多表连接讲解.mp4 │ 5_MySQL其他常用命令讲解.mp4 │ 6_MySQL操作符和常用函数.mp4 │ 7_MySQL常用字符串和日期函数.mp4 │ delete.txt │ MySQL高级DBA大作业1.docx │ 作业.docx │ ├─新版MySQL DBA综合实战班 第04天 │ 1_课后作业讲解.mp4 │ 2_SQL课堂强化练习1.mp4 │ 3_SQL课堂强化练习2.mp4 │ 4_存储过程函数概念和创建讲解.mp4 │ 5_存储过程函数流程控制语句讲解.mp4 │ ├─新版MySQL DBA综合实战班 第05天 │ 1_课后作业讲解.mp4 │ 2_MySQL游标讲解.mp4 │ 3_MySQL触发器.mp4 │ 4_MySQL触发器课堂强化练习.mp4 │ 5_MySQL数字和间类型.mp4 │ 6_MySQL字符串类型.mp4 │ 7_MySQL存储引擎.mp4 │ 8_MySQL第三范式设计讲解.mp4 │ 9_MySQL数据库设计工具.mp4 │ ├─新版MySQL DBA综合实战班 第06天 │ 1_课堂作业讲解.mp4 │ 2_InnoDB内核之事务和多版本控制.mp4 │ 3_InnoDB底层文件存储和体系结构.mp4 │ 4_InnoDB体系结构.mp4 │ 5_InnoDB存储引擎配置.mp4 │ 6_InnoDB统计资料和其他配置.mp4 │ 7_InnoDB锁原理和锁等待问题定位.mp4 │ ├─新版MySQL DBA综合实战班 第07天 │ 1_课后作业讲解.mp4 │ 2_MySQL锁机制原理讲解.mp4 │ 3_MySQL锁相关参数设置.mp4 │ 4_InnoDB事务隔离级别详解.mp4 │ 5_InnoDB死锁发生原理和规避.mp4 │ 6_MySQL字符集和排序规则.mp4 │ 作业.docx │ 锁等待分析.txt │ ├─新版MySQL DBA综合实战班 第08天 │ 1_课堂作业讲解.mp4 │ 2_MySQL乱码原理讲解.mp4 │ 3_MySQL排序规则权重.mp4 │ 4_MySQL字符集空间消耗.mp4 │ 5_MySQL表分区介绍和优势.mp4 │ 6_MySQL表分区类型.mp4 │ 7_MySQL字表分区和NULL值特殊处理.mp4 │ 8_MySQL表分区管理.mp4 │ 作业.docx │ 作业及答案.docx │ ├─新版MySQL DBA综合实战班 第09天 │ 1_课堂作业讲解.mp4 │ 2_MySQL复制原理.mp4 │ 3_MySQL传统复制原理和搭建.mp4 │ 4_MySQL复制搭建part2.mp4 │ 5_MySQL复制相关参数.mp4 │ 6_MySQL复制状态和延迟复制.mp4 │ 7_MySQL半同步复制.mp4 │ 作业.docx │ ├─新版MySQL DBA综合实战班 第10天 │ │ 1_课后作业讲解.mp4 │ │ 2_MySQL传统复制手动切换和GTID复制原理及切换.mp4 │ │ 3_Mycat原理和schema配置讲解.mp4 │ │ 4_Mycat schema配置讲解.mp4 │ │ 5_Mycat企业高可用配置.mp4 │ │ 作业.docx │ │ │ └─MySQL DBA 课堂命令-复制和Mycat │ mysql-master.log │ mysql-master2.log │ mysql-mycat.log │ mysql-slave1.log │ mysql-slave2.log │ ├─新版MySQL DBA综合实战班 第11天 │ │ 1_课后作业讲解.mp4 │ │ 2_MyCat分库分表原理和常见方法.mp4 │ │ 3_MyCat管理操作.mp4 │ │ 4_Atlas配置和读写分离实现.mp4 │ │ 5_Atlas分库分表实现.mp4 │ │ 6_MHA搭建和故障切换原理剖析.mp4 │ │ │ └─MySQL DBA_课堂命令-Mycat和Atlas和MHA │ mysql-master.log │ mysql-mycat.log │ mysql-slave1.log │ mysql-slave2.log │ ├─新版MySQL DBA综合实战班 第12天 │ 01ES介绍.docx │ 01es介绍.mp4 │ 01redis介绍.mp4 │ 02es增删改查操作命令.mp4 │ 02ES的功能适用场景以及特点介绍.docx │ 02redis应用场景.mp4 │ 03ES的核心概念.docx │ 03redis单实例安装.mp4 │ 03集群分片副本操作.mp4 │ 04es集群运维.mp4 │ 04redis数据类型操作.mp4 │ 04安装search-guard.docx │ 05redis主从和哨兵操作.mp4 │ 06reids集群创建收缩扩容.mp4 │ 07redis运维工具.mp4 │ Elasticsearch分享V2.pdf │ Elasticsearch分享V4.pdf │ ES分享试验环境.docx │ ES操作.txt │ Redis分享-张亚V2.pdf │ 日志收集.txt │ 监控和分词.txt │ 防脑裂配置.txt │ ├─新版MySQL DBA综合实战班 第13天-mongo │ 01mongo介绍.mp4 │ 02mongo安装配置优化.mp4 │ 03mongo增删改查.mp4 │ 04授权认证和索引.mp4 │ 05mongo常用工具介绍.mp4 │ 06mongo副本集升级备份恢复.mp4 │ 07ELK模板收集mongo日志.mp4 │ mongodb.jpg │ Mongodb分享-贾海娇.pdf │ mongo数据库分享-张亚V1.pdf │ monogdb.conf │ ├─新版MySQL DBA综合实战班 第14天 │ │ 1_MHA手工切换和GTID支持.mp4 │ │ 2_MMM高可用架构.mp4 │ │ 3_MySQL备份概念.mp4 │ │ 4_Mysqldump备份原理.mp4 │ │ 5_Mysqldump基于表备份.mp4 │ │ 6_MySQL全量恢复和日志增量恢复.mp4 │ │ 7_xtrabackup全量和增量备份恢复.mp4 │ │ 作业及答案.docx │ │ │ └─MySQL DBA堂命令-mha和备份恢复 │ mysql-master_05-18_10-03-09.log │ mysql-master_05-18_14-02-01.log │ mysql-mycat_05-18_10-03-02.log │ mysql-slave1_05-18_10-03-14.log │ mysql-slave2_05-18_10-03-20.log │ ├─新版MySQL DBA综合实战班 第15天 │ │ 1_课后作业讲解.mp4 │ │ 2_MySQL索引原理介绍.mp4 │ │ 3_MySQL索引类型介绍.mp4 │ │ 4_MySQL索引底层结构和执行计划.mp4 │ │ 5_MySQL索引优化原则.mp4 │ │ 6_MySQL运维常见错误part1.mp4 │ │ 7_MySQL运维常见错误part2.mp4 │ │ ERROR1040_1917970.1.pdf │ │ ERROR1062_1593526.1.pdf │ │ ERROR1205_1911871.1.pdf │ │ ERROR2002_1023190.1.pdf │ │ How_to_Reset_the_RootPassword.pdf │ │ How_to_Reset_the_RootPassword5.7.pdf │ │ PacketTooLarge.pdf │ │ │ └─MySQL DBA课堂命令-索引调优和运维常见错误 │ mysql-master-05-25_11-10-39.log
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值