pos機具巡檢服務, MySQL 巡檢

 新聞資訊  |   2023-04-08 10:00  |  投稿人:pos機之家

網上有很多關于pos機具巡檢服務, MySQL 巡檢的知識,也有很多人為大家解答關于pos機具巡檢服務的問題,今天pos機之家(www.tonybus.com)為大家整理了關于這方面的知識,讓我們一起來看下吧!

本文目錄一覽:

1、pos機具巡檢服務

pos機具巡檢服務

作者:王向

愛可生 DBA 團隊成員,負責公司 DMP 產品的運維和客戶 MySQL 問題的處理。擅長數據庫故障處理。對數據庫技術和 python 有著濃厚的興趣。

本文來源:原創投稿

*愛可生開源社區出品,原創內容未經授權不得隨意使用,轉載請聯系小編并注明來源。

MySQL巡檢操作系統層面

巡檢嘛沒啥特別的,就直奔主題把。

cpu

sar -u 10 3 內存

sar -r 10 3I/O

sar -b 10 3磁盤

df -h系統基礎信息

當然,查看是否使用numa和swap,或是否頻繁交互信息等。還有其他的監控項目,這里就不一一贅述了。

操作系統日志

除此之外,還需要關注日志類信息,例如:

tail 200 /var/log/messagesdmesg | tail 200MySQL

MySQL重點參數的檢查,及主從健康狀態的巡檢。

重點參數

參數 參考值 innodb_buffer_pool_size 系統的50%-75% binlog_format ROW sync_binlog 1 innodb_flush_log_at_trx_commit 1 read_only 從庫ON,主庫OFF super_read_only 從庫ON,主庫OFF log_slave_updates 1 innodb_io_capacity sata/sas硬盤這個值在200sas raid10: 2000ssd硬盤:8000fusion-io(閃存卡):25,000-50,000 max_connections

MySQL的狀態

\\sshow full processlist;show engine innodb status\\Gshow slave hosts;wait事件

show global status like 'Innodb_buffer_pool_wait_free';show global status like 'Innodb_log_waits';鎖

#表鎖show global status like 'Table_locks_waited';show global status like 'Table_locks_immediate';#行鎖show global status like 'Innodb_row_lock_current_waits';當前等待鎖的行鎖數量show global status like 'Innodb_row_lock_time';請求行鎖總耗時show global status like 'Innodb_row_lock_time_avg';請求行鎖平均耗時show global status like 'Innodb_row_lock_time_max';請求行鎖最久耗時show global status like 'Innodb_row_lock_waits';行鎖發生次數#還可以定時收集INFORMATION_SCHEMA里面的信息:SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS; SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS; // MySQL 8.0 中已經不再使用,建議觀測 sys 庫#臨時表/臨時文件show global status like 'Created_tmp_disk_tables';show global status like 'Created_tmp_files';#打開表/文件數show global status like 'Open_files';show global status like 'Open_table_definitions';show global status like 'Open_tables';#并發連接數show global status like 'Threads_running';show global status like 'Threads_created';show global status like 'Threads_cached';show global status like 'Aborted_clients'; #客戶端沒有正確關閉連接導致客戶端終止而中斷的連接數show global status like 'Aborted_connects';Binlog

# 使用臨時二進制日志緩沖但超過 binlog_cache_size 值并使用臨時文件show global status like 'Binlog_cache_disk_use'; # 使用臨時二進制日志緩沖的事務數量show global status like 'Binlog_cache_use'; # 當非事務語句使用二進制日志緩存show global status like 'Binlog_stmt_cache_disk_use'; # 使用二進制日志緩沖非事務語句數量show global status like 'Binlog_cache_disk_use'; 鏈接數

# 試圖連接到(不管成不成功)mysql服務器的鏈接數show global status like 'Connection'; 臨時表

# 服務器執行語句時,在硬盤上自動創建的臨時表的數量,是指在排序時,內存不夠用(tmp_table_size小于需要排序的結果集),所以需要創建基于磁盤的臨時表進行排序show global status like 'Created_tmp_disk_tables'; # 服務器執行語句時自動創建的內存中的臨時表的數量show global status like 'Created_tmp_files';索引

# 內部提交語句show global status like 'Handler_commit'; # 內部 rollback語句數量show global status like 'Handler_rollback'; # 索引第一條記錄被讀的次數,如果高,則它表明服務器正執行大量全索引掃描show global status like 'Handler_read_first';  # 根據索引讀一行的請求數,如果較高,說明查詢和表的索引正確show global status like 'Handler_read_key'; # 查詢讀索引最后一個索引鍵請求數show global status like 'Handler_read_last';# 按照索引順序讀下一行的請求數show global status like 'Handler_read_next'; # 按照索引順序讀前一行的請求數show global status like 'Handler_read_prev';# 根據固定位置讀一行的請求數,如果值較高,說明可能使用了大量需要mysql掃整個表的查詢或沒有正確使用索引show global status like 'Handler_read_rnd'; # 在數據文件中讀下一行的請求數,如果你正進行大量的表掃,該值會較高show global status like 'Handler_read_rnd_next'; # 被緩存的.frm文件數量show global status like 'Open_table_definitions'; # 已經打開的表的數量,如果較大,table_open_cache值可能太小show global status like 'Opened_tables';# 當前打開的表的數量show global status like 'Open_tables';# 已經發送給服務器的查詢個數show global status like 'Queries';# 沒有使用索引的聯接的數量,如果該值不為0,你應該仔細檢查表的所有show global status like 'Select_full_join';# 對第一個表進行完全掃的聯接的數量show global status like 'Select_scan';# 查詢時間超過long_query_time秒的查詢個數show global status like 'Slow_queries';# 排序算法已經執行的合并的數量,如果值較大,增加sort_buffer_size大小show global status like 'Sort_merge_passes';線程

# 線程緩存內的線程數量show global status like 'Threads_cached';# 當前打開的連接數量show global status like 'Threads_connected';# 創建用來處理連接的線程數show global status like 'Threads_created';# 激活的(非睡眠狀態)線程數show global status like 'Threads_running';庫表情況自增id使用情況

SELECTtable_schema,table_name,ENGINE,Auto_increment FROMinformation_schema.TABLES WHERETABLE_SCHEMA NOT IN ("INFORMATION_SCHEMA","PERFORMANCE_SCHEMA","MYSQL","SYS") limit 30;表行數數據大小統計

SELECTtable_schema "Database name",sum( table_rows ) "No. of rows",sum( data_length ) / 1024 / 1024 "Size data (MB)",sum( index_length )/ 1024 / 1024 "Size index (MB)" FROMinformation_schema.TABLES GROUP BYtable_schema;表行數 TOP 30

SELECT TABLE_SCHEMA, TABLE_NAME, TABLE_ROWSFROM `information_schema`.`tables` WHERE TABLE_SCHEMA not in('information_schema','sys','mysql','performance_schema')ORDER BY table_rows DESC LIMIT 30;存儲引擎不是innodb的表

SELECTTABLE_SCHEMA,TABLE_NAME,ENGINE FROMINFORMATION_SCHEMA.TABLES WHEREENGINE != 'innodb' AND TABLE_SCHEMA NOT IN ( "INFORMATION_SCHEMA", "PERFORMANCE_SCHEMA", "MYSQL", "SYS" );表數據和碎片 TOP 30

select TABLE_SCHEMA, TABLE_NAME, TABLE_ROWS, DATA_LENGTH, INDEX_LENGTH, DATA_FREEfrom information_schema.tables where DATA_FREE is not null ORDER BY DATA_FREE DESC LIMIT 30;無主鍵的表

SELECTt1.table_schema,t1.table_name,t1.table_type FROMinformation_schema.TABLES t1LEFT OUTER JOIN information_schema.TABLE_CONSTRAINTS t2 ON t1.table_schema = t2.TABLE_SCHEMA AND t1.table_name = t2.TABLE_NAME AND t2.CONSTRAINT_NAME IN ( 'PRIMARY' ) WHEREt2.table_name IS NULL AND t1.TABLE_SCHEMA NOT IN ( 'information_schema', 'performance_schema', 'test', 'mysql', 'sys' ) AND t1.table_type = "BASE TABLE";MySQL主從檢測

#主從狀態show slave status\\G#主從是否延遲Master_Log_File == Relay_Master_Log_File && Read_Master_Log_Pos == Exec_Master_Log_Pos高可用層面

MHA && keepalived

觀察日志看是否有頻繁主從切換,如果有的話就分析一下是什么原因導致頻繁切換?

中間件的巡檢

mycat && proxysql

這些中間件的巡檢,首先參考系統巡檢,再看一下中間件本身的日志類和狀態類信息,網絡延遲或丟包的檢查,也是必須要做工作。

以上就是關于pos機具巡檢服務, MySQL 巡檢的知識,后面我們會繼續為大家整理關于pos機具巡檢服務的知識,希望能夠幫助到大家!

轉發請帶上網址:http://www.tonybus.com/news/16336.html

你可能會喜歡:

版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 babsan@163.com 舉報,一經查實,本站將立刻刪除。