文章詳情頁
MySQL 性能、監控與災難恢復
瀏覽:4日期:2023-10-16 16:44:54
監控方案: up.time http://www.uptimesoftware.com/ 收費 Cactihttp://www.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://www.nagios.org/ Shinken http://www.shinken-monitoring.org/ (個人覺得比nagios好用) Sun Management Center http://www.sun.com/software/products/sunmanagementcenter/index.xml MySQL Enterprise Monitor http://www.mysql.com/products/enterprise/monitor.html Linux和UNIX系統監控工具ps 系統進程top cpu使用率排序的活動進程vmstat 顯示分頁、內存、塊傳輸、cpu活動相關uptime 顯示系統運行時間及1、5、15分鐘系統平均負載free 顯示內存使用率iostat 顯示平均磁盤活動和處理器負載 centos: yum install sysstatsar 系統活動報告、允許收集和報告各種系統活動pmap 顯示各種進程分別占用內存情況mpstat 多處理器系統的cpu使用率 centos: yum install sysstatnetstat 網絡活動cron 定時進程執行系統(計劃任務)設置、讀取系統變量 SHOW [GLOBAL | SESSION] VARIABLES; SET [GLOBAL | SESSION] <variable_name> = <value>; SET [@@global. | @@session. | @@] <variable_name>=<value>; SHOW STATUS; SHOW SESSION STATUS; SHOW GLOBAL STATUS;SQL 命令 SHOW INDX FROM <table> //顯示指定表的索引基數統計信息 SHOW PLUGINS //顯示所有已知插件列表 SHOW [FULL] PROCESSLIST //顯示系統上運行的所有線程。 SHOW [GLOBAL | SESSION] STATUS //顯示所有系統變量值 SHOW TABLE [FROM <db>] STATUS //顯示給定數據庫的表的詳情 SHOW [GLOBAL | SESSION] VARIABLES //顯示系統變量為了查看較少的信息,可使用 like ’<pattern>’ 從句,like 語句中可使用標準MySQL正則表達式符號和控制符 SHOW ENGINE <engine_name> LOGS //顯示指定存儲引擎的日志信息 SHOW ENGINE <engine_name> STATUS //顯示指定存儲引擎狀態信息 SHOW ENGINES//顯示所有可用的存儲引擎的列表及狀態 SHOW BINARY LOGS//顯示服務器二進制LOG列表 SHOW RELAYLOG EVENTS [IN ’<log_file>’] [FROM <pos>] [LIMIT [<offset>, ] <row count>] //僅限制查看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=<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 <table_list>#重構一個或多個表的數據結構,整理存儲空間 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 Cache1、預加載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=<patch_to_file>命令執行該文件。來自:http://blog.csdn.net/hellyhe/article/details/8288696
相關文章:
排行榜