1. 程式人生 > >使用多實例進行主從復制實踐案例(一主一從)

使用多實例進行主從復制實踐案例(一主一從)

主從復制 案列

環境:多實例

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

使用多實例進行主從復制實踐案例(一主一從)