MySQL復(fù)制配置步驟文檔(主從備份機(jī)制)
2024-07-24 12:40:06
供稿:網(wǎng)友
MySQL復(fù)制配置步驟文檔
From CEWIKI
MySQL復(fù)制配置步驟
本文檔主要對一個主服務(wù)器,一個從服務(wù)器(簡稱一主一從)的復(fù)制配置步驟進(jìn)行說明,一主多從的配置方法其實(shí)也是一模一樣的,只不過需要增加更多的從服務(wù)器,增加的從服務(wù)器的設(shè)置方法跟第一個從服務(wù)器完全一樣。
目錄
• 1 第一次配置主從服務(wù)器方法
• 2 配置說明
• 3 主從復(fù)制配置方法
• 4 創(chuàng)建復(fù)制帳號
• 5 在主服務(wù)器的MySQL配置文件中添加選項(xiàng),打開二進(jìn)制日志記錄功能
• 6 在從服務(wù)器的MySQL配置文件中添加相關(guān)復(fù)制選項(xiàng)
• 7 重啟服務(wù)器
• 8 察看運(yùn)行狀態(tài)
• 9 從已有主服務(wù)器配置一臺新的從服務(wù)器
• 10 配置說明
• 11 主從配置方法
• 12 打開主服務(wù)器二進(jìn)制日志功能
• 13 創(chuàng)建復(fù)制帳號
• 14 備份主服務(wù)器的數(shù)據(jù)文件
• 15 備份主服務(wù)器的數(shù)據(jù)文件
• 16 記錄復(fù)制啟動斷點(diǎn)
• 17 打包備份主服務(wù)器數(shù)據(jù)文件
• 18 主服務(wù)器表解鎖
• 19 在從服務(wù)器上恢復(fù)主備份文件
• 20 啟動從服務(wù)器,設(shè)置復(fù)制斷點(diǎn)
• 21 察看復(fù)制狀態(tài)
第一次配置主從服務(wù)器方法
配置說明
這里所說的"第一次配置主從服務(wù)器"指的是,已經(jīng)安裝好了MySQL數(shù)據(jù)庫,第一次配置主從復(fù)制功能,主數(shù)據(jù)庫中還沒有歷史數(shù)據(jù),因此,如果 MySQL的數(shù)據(jù)目錄下(如果是用RPM包安裝數(shù)據(jù)目錄缺省是/var/lib/mysql)已經(jīng)有多余的文件,比如二進(jìn)制日志文件mysql- bin.*,master.info,relay-bin.*,relay-log.*,請先刪除。以下是一主一從結(jié)構(gòu)的簡單拓?fù)鋱D:
主從復(fù)制配置方法
創(chuàng)建復(fù)制帳號
在主服務(wù)器上創(chuàng)建復(fù)制帳號,授予相應(yīng)的權(quán)限。注意,復(fù)制帳號的口令最好不要超過6位,而且不要帶"#"等特殊字符。創(chuàng)建命令如下:
GRANT REPLICATION SLAVE ON *.* TO ‘帳號名稱’@’%’ IDENTIFIED BY ‘口令’
比如:
GRANT REPLICATION SLAVE ON *.* TO ‘repuser’@’%’ IDENTIFIED BY ‘111111’
在主服務(wù)器的MySQL配置文件中添加選項(xiàng),打開二進(jìn)制日志記錄功能
server-id = 16204
log-bin=mysql-bin
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
各個配置選項(xiàng)的說明如下:
server-id = 16204
服務(wù)器ID號,整數(shù)值,保證唯一標(biāo)識一臺服務(wù)器就可以
log-bin=mysql-bin
打開二進(jìn)制日志
binlog-ignore-db=mysql
忽略mysql數(shù)據(jù)庫復(fù)制
binlog-ignore-db=information_schema
忽略information_schema數(shù)據(jù)庫復(fù)制
在從服務(wù)器的MySQL配置文件中添加相關(guān)復(fù)制選項(xiàng)
server-id =16214
master-host=172.20.16.204
master-user= repuser
master-password=111111
relay-log=relay-bin
relay-log-index=relay-bin
replicate-ignore-db=mysql
replicate-ignore-db=information_schema
各個配置選項(xiàng)的說明如下:
server-id =16214
服務(wù)器ID號,整數(shù)值,保證唯一標(biāo)識一臺服務(wù)器比如:16214
master-host=172.20.16.204
主服務(wù)器IP地址,比如:172.20.16.204
master-user= repuser
主服務(wù)器上創(chuàng)建的復(fù)制用戶帳號名稱,比如以上創(chuàng)建的:repuser
master-password=111111
主服務(wù)器上創(chuàng)建的復(fù)制用戶帳號密碼,比如以上創(chuàng)建的:111111
relay-log=relay-bin
中繼日志名稱
relay-log-index=relay-bin
中繼索引文件名稱
replicate-ignore-db=mysql
忽略mysql數(shù)據(jù)庫復(fù)制
replicate-ignore-db=information_schema
忽略information_schema數(shù)據(jù)庫復(fù)制
重啟服務(wù)器
先重啟主服務(wù)器,起來后再重啟從服務(wù)器
察看運(yùn)行狀態(tài)
在從服務(wù)器上執(zhí)行命令:show slave statusG
如果復(fù)制狀態(tài)Slave_IO_Running,Slave_SQL_Running都為Yes,說明復(fù)制已經(jīng)配置正確
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
從已有主服務(wù)器配置一臺新的從服務(wù)器
配置說明
這里所說的"從已有主服務(wù)器配置一臺新的從服務(wù)器"指的是,主從服務(wù)器都已經(jīng)安裝好了MySQL數(shù)據(jù)庫,主服務(wù)器已經(jīng)在運(yùn)行,需要增加一個新的從服 務(wù)器,已經(jīng)有很多歷史數(shù)據(jù)需要復(fù)制到從服務(wù)器上。征對這樣的應(yīng)用場景,請按下列方法配置復(fù)制。以下是一主一從結(jié)構(gòu)的簡單拓?fù)鋱D:
主從配置方法
打開主服務(wù)器二進(jìn)制日志功能
如果主服務(wù)器的二進(jìn)制日志記錄功能沒有打開,在MySQL配置參數(shù)文件(比如/etc/my.cnf)中添加選項(xiàng),重啟MySQL服務(wù),打開二進(jìn)制日志功能。
server-id = 16204
log-bin=mysql-bin
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
各個配置選項(xiàng)的說明如下:
server-id = 16204
服務(wù)器ID號,整數(shù)值,保證唯一標(biāo)識一臺服務(wù)器就可以
log-bin=mysql-bin
打開二進(jìn)制日志
binlog-ignore-db=mysql
忽略mysql數(shù)據(jù)庫復(fù)制
binlog-ignore-db=information_schema
忽略information_schema數(shù)據(jù)庫復(fù)制
創(chuàng)建復(fù)制帳號
在主服務(wù)器上創(chuàng)建復(fù)制帳號,授予相應(yīng)的權(quán)限。注意,復(fù)制帳號的口令最好不要超過6位,而且不要帶"#"等特殊字符。創(chuàng)建命令如下:
GRANT REPLICATION SLAVE ON *.* TO ‘帳號名稱’@’%’ IDENTIFIED BY ‘口令’
比如:
GRANT REPLICATION SLAVE ON *.* TO ‘repuser’@’%’ IDENTIFIED BY ‘111111’
備份主服務(wù)器的數(shù)據(jù)文件
備份主服務(wù)器的數(shù)據(jù)文件
執(zhí)行以下命令,給主服務(wù)器所有表加鎖,禁止繼續(xù)寫入數(shù)據(jù):
FLUSH TABLES WITH READ LOCK;
記錄復(fù)制啟動斷點(diǎn)
執(zhí)行以下命令,記錄從服務(wù)器開始啟動復(fù)制的斷點(diǎn),包括日志名和偏移量。
mysql>SHOW MASTER STATUS;
比如:
mysql> show master statusG
file: mysql-bin.000025
Position: 13729
Binlog_Do_DB:
Binlog_Ignore_DB: mysql,information_schema,mysql,information_schema
日志文件名是:mysql-bin.000025
偏移量是:13729
注意,從服務(wù)器將從這個位置開始復(fù)制。
打包備份主服務(wù)器數(shù)據(jù)文件
打包需要復(fù)制的數(shù)據(jù)庫文件,如果數(shù)據(jù)庫文件安裝在/var/lib/mysql目錄下,可以執(zhí)行命令:
tar zcf /tmp/backup.tar.gz /var/lib/mysql
該命令將把/var/lib/mysql目錄下所有的文件都打包,也包括MySQL的系統(tǒng)表,而系統(tǒng)表一般都是不需要同步到從服務(wù)器上的, 所以最好選擇你需要復(fù)制的數(shù)據(jù)庫目錄,進(jìn)行打包就可以了,如需要復(fù)制兩個數(shù)據(jù)庫(PRIVATE_DB1 ,PRIVATE_DB2)到從服務(wù)器上,只要把這兩個目錄打包:
tar czf /tmp/backup.tar.gz PRIVATE_DB1 PRIVATE_DB2
主服務(wù)器表解鎖
執(zhí)行以下命令,解開主服務(wù)器的讀鎖,主服務(wù)器可以繼續(xù)更新數(shù)據(jù):
mysql> UNLOCK TABLES;
在從服務(wù)器上恢復(fù)主備份文件
在從服務(wù)器相應(yīng)的數(shù)據(jù)庫目錄(比如:/var/lib/mysql)上恢復(fù)主服務(wù)器上備份的數(shù)據(jù)庫文件,恢復(fù)時需要關(guān)閉從服務(wù)器的MySQL服務(wù),比如:
Cd /var/lib/mysql
Tar xzf backup.tar.gz
啟動從服務(wù)器,設(shè)置復(fù)制斷點(diǎn)
在MySQL中執(zhí)行以下命令,設(shè)置復(fù)制開始斷點(diǎn):
change master to master_user=‘repuser’,
master_password=‘654321’ , master_host=‘172.20.16.204’,
master_log_file=‘ mysql-bin.000025’,master_log_pos=13729;
表示從日志文件mysql-bin.000090,位置98開始復(fù)制
察看復(fù)制狀態(tài)
在從服務(wù)器上執(zhí)行命令:show slave statusG
如果復(fù)制狀態(tài)Slave_IO_Running,Slave_SQL_Running都為Yes,說明復(fù)制已經(jīng)配置正確
Slave_IO_Running: Yes
Slave_SQL_Running: Yes