在企業級應用開發中,系統的高可用性是至關重要的。在數據存儲方面,為了避免單點故障,通常會采用雙機熱備的方式來實現高可用性。本文介紹如何在linux系統上通過mysql實現雙機熱備。
首先,需要安裝mysql。可以通過以下命令安裝:
sudo apt-get update sudo apt-get install mysql-server
安裝完成后,需要以root用戶進入mysql控制臺,并創建一個新用戶來進行備份:
mysql -u root -p CREATE USER 'backup'@'localhost' IDENTIFIED BY 'yourpassword'; GRANT RELOAD, LOCK TABLES, REPLICATION CLIENT ON *.* TO 'backup'@'localhost'; FLUSH PRIVILEGES;
現在可以開始設置主機和備機了。首先在主機上進行如下設置:
[mysqld] server-id=1 log-bin=mysql-bin binlog-do-db=my_database
在備機上進行如下設置:
[mysqld] server-id=2
接著,在主機上開啟二進制日志的復制功能:
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,接下來在備機上執行如下命令:
mysql -u root -p CHANGE MASTER TO MASTER_HOST='主機IP', MASTER_USER='replication', MASTER_PASSWORD='yourpassword', MASTER_LOG_FILE='File值', MASTER_LOG_POS=Position值; START SLAVE;
至此,主機和備機的雙機熱備設置就完成了。如果主機宕機或者出現故障,只需要將備機切換為主機,應用程序就可以繼續使用了。