mysql數據庫高可用雙機熱備

系統架構圖     

  • 微服務通過haproxy代理訪問數據庫1,在數據庫1異常時訪問數據庫2

配置如下:

global

  maxconn 32000

  nbproc  3

  daemon

defaults

  mode tcp

  retries 3

  option  abortonclose

  maxconn 32000

timeout connect 10s

timeout client 10m

timeout server 10m

timeout http-keep-alive 10m

  log 127.0.0.1   local0 err   

listen win_ss

  bind 0.0.0.0:9030

  mode    tcp

option mysql-check user haproxy#添加mysql無密碼賬號,通過該賬號進行check

  #balance source

  server s1 127.0.0.1:3306  check rise 1 fall 1#主機,進行check檢查

  server s2 127.0.0.1:3306  check rise 1 fall 1 backup#熱備主機(從機)

listen status

  bind 0.0.0.0:1188

  mode http

stats enable

  stats refresh 30s

  stats uri  /  

stats auth    admin:admin

  stats hide-version

  stats admin if TRUE

  • 數據庫1與數據庫2進行雙機互備

監控備份情況及異常處理命令如下:

stop slave;//停止從庫同步

set global sql_slave_skip_counter=1;//跳過錯誤

start slave;//開啓同步

show slave status;//顯示同步狀態

同步狀態重點關注字段:

Slave_io_state//狀態

Relay_master_log_file//當前讀取的備份文件名

Slave_io_running//io運行情況

Slave_sql_running//sql運行情況

Seconds_behind_master//落後於主機的時間

  • 數據庫配置

#忽略同步的表
replicate-wild-ignore-table

#跳過指定error no類型的錯誤,不是越多越好

slave-skip-errors=1062,1053,1146,1051

  • 遺留問題
  1. 單點問題,需要使用集羣及vip的方式解決
  2. 讀寫分離問題,需要mycat等中間件解決
  3. 分區表的問題,需要跟蹤及測試
  4. 數據庫宕機報警及相關信息監控
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章