面对一个全新的环境,作为一个Mysql DBA,首先应该了解什么?

 前段时间有高人写了一篇《面对一个全新的环境,作为一个Oracle DBA,首先应该了解什么》,本文借花献佛,总结了一些思路,如何面对



一个全新的Mysql环境。



1、先要了解当前的Mysql数据库的版本和平台以及字符集等相关信息

  1. mysql> status
  2. ————–
  3. mysql  Ver 14.14 Distrib 5.1.34, for unknown-linux-gnu (x86_64) using  EditLine wrapper
  4.  
  5. Connection id:                25874330
  6. Current database:        
  7. Current user:                
  8. SSL:                        Not in use
  9. Current pager:                stdout
  10. Using outfile:                ”
  11. Using delimiter:        ;
  12. Server version:                5.1.34-log Source distribution
  13. Protocol version:        10
  14. Connection:                Localhost via UNIX socket
  15. Server characterset:        utf8
  16. Db     characterset:        utf8
  17. Client characterset:        utf8
  18. Conn.  characterset:        utf8
  19. UNIX socket:                /tmp/mysql.sock
  20. Uptime:                        13 days 14 hours 18 min 36 sec
  21.  
  22. Threads: 7  Questions: 190708290  Slow queries: 19  Opens: 57835  Flush tables: 1  Open tables: 84  Queries per second avg: 
  23.  
  24. 162.344
  25. ————–

复制代码



2、其次要了解你的数据库中支持哪些存储引擎,5.1的话顺便查下插件情况。

  1. mysql> show engines;
  2. +————+———+—————————————————————-+————–+——+————+
  3. | Engine     | Support | Comment                                                        | Transactions | XA   | Savepoints |
  4. +————+———+—————————————————————-+————–+——+————+
  5. | InnoDB     | YES     | Supports transactions, row-level locking, and foreign keys     | YES          | YES  | YES        | 
  6. | MRG_MYISAM | YES     | Collection of identical MyISAM tables                          | NO           | NO   | NO         | 
  7. | BLACKHOLE  | YES     | /dev/null storage engine (anything you write to it disappears) | NO           | NO   | NO         | 
  8. | CSV        | YES     | CSV storage engine                                             | NO           | NO   | NO         | 
  9. | MEMORY     | YES     | Hash based, stored in memory, useful for temporary tables      | NO           | NO   | NO         | 
  10. | FEDERATED  | NO      | Federated MySQL storage engine                                 | NULL         | NULL | NULL       | 
  11. | ARCHIVE    | YES     | Archive storage engine                                         | NO           | NO   | NO         | 
  12. | MyISAM     | DEFAULT | Default engine as of MySQL 3.23 with great performance         | NO           | NO   | NO         | 
  13. +————+———+—————————————————————-+————–+——+————+
  14. 8 rows in set (0.00 sec)
  15.  
  16. mysql> show plugins;
  17. +————+———-+—————-+———+———+
  18. | Name       | Status   | Type           | Library | License |
  19. +————+———-+—————-+———+———+
  20. | binlog     | ACTIVE   | STORAGE ENGINE | NULL    | GPL     | 
  21. | partition  | ACTIVE   | STORAGE ENGINE | NULL    | GPL     | 
  22. | ARCHIVE    | ACTIVE   | STORAGE ENGINE | NULL    | GPL     | 
  23. | BLACKHOLE  | ACTIVE   | STORAGE ENGINE | NULL    | GPL     | 
  24. | CSV        | ACTIVE   | STORAGE ENGINE | NULL    | GPL     | 
  25. | FEDERATED  | DISABLED | STORAGE ENGINE | NULL    | GPL     | 
  26. | MEMORY     | ACTIVE   | STORAGE ENGINE | NULL    | GPL     | 
  27. | InnoDB     | ACTIVE   | STORAGE ENGINE | NULL    | GPL     | 
  28. | MyISAM     | ACTIVE   | STORAGE ENGINE | NULL    | GPL     | 
  29. | MRG_MYISAM | ACTIVE   | STORAGE ENGINE | NULL    | GPL     | 
  30. +————+———-+—————-+———+———+

复制代码

 



3、搞清楚这个环境是单机还是集群?

  1. mysql> show variables like ‘have_ndbcluster’; 
  2. +—————–+——-+
  3. | Variable_name   | Value |
  4. +—————–+——-+
  5. | have_ndbcluster | NO    | 
  6. +—————–+——-+
  7. 1 row in set (0.00 sec)

复制代码





4、是否配置了REPLICATION?

  1. mysql> show slave status\G;
  2. mysql> show master status\G;

复制代码





5、查看Mysql的日志模式,查看近期的慢查询日志和ERR日志。

  1. mysql> show variables like ‘log%’;
  2. +———————————+———————-+
  3. | Variable_name                   | Value                |
  4. +———————————+———————-+
  5. | log                             | OFF                  | 
  6. | log_bin                         | ON                   | 
  7. | log_bin_trust_function_creators | OFF                  | 
  8. | log_bin_trust_routine_creators  | OFF                  | 
  9. | log_error                       | /dir/hostname.err    | 
  10. | log_output                      | FILE                 | 
  11. | log_queries_not_using_indexes   | OFF                  | 
  12. | log_slave_updates               | OFF                  | 
  13. | log_slow_queries                | ON                   | 
  14. | log_warnings                    | 1                    | 
  15. +———————————+———————-+

复制代码

 



6、查看Mysql当前有哪些触发器和存储过程

  1. mysql> show triggers;
  2. mysql> show procedure status;

复制代码





7、是否支持分区,如果支持哪些使用了分区表

  1. mysql> show variables like ‘have_part%’;
  2. +——————-+——-+
  3. | Variable_name     | Value |
  4. +——————-+——-+
  5. | have_partitioning | YES   | 
  6. +——————-+——-+
  7. 1 row in set (0.00 sec)
  8.  
  9. mysql> select TABLE_NAME from information_schema.PARTITIONS where PARTITION_NAME is not null;

复制代码





8、有多少用户拥有超级权限,是否有密码为空(ROOT密码默认为空),密码为空马上处理。

 

  1. mysql> select * from information_schema.USER_PRIVILEGES where PRIVILEGE_TYPE=’SUPER’;
  2. mysql> select host,User,Password from mysql.user where Password=”;
  3. +————-+——+———-+
  4. | host        | User | Password |
  5. +————-+——+———-+
  6. | localhost   | root |          | 
  7. | 127.0.0.1   | root |          | 
  8. +————-+——+———-+
  9. mysql> delete from mysql.user where Password=”;flush PRIVILEGES;

复制代码





9.show processlist

执行一会show processlist,看看 Mysql 能有多少并发,一般都是什么sql。



10、更进一步,Mysql的备份方法和策略是什么?网络环境的配置是如何的?



11、跑几个性能分析报告,看看最近系统的运行状态如何,例如用mysqlreport。



OK,以上信息基本上对你新接触的这个系统有了一个大概的了解,接下来你再慢慢的深入分析,然后制订出一套符合实际情况的运维规范来。



当然,这只是个人的一些心得和体会,每个人的认识的角度是不一样的,欢迎大家继续补充完善。