在企業(yè)級應(yīng)用開發(fā)中,系統(tǒng)的高可用性是至關(guān)重要的。在數(shù)據(jù)存儲(chǔ)方面,為了避免單點(diǎn)故障,通常會(huì)采用雙機(jī)熱備的方式來實(shí)現(xiàn)高可用性。本文介紹如何在linux系統(tǒng)上通過mysql實(shí)現(xiàn)雙機(jī)熱備。
首先,需要安裝mysql。可以通過以下命令安裝:
sudo apt-get update sudo apt-get install mysql-server
安裝完成后,需要以root用戶進(jìn)入mysql控制臺(tái),并創(chuàng)建一個(gè)新用戶來進(jìn)行備份:
mysql -u root -p CREATE USER 'backup'@'localhost' IDENTIFIED BY 'yourpassword'; GRANT RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'backup'@'localhost'; FLUSH PRIVILEGES;
現(xiàn)在可以開始設(shè)置主機(jī)和備機(jī)了。首先在主機(jī)上進(jìn)行如下設(shè)置:
[mysqld] server-id=1 log-bin=mysql-bin binlog-do-db=my_database
在備機(jī)上進(jìn)行如下設(shè)置:
[mysqld] server-id=2
接著,在主機(jī)上開啟二進(jìn)制日志的復(fù)制功能:
mysql -u root -p GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%' IDENTIFIED BY 'yourpassword'; FLUSH PRIVILEGES; FLUSH TABLES WITH READ LOCK; SHOW MASTER STATUS;
記下顯示的File和Position,接下來在備機(jī)上執(zhí)行如下命令:
mysql -u root -p CHANGE MASTER TO MASTER_HOST='主機(jī)IP', MASTER_USER='replication', MASTER_PASSWORD='yourpassword', MASTER_LOG_FILE='File值', MASTER_LOG_POS=Position值; START SLAVE;
至此,主機(jī)和備機(jī)的雙機(jī)熱備設(shè)置就完成了。如果主機(jī)宕機(jī)或者出現(xiàn)故障,只需要將備機(jī)切換為主機(jī),應(yīng)用程序就可以繼續(xù)使用了。