zoukankan      html  css  js  c++  java
  • 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 

    1. [mysql@odd ~]$ pt-mysql-summary  --user=david --password=123 --host=62.131.164.222  
    2.   
    3. ㈠ 第一部分  
    4.   
    5. # Percona Toolkit MySQL Summary Report #######################  
    6.               System time | 2013-06-12 08:58:40 UTC (local TZ: CST +0800)  
    7. # Instances ##################################################  
    8.   Port  Data Directory             Nice OOM Socket  
    9.   ===== ========================== ==== === ======  
    10.    3306 /home/mysql/mysql/data     0    0   /tmp/mysql.sock  
    11.      
    12. --前面这两部分展示了MySQL 实例的基本概况  
    13. --实际上、这里可以列出多个实例、不过、我这里仅有一个  
    14.     
    15.   
    16. ㈡ 第二部分  
    17.      
    18. # MySQL Executable ###########################################  
    19.        Path to executable | /home/mysql/mysql/bin/mysqld  
    20.               Has symbols | Yes  
    21. # Report On Port 3306 ########################################  
    22.                      User | david@%  
    23.                      Time | 2013-06-12 16:57:58 (CST)  
    24.                  Hostname | cdio  
    25.                   Version | 5.5.16-log Source distribution  
    26.                  Built On | Linux x86_64  
    27.                   Started | 2013-06-11 15:26 (up 1+01:31:13)  
    28.                 Databases | 6  
    29.                   Datadir | /home/mysql/mysql/data/  
    30.                 Processes | 20 connected, 2 running  
    31.               Replication | Is not a slave, has 0 slaves connected  
    32.                   Pidfile | /home/mysql/mysql/data/cdio.pid (does not exist)  
    33.                     
    34. --这部分是对 MySQL 实例(PS:这里特指3306、因为还可存在其他实例)的基本情况再次做报表、当然、比前面部分来得详细些  
    35. --有个参数需要特别注意、Time 指的是MySQL 服务器的当前时间、而不是MySQL 服务器所在的系统的时间  
    36.   
    37.   
    38. ㈢ 第三部分  
    39.              
    40. # Processlist ################################################  
    41.   
    42.   Command                        COUNT(*) Working SUM(Time) MAX(Time)  
    43.   ------------------------------ -------- ------- --------- ---------  
    44.   Query                                 1       1         0         0  
    45.   Sleep                                20       0     35000      4000  
    46.   
    47.   User                           COUNT(*) Working SUM(Time) MAX(Time)  
    48.   ------------------------------ -------- ------- --------- ---------  
    49.   david                                 1       1         0         0  
    50.   root                                  9       0         0         0  
    51.   shaoyun                              10       0         0         0  
    52.   
    53.   Host                           COUNT(*) Working SUM(Time) MAX(Time)  
    54.   ------------------------------ -------- ------- --------- ---------  
    55.   110.80.147.20                         1       1         0         0  
    56.   110.84.245.124                        6       0         0         0  
    57.   27.151.68.106                         4       0         0         0  
    58.   localhost                             9       0         0         0  
    59.   
    60.   db                             COUNT(*) Working SUM(Time) MAX(Time)  
    61.   ------------------------------ -------- ------- --------- ---------  
    62.   cdio                                 15       0         0         0  
    63.   NULL                                  5       1         0         0  
    64.   
    65.   State                          COUNT(*) Working SUM(Time) MAX(Time)  
    66.   ------------------------------ -------- ------- --------- ---------  
    67.                                        20       0         0         0  
    68.   NULL                                  1       1         0         0  
    69.     
    70.     
    71. --这部分的内容来自 show processlist 、我们先看看未经过统计的 show processlist的 内容、如下:  
    72. --  
    73. mysql> show processlist;  
    74. +------+---------+---------------------+------+---------+------+-------+------------------+  
    75. | Id   | User    | Host                | db   | Command | Time | State | Info             |  
    76. +------+---------+---------------------+------+---------+------+-------+------------------+  
    77. | 1508 | shaoyun | 130.84.225.124:4373 | cdio | Sleep   | 3523 |       | NULL             |  
    78. | 1510 | shaoyun | 130.84.225.124:4385 | cdio | Sleep   | 2322 |       | NULL             |  
    79. | 1513 | shaoyun | 27.161.68.106:2585  | NULL | Sleep   | 7866 |       | NULL             |  
    80. | 1514 | shaoyun | 27.161.68.106:2586  | NULL | Sleep   | 7866 |       | NULL             |  
    81. | 1522 | shaoyun | 27.161.68.106:3107  | NULL | Sleep   | 6861 |       | NULL             |  
    82. | 1529 | root    | localhost           | cdio | Sleep   | 4426 |       | NULL             |  
    83. | 1557 | root    | localhost:59459     | cdio | Sleep   |    7 |       | NULL             |  
    84. | 1579 | shaoyun | 165.77.122.42:56966 | cdio | Sleep   |  433 |       | NULL             |  
    85. | 1580 | root    | localhost           | cdio | Sleep   |  239 |       | NULL             |  
    86. | 1582 | shaoyun | 27.161.68.126:5640  | cdio | Sleep   |  164 |       | NULL             |  
    87. | 1583 | root    | localhost           | NULL | Query   |    0 | NULL  | show processlist |  
    88. +------+---------+---------------------+------+---------+------+-------+------------------+  
    89. --不难看出、这是对每一列都做了统计  
    90.   
    91.   
    92. ㈣ 第四部分  
    93.   
    94. # Status Counters (Wait 10 Seconds) ##########################  
    95. Variable                                Per day  Per second    295 secs  
    96.   
    97. Bytes_received                         90000000        1000        4000  
    98. Bytes_sent                            600000000        7000       22500  
    99. Com_admin_commands                            1                          
    100. Handler_rollback                             80                          
    101. Handler_update                             6000                          
    102. Handler_write                             20000                       5  
    103. Innodb_buffer_pool_pages_flushed           2250                       1  
    104. Innodb_buffer_pool_read_requests        2250000          25         125  
    105. Innodb_buffer_pool_reads                    800                          
    106. Innodb_buffer_pool_write_requests         10000                       7  
    107. Innodb_data_fsyncs                         1250                          
    108. Innodb_data_read                       15000000         175         100  
    109. Innodb_data_reads                           900                          
    110. Innodb_data_writes                         2000                       1  
    111. Innodb_data_written                    40000000         450       25000  
    112. Innodb_dblwr_pages_written                 1250                          
    113. Innodb_dblwr_writes                         150                          
    114. Innodb_log_write_requests                  1750                       1  
    115. Innodb_log_writes                           600                          
    116. Innodb_os_log_fsyncs                        700                          
    117. Innodb_os_log_written                   1000000          10         600  
    118.   
    119. --这部分内容取自 show global status 、仅收集哪些变化的量  
    120. --比较有价值的应该是第三列、取自两张快照、除以变化量、算出每秒的变化  
    121.   
    122.   
    123. ㈤ 第五部分  
    124.   
    125. # Table cache ################################################  
    126.                      Size | 64  
    127.                     Usage | 100%  
    128.                       
    129. --显示表缓存的大小、Usage表示在用百分比、这是个近视值  
    130.   
    131.   
    132.   
    133. ㈥ 第六部分                      
    134.                       
    135. # Plugins ####################################################  
    136.        InnoDB compression | ACTIVE  
    137.   
    138. --显示指定的插件程序以及它们的状态  
    139.          
    140.   
    141. ㈦ 第七部分  
    142.          
    143. # Query cache ################################################  
    144.          query_cache_type | ON  
    145.                      Size | 0.0  
    146.                     Usage | 0%  
    147.          HitToInsertRatio | 0%  
    148.   
    149. --这部分是关于查询缓存基本情况  
    150.            
    151.   
    152. ㈧ 第八部分  
    153.          
    154. # Schema #####################################################  
    155. Would you like to mysqldump -d the schema and analyze it? y/n y  
    156. There are 6 databases.  Would you like to dump all, or just one?  
    157. Type the name of the database, or press Enter to dump all of them.   
    158.   
    159.   Database Tables Views SPs Trigs Funcs   FKs Partn  
    160.   cdio         61                          65        
    161.   jiradb      130                           6        
    162.   mysql        22                                    
    163.   test                                               
    164.   
    165.   Database InnoDB MyISAM  
    166.   cdio         61         
    167.   jiradb      130         
    168.   mysql               22  
    169.   test                    
    170.   
    171.   Database BTREE  
    172.   cdio       193  
    173.   jiradb     274  
    174.   mysql       31  
    175.             c   t             
    176.             h   i  
    177.             a   m  
    178.             r   e  
    179.                 s  
    180.                 t  
    181.                 a  
    182.                 m  
    183.                 p  
    184.   
    185.   Database === ===   
    186.   cdio     114 155                                       
    187.   jiradb     1 346                   
    188.   mysql      8   3     
    189.   test                                                                          
    190.   
    191. --这部分便是 mysqldump --no-data  跑出来的数据  
    192. --第一个小部分指明每个库有多少张表、视图、存储过程、触发器、函数、外键约束等  
    193. --第二个小部分指明每个库有多少张表使用了不同的存储引擎  
    194. --第三个小部分指明每个库有多少索引类型  
    195. --第四个小部分指明每个库数据类型的分布情况、可能比较难看、因为列是竖着放、比如第一列是char  
    196.   
    197.   
    198. ㈨ 第九部分  
    199.   
    200. # Noteworthy Technologies ####################################  
    201.        Full Text Indexing | No  
    202.          Geospatial Types | No  
    203.              Foreign Keys | Yes  
    204.              Partitioning | No  
    205.        InnoDB Compression | No  
    206.                       SSL | No  
    207.      Explicit LOCK TABLES | No  
    208.            Delayed Insert | No  
    209.           XA Transactions | No  
    210.               NDB Cluster | No  
    211.       Prepared Statements | No  
    212.  Prepared statement count | 0  
    213.    
    214. --这部分显示了一些关键技术是否被用上、如:全文索引、XA等  
    215.   
    216.   
    217. (十)第十部分  
    218.   
    219. # InnoDB #####################################################  
    220.                   Version | 1.1.8  
    221.          Buffer Pool Size | 128.0M  
    222.          Buffer Pool Fill | 10%  
    223.         Buffer Pool Dirty | 0%  
    224.            File Per Table | ON  
    225.                 Page Size | 16k  
    226.             Log File Size | 2 * 5.0M = 10.0M  
    227.           Log Buffer Size | 8M  
    228.              Flush Method |   
    229.       Flush Log At Commit | 1  
    230.                XA Support | ON  
    231.                 Checksums | ON  
    232.               Doublewrite | ON  
    233.           R/W I/O Threads | 4 4  
    234.              I/O Capacity | 200  
    235.        Thread Concurrency | 0  
    236.       Concurrency Tickets | 500  
    237.        Commit Concurrency | 0  
    238.       Txn Isolation Level | REPEATABLE-READ  
    239.         Adaptive Flushing | ON  
    240.       Adaptive Checkpoint |   
    241.            Checkpoint Age | 0  
    242.              InnoDB Queue | 0 queries inside InnoDB, 0 queries in queue  
    243.        Oldest Transaction | 0 Seconds  
    244.          History List Len | 1899  
    245.                Read Views | 1  
    246.          Undo Log Entries | 0 transactions, 0 total undo, 0 max undo  
    247.         Pending I/O Reads | 0 buf pool reads, 0 normal AIO, 0 ibuf AIO, 0 preads  
    248.        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  
    249.       Pending I/O Flushes | 0 buf pool, 0 log  
    250.        Transaction States | 16xnot started  
    251.          
    252. --这部分显示了InnoDB 的基本配置  
    253. --Buffer Pool Fill和Buffer Pool Dirty是近视值  
    254.   
    255.   
    256. (11)第11部分  
    257.   
    258. # MyISAM #####################################################  
    259.                 Key Cache | 16.0M  
    260.                  Pct Used | 20%  
    261.                 Unflushed | 0%  
    262. --这部分是MyISAM的部分  
    263.   
    264. (12)第12部分  
    265.   
    266. # Security ###################################################  
    267.                     Users | 9 users, 1 anon, 4 w/o pw, 9 old pw  
    268.             Old Passwords | ON  
    269. --这部分从 grants table 的mysql表提取出来  
    270. --显示了显示了有多少用户以及各种可能的安全配置  
    271.   
    272.   
    273. (13)第13部分  
    274.   
    275. # Binary Logging #############################################  
    276.                   Binlogs | 12  
    277.                Zero-Sized | 0  
    278.                Total Size | 62.5M  
    279.             binlog_format | MIXED  
    280.          expire_logs_days | 0  
    281.               sync_binlog | 0  
    282.                 server_id | 1  
    283.              binlog_do_db |   
    284.          binlog_ignore_db |   
    285.            
    286. --这部分显示了二进制日志的配置  
    287.   
    288.   
    289. (14)第14部分  
    290.   
    291. # Noteworthy Variables #######################################  
    292.      Auto-Inc Incr/Offset | 1/1  
    293.    default_storage_engine | InnoDB  
    294.                flush_time | 0  
    295.              init_connect |   
    296.                 init_file |   
    297.                  sql_mode |   
    298.          join_buffer_size | 128k  
    299.          sort_buffer_size | 512k  
    300.          read_buffer_size | 256k  
    301.      read_rnd_buffer_size | 512k  
    302.        bulk_insert_buffer | 0.00  
    303.       max_heap_table_size | 16M  
    304.            tmp_table_size | 16M  
    305.        max_allowed_packet | 1M  
    306.              thread_stack | 256k  
    307.                       log | OFF  
    308.                 log_error | /home/mysql/mysql/log/alert.log  
    309.              log_warnings | 1  
    310.          log_slow_queries | ON  
    311. log_queries_not_using_indexes | OFF  
    312.         log_slave_updates | OFF  
    313.           
    314. --这部分展示了服务器的几个关键配置  
    315.   
    316.   
    317. (15)第15部分  
    318.   
    319. # Configuration File #########################################  
    320.               Config File | /etc/my.cnf  
    321.   
    322. [client]  
    323. port                                = 3306  
    324. socket                              = /tmp/mysql.sock  
    325.   
    326. [mysqld]  
    327. port                                = 3306  
    328. socket                              = /tmp/mysql.sock  
    329. basedir                             = /home/mysql/mysql  
    330. datadir                             = /home/mysql/mysql/data  
    331. log-error                           = /home/mysql/mysql/log/alert.log  
    332. log_slow_queries                    = /home/mysql/mysql/log/slow.log  
    333. skip-external-locking  
    334. key_buffer_size                     = 16M  
    335. max_allowed_packet                  = 1M  
    336. table_open_cache                    = 64  
    337. sort_buffer_size                    = 512K  
    338. net_buffer_length                   = 8K  
    339. read_buffer_size                    = 256K  
    340. read_rnd_buffer_size                = 512K  
    341. myisam_sort_buffer_size             = 8M  
    342. innodb_file_per_table               = 1  
    343. log-bin                             = mysql-bin  
    344. binlog_format                       = mixed  
    345. server-id                           = 1  
    346. sync_binlog                         = 1  
    347. innodb_support_xa                   = 1  
    348. innodb_flush_log_at_trx_commit      = 2  
    349.   
    350. [mysqldump]  
    351. quick  
    352. max_allowed_packet                  = 16M  
    353.   
    354. [mysql]  
    355. no-auto-rehash  
    356.   
    357. [myisamchk]  
    358. key_buffer_size                     = 20M  
    359. sort_buffer_size                    = 20M  
    360. read_buffer                         = 2M  
    361. write_buffer                        = 2M  
    362.   
    363. [mysqlhotcopy]  
    364. interactive-timeout  
    365. # The End ####################################################  
    366. --如您所见、这部分完完全全来自 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显示执行计划

  • 相关阅读:
    tmp
    【ask】ghost分区还原win7出现蓝屏,试图加载CLASSPNP驱动时出现
    手动编译svn
    【ask】Recursive process.nextTick detected. This will break in the next version of node. Please use setImmediate for recursive deferral.
    c++11小计
    入门系列-ABP CLI
    入门系列-参数验证集成
    入门系列-异常处理
    .NET Core 控制台启动失败“以一种访问权限不允许的方式做了一个访问套接字的尝试”
    入门系列-虚拟文件系统
  • 原文地址:https://www.cnblogs.com/jouny/p/3860159.html
Copyright © 2011-2022 走看看