MySQL主主備份是指在兩個(gè)或多個(gè)MySQL服務(wù)器之間創(chuàng)建同步副本,以確保數(shù)據(jù)隨時(shí)可用且在不同數(shù)據(jù)庫間進(jìn)行負(fù)載平衡。當(dāng)其中一個(gè)服務(wù)器出現(xiàn)故障時(shí),可以使用另一個(gè)服務(wù)器來提供服務(wù)。
為了使用MySQL主主備份,需要在每個(gè)服務(wù)器上安裝MySQL,并確保它們都可以訪問相同的數(shù)據(jù)庫。使用以下命令在MySQL服務(wù)器上創(chuàng)建新數(shù)據(jù)庫:
CREATE DATABASE mydatabase;
創(chuàng)建新數(shù)據(jù)庫后,使用以下命令創(chuàng)建新表:
CREATE TABLE tablename (column1 INT, column2 VARCHAR(50), column3 DATE);
為了確保在不同服務(wù)器之間同步數(shù)據(jù),需要使用MySQL復(fù)制機(jī)制。它包括將數(shù)據(jù)從一個(gè)數(shù)據(jù)庫復(fù)制到另一個(gè)數(shù)據(jù)庫的過程。
在MySQL主主備份環(huán)境中,每個(gè)服務(wù)器都是主服務(wù)器和備份服務(wù)器。因此,需要設(shè)置每個(gè)服務(wù)器的主服務(wù)器和備份服務(wù)器參數(shù)。可以在MySQL配置文件中設(shè)置這些參數(shù):
server-id=1 log-bin=mysql-bin log-slave-updates=1 auto-increment-offset=1
在此配置中,server-id
為該服務(wù)器的唯一標(biāo)識(shí)符。log-bin
指定二進(jìn)制日志文件的名稱,并啟用二進(jìn)制日志功能。log-slave-updates
指示備份服務(wù)器復(fù)制主服務(wù)器的更改。auto-increment-offset
指定自動(dòng)增加列的開始號(hào)碼。
使用以下命令在主服務(wù)器上啟動(dòng)復(fù)制:
CHANGE MASTER TO MASTER_HOST='master_host_name', MASTER_USER='replication_user_name', MASTER_PASSWORD='replication_password', MASTER_LOG_FILE='recorded_log_file_name', MASTER_LOG_POS=recorded_log_position;
在此命令中,MASTER_HOST
指定主服務(wù)器的名稱或IP地址。MASTER_USER
指定用于復(fù)制的用戶名。MASTER_PASSWORD
指定用于復(fù)制的密碼。MASTER_LOG_FILE
和MASTER_LOG_POS
記錄了備份服務(wù)器上要從主服務(wù)器復(fù)制的日志文件和位置。
完成這些設(shè)置后,備份服務(wù)器將開始復(fù)制主服務(wù)器上的所有更改。使用以下命令在備份服務(wù)器上檢查復(fù)制狀態(tài):
SHOW SLAVE STATUS \G
在該命令的輸出中,Slave_IO_Running
和Slave_SQL_Running
應(yīng)都顯示Yes
。
在MySQL主主備份環(huán)境中,所有服務(wù)器都應(yīng)具有相同的數(shù)據(jù)庫內(nèi)容,并在需要的情況下進(jìn)行同步。在出現(xiàn)故障或需要提高性能時(shí),可以使用另一個(gè)服務(wù)器來提供服務(wù)。