MySQL數據庫熱備份
1. 集羣測試環境
1.1 環境介紹
集羣 IP : 192.168.21.113 、192.168.21.114、192.168.21.116、192.168.21.117
MySQL服務器1:192.168.21.113
MySQL服務器2:192.168.21.116
MySQL版本信息:MySQL 5.6.19
HADOOP版本號:CDH-4.5.0
操作系統:CentOS
1.2 數據庫安裝
在主機1和主機2上分別安裝好對應的數據庫版本(具體安裝介紹請參考《LINUX下安裝MySQL操作文檔》)。
2. 進行主機1的數據庫配置
2.1 添加同步賬號
登陸MySQL操作界面,在主機1服務器上爲主機2服務器建立一個用來同步的連接賬戶,該賬戶必須授予複製權限。
操作指令:
mysql> GRANT REPLICATIONCLIENT,REPLICATION SLAVE ON *.* TO kingpoint2@'192.168.21.116' IDENTIFIED BY'kingpoint';
mysql> flush privileges;
2.2 測試同步賬號的連接性
登陸主機2,用賬號kingpoint2對主機1進行數據庫訪問
操作指令:
mysql -h 192.168.21.113 -u kingpoint2 -p回車後要求輸入密碼,密碼爲kingpoint
如果登陸成功,則可以繼續進行雙機熱備,否則請查找問題。
2.3 修改主機1的配置文件
配置文件目錄爲:/etc/my.cnf
新增屬性截圖:
server-id 爲服務號必須唯一
log-bin 啓用日誌文件
binlog-do-db 需要同步的數據庫(可設置多個)
binlog-ignore-db 不需要同步的數據庫(可設置多個)
relay_lob 啓用MySQL SLAVE進程。
Log-slave 啓用日誌
log-slave-updates 自動更新
auto_increment_offset 自增標誌
修改之後重啓數據庫。
命令格式:servicemysql restart
2.4 查看主機1服務器MySQL的狀態文件
進入MySQL,輸入命令:show master status\G
結果截圖:
3. 進行主機2的數據庫配置
3.1 添加同步賬號
登陸MySQL操作界面,在主機1服務器上爲主機2服務器建立一個用來同步的連接賬戶,該賬戶必須授予複製權限。
操作指令:
GRANT REPLICATION CLIENT,REPLICATION SLAVEON *.* TO kingpoint1@'192.168.21.113' IDENTIFIED BY 'kingpoint';
mysql> flush privileges;
3.2 測試同步賬號的連接性
登陸主機1,用賬號kingpoint1對主機1進行數據庫訪問。
操作指令:
mysql -h 192.168.21.116 -u kingpoint1 -p回車後要求輸入密碼,密碼爲kingpoint
如果登陸成功,則可以繼續進行雙機熱備,否則請查找問題。
3.3 修改主機1的配置文件
配置文件目錄爲:/etc/my.cnf
修改截圖:
修改之後重啓MySQL服務。
命令格式:servicemysql restart
3.4 查看主機1服務器MySQL的狀態文件
進入MySQL,輸入命令:show master status\G
結果截圖:
4. 利用change master語句指定同步位置
4.1 指定主機1的同步源爲主機2的MySQL服務器
進入主機1的MySQL服務器
操作命令截圖:
4.2 指定主機2的同步源爲主機1的MySQL服務器
進入主機2的MySQL服務器
操作命令截圖:
5.查看同步狀態
5.1 在主機1的MySQL服務器上查看主機2的MySQL服務器的狀態(對主機1來說,主機2就是slave)
查看截圖:
查看下面兩項值均爲Yes,即表示設置從服務器成功。
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
如果爲NO,則要執行stop slave,reset slave,startslave來重啓slave服務。
5.2 在主機2的MySQL服務器上查看主機1的MySQL服務器的狀態(對主機2來說,主機1就是slave)
查看截圖:
6. 測試同步數據
6.1 在主機1的test數據庫中建表並插入測試數據。
相關命令:
Create table testdb(id int ,namevarchar(50));
Insert into testdb(1,’test1’);
6.2 在主機2的test數據庫中查看是否有同步數據。
相關命令:
Select * from testdb;
6.3 在主機2的test數據庫中建表寫數據。
相關命令:
Insert into testdb values(2,’test2’);
Create table testdb2(id int,namevarchar(50));
Insert into testdb2 vlaues(1,’test2’);
6.4 在主機1的test數據庫中查看是否有同步數據。
相關命令:
Select * from testdb;
Select * from testdb2;
如果上述四個操作都正確,則表示熱備份成功。