mysql內(nèi)置sys數(shù)據(jù)庫(kù)說(shuō)明
1,默認(rèn)數(shù)據(jù)庫(kù)
- information_schema 存儲(chǔ)mysql元數(shù)據(jù)信息
- mysql mysql實(shí)例本身存儲(chǔ)的數(shù)據(jù)信息
- performance_schema mysql5.5新增的新能監(jiān)控存儲(chǔ)引擎
- sys數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)運(yùn)行時(shí)的收集的一些信息
常見(jiàn)系統(tǒng)狀態(tài)和變量
1典徊,查看變量和狀態(tài)
show VARIABLES;
show GLOBAL STATUS;
查看某個(gè)變量杭煎,有兩種方式
show variables like '%XXX%';
show variables where variable_name LIKE 'innodb%';
mysql性能優(yōu)化
維度:
硬件層恩够,系統(tǒng)層,軟件層岔帽,應(yīng)用層玫鸟,架構(gòu)層
硬件層:
- 雙路cpu
- 雙通道內(nèi)存
- ssd固態(tài)硬盤
系統(tǒng)層:
-
磁盤調(diào)度算法 數(shù)據(jù)庫(kù)一般使用dealline
echo "Deadline" > /sys/block/sda/queue/scheduler
-
在內(nèi)存足夠情況下导绷,減少swap分區(qū)使用
echo "0" > /proc/sys/mv/swappiness
-
增大打開(kāi)文件的數(shù)量
vi /etc/security/limits/conf * soft nofile 65535 * hard nofile 65535
-
內(nèi)核參數(shù)調(diào)優(yōu) sysctl -a 打印系統(tǒng)參數(shù),使用sysctl -w <鍵值對(duì)> 設(shè)置值犀勒,也可以直接寫入sysctl.conf文件,不過(guò)生效sysctl -p
net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_max_tw_buckets 4096 net.ipv4.tcp_max_syn_backlog = 4096 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_fin_timeout = 20
軟件層:系統(tǒng)配置優(yōu)化
配置項(xiàng) | 推薦值 | 解釋 |
---|---|---|
max_connections | 10240 | 最大鏈接數(shù)妥曲,盡量設(shè)置大點(diǎn) |
open_files_limit | 65535 | 最大打開(kāi)文件數(shù) |
innodb_buffer_pool_instances | 4 | 緩存實(shí)例的數(shù)量 |
innodb_buffer_pool_size | 2G | 緩存大小贾费,設(shè)置物理內(nèi)存70% |
innodb_flush_log_at_trx_commit | 2 | 刷新日志的時(shí)間,策略有三個(gè)012 |
sync_binlog | 0 | |
innodb_log_file_size | 256M | |
innodb_flush_method | o_direct | |
interactive_timeout | 1800 | 連接超時(shí)設(shè)置,最好是一個(gè)小時(shí) |
wait_timeout | 1800 | 等待連接超時(shí) |
slave-parallel-typ | logical_clock | 大寫檐盟,從節(jié)點(diǎn)并行 |
slave-parallel-workers | 8 | 從節(jié)點(diǎn)并行樹(shù) |
master-info-repository | TABLE | |
relay-log-info-repository | TABLE |
應(yīng)用層:
1褂萧,開(kāi)啟慢查詢?nèi)罩?/p>
-- 開(kāi)啟
set gloab slow_query_log=ON;
-- 設(shè)置慢查詢?nèi)罩颈3治穆?set ...
-- 設(shè)置多少時(shí)間算慢查詢
set ...
mysql自帶估計(jì)分析慢查詢?nèi)罩荆琺ysqldumpslow
2葵萎,分庫(kù)导犹,分表,分區(qū)
分庫(kù):?jiǎn)螏?kù)連接有瓶頸
分表:?jiǎn)伪頂?shù)據(jù)量過(guò)大羡忘,查詢瓶頸谎痢。分垂直和水平拆分
分區(qū): 數(shù)據(jù)放在不同的磁盤上,磁盤瓶頸
架構(gòu)層:
讀寫分離卷雕,緩存节猿,分庫(kù)
安全加固
1,數(shù)據(jù)庫(kù)
禁止以root賬戶運(yùn)行mysql實(shí)例
數(shù)據(jù)庫(kù)賬戶分配最小權(quán)限
賬戶密碼滿足復(fù)雜性漫雕,并90天更換一次
根據(jù)需要只監(jiān)聽(tīng)本地或者內(nèi)網(wǎng)地址
禁止root賬戶遠(yuǎn)程
-
權(quán)限申請(qǐng)流程設(shè)置規(guī)范滨嘱,合理
2,操作系統(tǒng)
- 防火墻只允許可信任IP訪問(wèn)
- 關(guān)閉不必要的賬戶浸间、服務(wù)和端口
- SSH使用證書+密碼認(rèn)證
- 及時(shí)給系統(tǒng)軟件呢打補(bǔ)丁
- 系統(tǒng)太雨、程序日志收集
3,數(shù)據(jù)庫(kù)備份
定期備份
備份多份存儲(chǔ)在不同的位置
-
定期檢查備份可用性
mysql監(jiān)控
- 實(shí)例狀態(tài)
- 連接數(shù)
- 網(wǎng)絡(luò)流量
- QPS/TPS
- InnoDB緩沖池利用率
- InnoDB緩沖池命中率
- 主從狀態(tài)
監(jiān)控腳本
監(jiān)控可視化zabbix
mysql修復(fù)
mysql數(shù)據(jù)庫(kù)修復(fù)
停電或者是斷網(wǎng)魁蒜,導(dǎo)致表?yè)p壞
自帶工具mysqlcheck
innodb 修復(fù) innodb_force_recovery=0
主從不一致修復(fù)
perccna-toolkit工具對(duì)mysql支持復(fù)制不一致