MySQL Router 設定檔說明

設定檔範例:
     
[DEFAULT]
logging_folder  = /opt/mysql-router/log
plugin_folder   = /opt/mysql-router/lib/mysqlrouter
runtime_folder  = /opt/mysql-router/run
config_folder   = /opt/mysql-router

[logger]
level = INFO

## these section are only for standalone
[routing:read_write]
bind_address    = 192.168.56.107
bind_port       = 7001
destinations    = 192.168.56.102:3306,192.168.56.102:3307
mode            = read-write
connect_timeout    = 5
max_connections   = 100

[routing:read_only]
bind_address    = 192.168.56.107
bind_port       = 7002
destinations    = 192.168.56.102:3308,192.168.56.102:3309
mode            = read-only
connect_timeout    = 1
max_connections   = 100


## these section are used for Fabric
[fabric_cache:my_fabric]
address    = 192.168.56.101
user         = fabric

[routing:fabric_rw]
bind_port       = 7001
mode            = read-write
destinations    = fabric+cache://my_fabric/group/mygroup1

[routing:fabric_ro]
bind_port       = 7002
mode = read-only
destinations = fabric+cache://my_fabric/group/mygroup1?allow_primary_reads=yes


[DEFAULT]

  • logging_folder:log存放的位置,預設檔名會叫mysqlrouter.log,如果沒有設的話就是標準輸出(stdout)
  • plugin_folder:指到MySQL Router plugins的位置,如果是用tar裝的話會在安裝目錄下的lib/mysqlrouter,如果是用rpm裝的話會是在/usr/local/lib/mysqlrouter(預設路徑)
  • runtime_folder:rumtime的檔案存放位置,預設是放在/usr/local/
  • config_folder:設定檔存放位置,預設是在/usr/local/etc/mysqlrouter
[logger]

  • level:記錄log的等級(區分大小寫)
    • INFO(預設):所有訊息,包含警告和錯誤訊息
    • DEBUG
    • 在2.0.2版本中還不包含WARNING, ERROR, FATAL等級

此為standalone的設定內容
[routing:<名稱自訂>]

  • bind_address:指定host/IP,如果沒有設定預設是127.0.0.1,在一個群組裡面僅能設定一組bind_address,且不能和destinations的host/IP相同,若設定成0.0.0.0:$port表示綁到所有的網路介面上,支援IPv4和IPv6
  • bind_port:指定port號,可以在bind_address設或是這裡設都可以,但只能擇其一設定
  • connect_timeout:逾時n秒,預設1秒、最長65536,若設超過這個值在啟動時會報錯,用在Master時可以把時間設長一點,設太短若只是因一時網路瞬斷就會變成不斷的在切換,而用在Slave時可以把時間設短一點
  • destinations:目地端,多個host/IP以逗號分隔,沒有設定port號的話預設走3306
  • mode:在routing區域這個參數是必需設定的,目前只有2個模式
    • 在read-write模式裡永遠會找第一個port(first-available),只有在第一個port連不到時才會去找第二個port
    • 在read-only模式裡是由round-robin(輪詢)的方式去讀取的,即第一次連線會連到3308,第二次會連到3309
  • max_connections:類似於database裡的max_connections,預設值512,設定值介於1~65536


此為Fabric Cache Plug-in的設定內容
[fabric_cache:<名稱自訂>] *這裡的名稱在後面的設定也會用到

  • address:Fabric  node的位置
  • user:使用者帳號
[routing:<名稱自訂>]

  • destinations=plugin://section_key/target/group_id
    • plugin:指的就是要用哪一個plugin,目前只有fabric cache可以,直接設定成fabric+cache
    • setcion_key:指的就是fabric_cache區塊設定的名稱,如果你的fabric_cache沒有設key的話,那在這邊就不用輸入,但就會變成plugin:///target/group_id
    • target:Fabric物件的類別,目前只有group
    • group_id:是指Fabric HA群組的id(群組名稱)
  • allow_primary_reads={yes|no}:這個設成yes時在Fabric HA群組中所有的節點都可以當成唯讀的伺服器(primary & secondaries),也就是說如果今天只有一台Master和一台Slave,有可能你讀到的server是Master;反之設成no的話,只會在secondary server中讀取資料;
    *如果設成yes時,又把mode設read-write時是無效的
  • 啟用Fabric cache plugin時destinations除了可以透過Fabric來抓write server,也可以自己直接指定server(如standalone設定)
* 當連接不到Fabric時,Router會持續不斷的跟Fabric重新連線直到連上為止

參考網址:
http://mysqlhighavailability.com/configuring-mysql-router/
https://dev.mysql.com/doc/mysql-router/en/

留言

這個網誌中的熱門文章

【工作筆記】SQL Timeout追蹤

MySQL監控軟體MEM及PMM介紹