使用多實例進行主從復制實踐案例(一主一從)
環境:多實例
10.0.0.52 3306
10.0.0.52 3307
3306---->3307復制---->3309
---->3008復制
3306<---->3307
架構實踐:
3306---->3307
1開啟主庫binlog,配置server-id
[[email protected] ~]# egrep -i"server-id|log-bin" /data/3306/my.cnf
log-bin = /data/3306/mysql-bin
server-id = 6 #註意id號不能一樣,要區別
重啟服務
開啟主庫binlog日誌
vim /data/3306/my.cnf
pid-file = /data/3306/mysql.pid
log-bin = /data/3306/mysql-bin ###將此行註釋去掉,然後重新啟動多實例
relay-log = /data/3306/relay-bin
"/data/3306/my.cnf" [dos]72L, 1824C written
[[email protected] backup]#
從庫
[[email protected] ~]# egrep -i"server-id|log-bin" /data/3307/my.cnf
#log-bin = /data/3307/mysql-bin
server-id = 7
2.主庫創建用戶
mysql> grant replication slave on *.* to [email protected]%‘identified by ‘oldboy123‘;
Query OK, 0 rows affected (0.04 sec)
mysql> select user,host frommysql.user;
+------+------------+
| user | host |
+------+------------+
| root | 127.0.0.1 |
| rep | 172.16.1.% |
3.主庫導出數據
按照我們講過的內容,直接取今天00點的備份就可以
mysql> flush table with read lock; ####一般大部分情況不需要鎖庫,因為備份的時候已經有參數備份了。
Query OK, 0 rows affected (0.00 sec)
mysql> show master status; ####獲取binlog日誌關鍵點
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 | 120 | | | |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
mysqldump
cp/tar
xtrabackup
拿到位置點是關鍵
mysql-bin.000001 120
[[email protected] ~]# mysqldump -B --master-data=2 --single-transaction -S/data/3306/mysql.sock -A|gzip>/data/backup/all_$(date +%F).sql.gz
[[email protected] ~]# ls -l /data/backup/
總用量 228
-rw-r--r-- 1 root root 178468 6月 28 11:11 all_2017-06-28.sql.gz
主庫解鎖:
mysql> unlock table;
Query OK, 0 rows affected (0.00 sec)
4.從庫導入全備的數據
[[email protected] backup]# gzip -d all_2017-06-28.sql.gz
[[email protected] backup]# mysql -S /data/3307/mysql.sock <all_2017-06-28.sql
5.找位置點,然後change master從庫
[[email protected] backup]# sed -n ‘22p‘all_2017-06-28.sql
-- CHANGE MASTER TOMASTER_LOG_FILE=‘mysql-bin.000001‘, MASTER_LOG_POS=120;
進入數據庫中,然後輸入下面內容
CHANGE MASTER TO
MASTER_HOST=‘172.16.1.52‘, ###主數據庫的IP地址
MASTER_PORT=3306, ###主數據庫的端口
MASTER_USER=‘rep‘, ###連接主數據庫的用戶名
MASTER_PASSWORD=‘oldboy123‘, ####連接主數據庫的密碼
MASTER_LOG_FILE=‘ oldboy-bin.000005‘, ###主數據庫上的binlog日誌
MASTER_LOG_POS=223; ###主數據庫的binlog日誌關鍵點
mysql> start slave; ###開啟從庫
Query OK, 0 rows affected (0.03 sec)
6.查看從庫是否配置正確
mysql> show slave status\G
[[email protected] backup]# mysql -S/data/3307/mysql.sock -e "show slave status\G"|egrep"_Running|Behind_Master"|head -3
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Seconds_Behind_Master: 0
提示:一主多從類似於一主一從
本文出自 “寫個博客騙錢” 博客,請務必保留此出處http://dadonggg.blog.51cto.com/12672150/1948362
使用多實例進行主從復制實踐案例(一主一從)