Heim > Datenbank > MySQL-Tutorial > MySQL-Leistung, Überwachung und Notfallwiederherstellung

MySQL-Leistung, Überwachung und Notfallwiederherstellung

黄舟
Freigeben: 2017-02-21 10:27:19
Original
1279 Leute haben es durchsucht



Überwachungslösung:

up.time    //m.sbmmt.com/    收费
    Cacti        //m.sbmmt.com/
    KDE System Guard(KSysGuard) 
                    //m.sbmmt.com/
    Gnome System Monitor
                    //m.sbmmt.com/
    Nagios    //m.sbmmt.com/
    Shinken  //m.sbmmt.com/  (个人觉得比nagios好用)
    Sun Management Center
                    //m.sbmmt.com/
    MySQL Enterprise Monitor
                    //m.sbmmt.com/
Nach dem Login kopieren


Linux und UNIX-Systemüberwachungstool

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         定时进程执行系统(计划任务)
Nach dem Login kopieren


Systemvariablen festlegen und lesen

SHOW [GLOBAL | SESSION] VARIABLES;
    SET [GLOBAL | SESSION]  <variable_name> = <value>;
    SET [@@global. | @@session. | @@]  <variable_name>=<value>;
    SHOW STATUS;
    SHOW SESSION STATUS;
    SHOW GLOBAL STATUS;
Nach dem Login kopieren


SQL-Befehl

SHOW INDX FROM <table>    //显示指定表的索引基数统计信息
    SHOW PLUGINS                         //显示所有已知插件列表
    SHOW [FULL] PROCESSLIST      //显示系统上运行的所有线程。
    SHOW  [GLOBAL | SESSION] STATUS    //显示所有系统变量值
    SHOW  TABLE [FROM <db>]  STATUS  //显示给定数据库的表的详情
    SHOW [GLOBAL | SESSION] VARIABLES  //显示系统变量
Nach dem Login kopieren

Um weniger Informationen anzuzeigen, können Sie die Like-Klausel „“ verwenden. Standardmäßige MySQL-Symbole für reguläre Ausdrücke können in der Like-Anweisung verwendet werden

SHOW ENGINE <engine_name> LOGS    //显示指定存储引擎的日志信息
    SHOW ENGINE <engine_name> STATUS //显示指定存储引擎状态信息
    SHOW ENGINES                        //显示所有可用的存储引擎的列表及状态
    SHOW BINARY LOGS                //显示服务器二进制LOG列表
    SHOW RELAYLOG EVENTS [IN &#39;<log_file>&#39;]  [FROM <pos>]  [LIMIT [<offset>, ] <row count>]
                                                        //仅限制查看Slave上的中继日志
    SHOW MASTER STATUS           //显示Master当前配置,显示当前二进制日志文件,文件位置等
    SHOW SLAVE HOSTS                //使用--report-host 选项显示连接到Master的slave列表
    SHOW SLAVE STATUS               //显示复制中slave的系统状态
Nach dem Login kopieren

MySQL GUI Tools

MySQL Administrator
    MySQL Query Browser
    MySQL Migration Toolkit    //用于自动从其他数据库系统上迁移数据
Nach dem Login kopieren

 

Tools von Drittanbietern

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=<socket>
Nach dem Login kopieren


Datenbankleistung messen

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 <table_list>
        #重构一个或多个表的数据结构,整理存储空间
    SHOW FULL PROCESSLIST;  查看所有进程信息
Nach dem Login kopieren



Datenbankoptimierung

1. Verwenden Sie Indizes sorgfältig und effektiv

2. Standardisiertes (Paradigma) verwenden, aber nicht überdosieren

3. Die richtige Speicher-Engine verwenden

Alter Table T1 Engine = Memory;


Best Practices zur Verbesserung der Leistung

1. Alles ist langsam (überprüfen Sie das Problem)

* Überprüfen Sie die Hardware

* Verbessern Sie die Hardwareumgebung (z. B Hinzufügen einer Festplatte)

* Erwägen Sie die Migration von Daten auf eine separate Festplatte

* Überprüfen Sie, ob die Betriebssystemkonfiguration korrekt ist

* Erwägen Sie die Migration einiger Anwendungen auf andere Server

* Erwägen Sie eine skalierbare Replikation

* Serverleistung optimieren


2. Langsame Abfragen

* Normalisiertes Datenbankschema

* Verwenden Sie EXPLAIN zur Identifizierung fehlende oder falsche Indizes

* Verwenden Sie die Funktion benchmark(), um einen Teil der Abfrage zu testen

* Erwägen Sie, die Abfrage neu zu schreiben

* Verwenden Sie Ansichten für Standardabfragen

* Abfrage-Cache aktivieren


3. Langsame Anwendungen

* Abfrage-Cache aktivieren

* Speicher-Engine berücksichtigen und optimieren

* Bestätigen Sie, ob es sich um ein Server- oder Betriebssystemproblem handelt

* Definieren Sie eine Baseline für die Anwendung und vergleichen Sie sie mit einer bekannten Baseline

* Überprüfen Sie die internen (in der Anwendung) geschriebenen Abfragen innerhalb des Programms und maximieren Sie deren Leistung

* Teilen und herrsche – Überprüfen Sie jeweils nur einen Teil

* Verwenden Sie Partitionierungsklassen, um Daten zu verteilen

* Überprüfen Sie den Index einzelner Partitionen


4. Langsames Kopieren

* 确保网络运行状况最佳

* 确保服务器配置正确

* 优化数据库

* 限制 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;
Nach dem Login kopieren


            #Bestätigen Sie, ob ein L2-Cache vorhanden ist MySQL-Konfigurationsdatei, um die Datei auszuführen.

Das Obige ist der Inhalt der MySQL-Leistung, -Überwachung und -Notfallwiederherstellung. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (m.sbmmt.com)!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage