友情提示:安裝MySQL軟件步驟本文暫不介紹,安裝完MySQL無(wú)需著急初始化數(shù)據(jù)庫(kù)和啟動(dòng)服務(wù)。只需確保安裝的MySQL版本不低于阿里云RDS MySQL版本,同時(shí)提前新建運(yùn)行MySQL服務(wù)的mysql系統(tǒng)用戶。出于安全,部分內(nèi)容已打馬賽克。采用何種模式做主從由RDS MySQL版本決定。本文主要使用RDS MySQL 5.6版作為樣例說(shuō)明,使用新的GTID模式做主從。5.5版配置主從更加簡(jiǎn)單,前15步操作一樣,沒(méi)有16、17步操作,18步使用binlog文件和位置的傳統(tǒng)模式做主從,修改對(duì)應(yīng)SQL語(yǔ)句即可,這里就不多加說(shuō)明了。
1.阿里云使用了開(kāi)源的Percona Xtrabackup工具對(duì)RDS MySQL做全量物理備份。使用阿里云ECS自建從庫(kù)仍然需要使用該工具導(dǎo)入全量備份數(shù)據(jù)。為了解決安裝時(shí)遇到的包依賴問(wèn)題,推薦使用yum安裝Percona Xtrabackup,建議安裝最新版。
wget https://www.percona.com/redir/downloads/percona-release/redhat/latest/percona-release-0.1-4.noarch.rpm
rpm -ivh percona-release-0.1-4.noarch.rpm
yum -y install percona-xtrabackup-24
2.登錄阿里云管理控制臺(tái),點(diǎn)擊左側(cè)邊欄的云數(shù)據(jù)庫(kù)RDS版,點(diǎn)擊管理。
3.點(diǎn)選備份恢復(fù),而后點(diǎn)擊下載。
4.點(diǎn)擊復(fù)制內(nèi)網(wǎng)地址。若打算作為從庫(kù)的ECS主機(jī)和RDS不在同一個(gè)區(qū)域則點(diǎn)擊復(fù)制外網(wǎng)地址。
5.登錄ECS下載備份,備份地址URL含有特殊關(guān)鍵字符,直接使用wget工具下載報(bào)403錯(cuò)誤,需要使用英文單引號(hào)括起來(lái)。若備份較大可以使用screen工具后臺(tái)運(yùn)行下載任務(wù)。
wget -c '備份地址URL' -O full.tar.gz
6.下載阿里備份專屬解壓腳本。
wget 'http://oss.aliyuncs.com/aliyunecs/rds_backup_extract.sh?spm=5176.775973700.0.0.n9b8wj&file=rds_backup_extract.sh' -O rds_backup_extract.sh
7.解壓備份至指定目錄。
bash rds_backup_extract.sh -f full.tar.gz -C 目錄
8.應(yīng)用日志,目錄為第7步指定目錄,當(dāng)運(yùn)行結(jié)果最后一行顯示completed OK!,則表明操作成功。
innobackupex --apply-log 目錄
9.將解壓文件backup-my.cnf所有內(nèi)容添加至對(duì)應(yīng)MySQL配置文件my.cnf中,若配置沖突,使用backup-my.cnf內(nèi)容替換my.cnf同名參數(shù)值。目錄為第7步指定目錄。
cat 目錄/backup-my.cnf
10.拷貝或移動(dòng)完成應(yīng)用日志操作的已解壓備份至MySQL數(shù)據(jù)目錄,需my.cnf添加datadir參數(shù)指定,--copy-back參數(shù)為拷貝,--move-back參數(shù)為移動(dòng)。目錄為第7步指定目錄,若第7部指定的目錄即為MySQL數(shù)據(jù)目錄,則無(wú)需此步操作。
innobackupex --defaults-file=/etc/my.cnf --move-back 目錄
11.修改MySQL數(shù)據(jù)目錄權(quán)限并啟動(dòng)MySQL。
chown -R mysql:mysql 數(shù)據(jù)目錄
/etc/init.d/mysqld start
12.登錄阿里云管理控制臺(tái),點(diǎn)擊賬號(hào)管理,而后點(diǎn)擊頁(yè)面中的創(chuàng)建賬號(hào)。
13.按照提示填寫(xiě)相關(guān)內(nèi)容,復(fù)制賬號(hào)只需只讀權(quán)限即可,填寫(xiě)完后,點(diǎn)擊確定按鈕。
14.點(diǎn)擊數(shù)據(jù)安全性,選擇修改。
15.添加ECS從機(jī)的IP地址至組內(nèi)白名單,IP地址使用英文逗號(hào)分隔。
16.登錄MySQL終端,清理復(fù)制關(guān)系表數(shù)據(jù)。
RESET MASTER;
RESET SLAVE;
TRUNCATE TABLE mysql.slave_relay_log_info;
TRUNCATE TABLE mysql.slave_master_info;
TRUNCATE TABLE mysql.slave_worker_info;
17.從庫(kù)配置文件my.cnf添加以下內(nèi)容或者替換已有參數(shù)后重啟。/etc/init.d/mysqld restart重啟服務(wù)開(kāi)啟GTID模式。
master-info-repository=file
relay-log-info_repository=file
binlog-format=ROW
gtid-mode=on
enforce-gtid-consistency=true
18.讀取第7步指定目錄下的xtrabackup_slave_info文件內(nèi)容,文件1、2行依次對(duì)應(yīng)以下4行SQL語(yǔ)句中的第2、3行,文件第1行無(wú)需修改,原樣執(zhí)行。文件第2行,添加內(nèi)容修改為第3行SQL語(yǔ)句樣式。登錄MySQL終端依次執(zhí)行SQL語(yǔ)句。
STOP SLAVE;
SET GLOBAL gtid_purged='49dde677-5827-11e5-8c5c-288023a0e898:1-21409262, 59bc2959-5827-11e5-8c5c-288023a0e9ac:1-8910790';
CHANGE MASTER TO MASTER_HOST='RDS訪問(wèn)地址', MASTER_PORT=3306, MASTER_USER='復(fù)制賬號(hào)', MASTER_PASSWORD='密碼', MASTER_AUTO_POSITION=1;
START SLAVE;
19.MySQL終端查詢主從復(fù)制狀態(tài)。
SHOW SLAVE STATUS \G
若Slave_IO_Running和Slave_SQL_Running兩行值都為Yes則表明主從復(fù)制狀態(tài)正常。