mysql進修

zlingyi發表於2017-11-24
1、同步方式
binlog和pos同步、非同步、半同步、基於GTID同步、單執行緒同步、多執行緒同步

2、關鍵引數配置
innodb_buffer_pool_size、key_buffer_size、innodb_flush_log_at_trx_commit、bin、sync_binlog、innodb_file_per_table、character_set_server、max_connections、transaction_isolation隔離級別、預設為Repeatable Read,如果是binlog是row模式,也經常設定為Read Committed級別

3、資料庫環境收集工具
pt-mysql-summary

4、資料庫效能情況
  • 例項負載情況(CPU負載、IO負載、系統負載)
  • 慢查詢情況
  • SQL延遲情況
  • 鎖情況
  • 髒頁情況
  • 訪問模型:訪問模型就是這資料庫承擔的是讀多寫少還是讀少寫多,以及是否是高併發等等。
針對上述問題,可以採用 pt-mysql-summary 工具獲取,再加以分析,也可以透過如下兩個工具來實時檢視:
  • innotop
  • orzdba

5、資料安全篇
許可權安全:(1)資料庫一定設定符合密碼複雜度的使用者密碼。(2)禁止給使用者設定 % 的登入機器。(3)只給業務最小許可權的帳號,並限制登入的機器。
資料一致性:為了保證資料的一致性,記得週期性地使用 pt-table-checksum 來檢查主從資料是否一致,如果不一致,可以使用 pt-table-sync 進行修復。
資料安全:備份策略(資料庫備份、binlog 備份)。備份有效性和可用性

6、常規操作篇
常規操作:常規的操作一般包含如下幾項
  • 啟動停止。
  • 資料庫常規變更。
  • 索引最佳化。
  • 配置修改。
  • 資料庫的備份。
  • 資料的遷移。
  • 切換。
常見故障的預案:1、master 出現故障,我們如何處理?
極端情況下的預案:資料庫主從都掛掉的情況。
定期演習!

7、架構篇:
瞭解MHA、MMM、LVS、keepalived的原理,而不僅僅是搭建。優缺點和故障排查很重要。
MHA 為例,它是如何檢測某一個例項異常的?各個元件之間如何配合?當做切換的時候,MHA 是如何保證資料的一致性?如果後端有多臺 slave,它是如何選擇哪一臺從機做切換,並且,其他從機如何處理?

8、線上操作篇:十二個容易導致線上故障的操作以及規避誤操作的技巧
  • 修改或刪除資料前先備份,先備份,先備份(重要事情說三遍)。
  • 線上變更一定要有回退方案。
  • 批次操作中間新增 sleep。
  • DDL 操作要謹慎,對於大表的 alter 操作最好使用 pt-online-schema-change。
  • 變更操作先在測試環境測試。
  • 重啟資料庫前先刷髒頁。
  • 禁止批次刪除大量的 binlog。
  • 對於變更操作一定要寫詳細的操作步驟,並 review。
  • 按 enter 之前再進行一次環境確認。
  • 如果你的操作可能會使狀況變得更糟,請停止操作。
  • 快速處理磁碟滿,使用 tune2fs 釋放檔案系統保留塊。
  • 連線數滿先修改記憶體變數,而不是重啟,修改方式如下:
gdb -p pid -ex "set max_connections=1000" -batch#pid是mysqld的對應的pid




來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28686045/viewspace-2147701/,如需轉載,請註明出處,否則將追究法律責任。

相關文章