MySQL 性能、监控与灾难恢复(mysql安装教程)

网友投稿 276 2022-07-26

监控方案:

up.time    http://uptimesoftware.com/    收费

Cacti        http://cacti.net/

KDE System Guard(KSysGuard)

http://docs.kde.org/stable/en/kdebase-workspace/ksysguard/index.html

Gnome System Monitor

http://library.gnome.org/users/gnome-system-monitor/

Nagios    http://nagios.org/

Shinken  http://shinken-monitoring.org/  (个人觉得比nagios好用)

Sun Management Center

http://sun.com/software/products/sunmanagementcenter/index.xml

MySQL Enterprise Monitor

http://mysql.com/products/enterprise/monitor.html

Linux和UNIX系统监控工具

ps           系统进程

top         cpu使用率排序的活动进程

vmstat    显示分页、内存、块传输、cpu活动相关

uptime   显示系统运行时间及1、5、15分钟系统平均负载

free         显示内存使用率

iostat      显示平均磁盘活动和处理器负载    centos: yum install sysstat

sar           系统活动报告、允许收集和报告各种系统活动

pmap      显示各种进程分别占用内存情况

mpstat    多处理器系统的cpu使用率    centos: yum install sysstat

netstat    网络活动

cron         定时进程执行系统(计划任务)

设置、读取系统变量

SHOW [GLOBAL | SESSION] VARIABLES;

SET [GLOBAL | SESSION]   = ;

SET [@@global. | @@session. | @@]  =;

SHOW STATUS;

SHOW SESSION STATUS;

SHOW GLOBAL STATUS;

SQL 命令

SHOW INDX FROM

SHOW PLUGINS                         //显示所有已知插件列表

SHOW [FULL] PROCESSLIST      //显示系统上运行的所有线程。

SHOW  [GLOBAL | SESSION] STATUS    //显示所有系统变量值

SHOW  TABLE [FROM ]  STATUS  //显示给定数据库的表的详情

SHOW [GLOBAL | SESSION] VARIABLES  //显示系统变量

为了查看较少的信息,可使用  like ''  从句,like 语句中可使用标准MySQL正则表达式符号和控制符

SHOW ENGINE LOGS    //显示指定存储引擎的日志信息

SHOW ENGINE STATUS //显示指定存储引擎状态信息

SHOW ENGINES                        //显示所有可用的存储引擎的列表及状态

SHOW BINARY LOGS                //显示服务器二进制LOG列表

SHOW RELAYLOG EVENTS [IN '']  [FROM ]  [LIMIT [, ] ]

//仅限制查看Slave上的中继日志

SHOW MASTER STATUS           //显示Master当前配置,显示当前二进制日志文件,文件位置等

SHOW SLAVE HOSTS                //使用--report-host 选项显示连接到Master的slave列表

SHOW SLAVE STATUS               //显示复制中slave的系统状态

MySQL GUI工具

MySQL Administrator

MySQL Query Browser

MySQL Migration Toolkit    //用于自动从其他数据库系统上迁移数据

第三方工具

MySAR 系统活动报告

mytop    监控线程统计信息和Mysql常规性能统计信息

innotop   用于监控InnoDB性能和MySQL服务器

MONyog  (MySQL Monitor and Advisor) mysql监控工具,主动监控方案

MySQL Benchmark套件 MySQL基准测试

./run-all-tests --server=mysql --cmp=mysql --user=root --socket=

测量数据库性能

EXPLAIN   分析关于如何执行SELECT语句的信息

ANALYZE [ LOCAL |  NO_WRUTE_TO_BINLOG ] TABLE

#[ LOCAL |  NO_WRUTE_TO_BINLOG ] 可防止命令写入二进制日志。

SHOW INDEX FROM  TABLE

OPTIMIZE  [ LOCAL |  NO_WRUTE_TO_BINLOG ] TABLE

#重构一个或多个表的数据结构,整理存储空间

SHOW FULL PROCESSLIST;  查看所有进程信息

数据库优化

1、谨慎而有效的使用索引

2、使用规范化(范式),但不要过头

3、使用正确的存储引擎

alter table t1 ENGINE=MEMORY;

提高性能的最佳实践

1、一切都很慢(检查问题)

* 检查硬件

* 改善硬件环境(如添加硬盘)

* 考虑将数据迁移到独立的磁盘上

* 检查操作系统配置是否正确

* 考虑将有些应用迁移到其他服务器上

* 考虑可以向外扩展的复制

* 优化服务器性能

2、慢查询

* 规范化数据库模式

* 使用EXPLAIN识别丢失的或不正确的索引

* 使用benchmark() 函数测试部分查询

* 考虑重写查询

* 对标准查询使用视图

* 启用Query Cache

3、慢应用

* 开启 Query Cache

* 考虑并优化存储引擎

* 确认是否是服务器或操作系统的问题

* 定义应用程序的基准,并将它与已知基准比较

* 检查内部(在应用程序 内部编写的)查询,并最大化他们的性能

* 分而治之——一次只检查一个部分

* 使用划分类分散数据

* 检查各个分区的索引

4、慢复制

* 确保网络运行状况最佳

* 确保服务器配置正确

* 优化数据库

* 限制 Master 的更新

* 将数据读取划分到多个Slave中

* 检查Slave 的复制延迟

* 定期维护日志(二进制日志和中继日志)

* 在带宽有限的情况下,使用压缩

* 使用包容性和排他性日志选项,最小化复制内容

数据引擎的优化和监控

MyISAM实用工具

* myisam_ftdump: 显示全文索引信息

* myisamchk : 执行MyISAM 表的分析(只能在脱机状态使用)

* myisamlog : 查看MyISAM 表的更改日志

* myisampack:压缩表以减少存储量

Key Cache

1、预加载Key Cache

#将salary表的索引加载到key cache中,ignore leaves: 表明只加载索引的非叶子节点,可通过修改表的方式从Key cache中移除相关索引

mysql> load index into cache salaries ignore leaves;

2、使用多个Key Cache

#使用耳机主缓存

mysql> set global emp_cache.key_buffer_size = 128*1024; //128K

mysql> cache index salaries in emp_cache;

mysql> set global emp_cache.key_buffer_size=0;

#确认一个二级缓存是否存在

mysql> select @@global.emp_cache.key_buffer_size;

重启而不丢失二级缓存配置的方式:将配置语句保存在一个文件中,使用mysql的配置文件的[mysqld]部分的 init-file=命令执行该文件。

来自:http://blog.csdn.net/hellyhe/article/details/8288696

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:MySQL两千万数据优化&迁移(mysql百万数据查询优化)
下一篇:MySQL 中处理 Null 时要注意两个陷阱(mysql创建数据表)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~