擁有兩台NAS的使用者通常會拿一台當作備份,而QNAP並沒有辦法備份SQL Service的資料,
因此要透過MySQL本身提供的備援機制(replication)來達到備份的目的。只要配合好資料網站同步的設定即可達到整個網站備援的效果,一魚兩吃阿。
要示範的機器為QNAP TS-253A (Master)以及 TS-212E(Slave),
目標是將一台 MySQL Server (Master) 的資料同步到另一台 MySQL Server (Slave)。
- 確認SQL Server版本,TS-253A為Maria,而TS-212E為MySQL。
由於MariaDB為MySQL的升級版本,官方不建議使用新的版本Replication至舊的(會有編碼等許多問題,我花了很多時間嘗試解決才發現我的機器版本不一樣),因此如果發現版本不一樣必須將Slave的版本升級至與Master一樣。QPKG有提供MariaDB的Package讓MySQL升級至Maria。
- 找到SQL Server的config檔案。
原生的Config檔案應該會在:/etc/config/my.cnf
而透過升級的config路徑應該會在:
/usr/local/mysq/my.cnf
我還不太清處要如何驗證是不是有效的config,如果是正確地改了以後在phpMyAdmin的變數視窗內有一起更新那就是正確的了(要記得restart)。
- 修改Config:
- Master
#允許上傳內容的大小,原本是1M,對於上傳Slave可能會太小 max_allowed_packet = 16M #Server唯一碼,通常Master是設為1 server-id=1 #Log檔案記錄位置,如果已經存在這條設定就代表這台主機已經被設定為Master log-bin=mysql-bin #需要同步的DB,如果不設定則視為全部同步。 binlog-do-db = syncdbname
- Slave
#Server唯一碼,通常Slave隨便設定都可。 server-id=2
設定時要注意config的設定有無重複,完成後確認設定已生效。
slave 的 server id 已被更正為2。
- Master
- 建立Replication User:
參考MySQL 官方mysql>
CREATE USER 'repl'@'%.mydomain.com' IDENTIFIED BY 'slavepass';
mysql>GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%.mydomain.com';
- 啟用Replication前的準備:
Comments (0)