中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL5.7的AB復制以及 GTID多線程復制 配置

發布時間:2020-07-17 11:33:26 來源:網絡 閱讀:5446 作者:SUZUKI卜 欄目:數據庫

mysql AB復制

 

三臺主機:MASTER IP172.25.35.21

          SLAVE1 IP172.25.35.22

          SLAVE2 IP172.25.35.19

MYSQL版本:mysql5.7

 

下載安裝包

mysql-community-client-5.7.11-1.el6.x86_64.rpm

mysql-community-common-5.7.11-1.el6.x86_64.rpm

mysql-community-libs-5.7.11-1.el6.x86_64.rpm

mysql-community-libs-compat-5.7.11-1.el6.x86_64.rpm

mysql-community-server-5.7.11-1.el6.x86_64.rpm

 

安裝

yum install * -y    安裝所有

啟動 mysql    5.7版本啟動時會隨機生成root初始密碼

cat /var/log/mysqld.log  | grep password    過濾出初始密碼

 

 

初始密碼為:wy+egrCeB1Ul

 

mysql_secure_installation    初始化數據庫

更改數據庫root密碼  5.7版本要求密碼包括大寫和小寫字母、特殊符號、數字

 

Mysql  -uroot   -p   用新更改的密碼登陸

 

master主機上

 

vim  /etc/my.cnf

添加:

server-id=1

log-bin=mysql-bin                           

binlog-do-db=moto                         同步的數據庫為moto

binlog-ignore-db=mysql                      不同步 mysql

 

/etc/init.d/mysqld   restart                     每次更改完my.cnf 文件要重起mysqld

 

登陸mysql

 

mysql> CREATE DATABASE moto;    添加數據庫

MySQL5.7的AB復制以及 GTID多線程復制  配置

mysql> SHOW DATABASES;      查看數據庫

MySQL5.7的AB復制以及 GTID多線程復制  配置

mysql> GRANT REPLICATION SLAVE  ON *.* TO  pop@'172.25.35.22' IDENTIFIED BY 'Poiu@123';      slave1 主機172.25.35.22 授權 可以用pop用戶 登陸  

 

Mysql> SHOW MASTER STATUS;    查看MASTER 狀態

MySQL5.7的AB復制以及 GTID多線程復制  配置


記下file名與position

 

slave1主機上

 

pop用戶登陸驗證授權是否成功

[root@mysql2 mysql]# mysql -h 172.25.35.21 -u pop -p

Enter password:       輸入pop用戶密碼

mysql> SHOW DATABASES;

MySQL5.7的AB復制以及 GTID多線程復制  配置

 

vim  /etc/my.cnf

添加:

server-id=2

/etc/init.d/mysqld   restart     重起數據庫

 

登陸slave1主機的mysql

mysql> CREATE DATABASE moto;   同步之前要保證masterslave主機的數據庫信息一致所以為slave1創建moto數據庫

mysql>CHANGE MASTER TO MASTER_HOST=172.25.35.21’,MASTER_USER=’pop’,

MASTER_PASSWORD=’Poiu@123’,MASTER_LOG_FILE=‘mysql-bin.000002’MASTER_LOG_POS=1817;

mysql> START SLAVE;

mysql> SHOW SLAVE STATUS\G;   查看slave狀態

MySQL5.7的AB復制以及 GTID多線程復制  配置

看到的信息與剛才設置的相同;

看到IO/SQL  yes  表示正常

 

測試:

master主機數據庫中

 

mysql>USE moto;

mysql>CREATE TABLE GP( NUM VARCHAR(15) NOT NULL,TEAM VARCHAR(25) NOT NULL);                 創建表GP

mysql> INSERT INTO GP VALUES('93','HONDA');    給表中添加信息

mysql> INSERT INTO GP VALUES('46','YAMAHA');


MySQL5.7的AB復制以及 GTID多線程復制  配置


slave1主機上

登陸數據庫

mysql>USE moto;

mysql> SELECT * FROM GP;

MySQL5.7的AB復制以及 GTID多線程復制  配置

可以看到master剛才添加的信息已經同步到了slave主機上

單向同步完成


單向master> slave1>slave2

原理:master 作為slave1masterslave1又作為slave2master,逐級同步 slave2只同步slave1上的 數據而不是直接去master上取數據

 

配置:

保持master不變、添加slave2 172.25.35.19 主機

 

slave2上安裝需要的軟件,啟動,并更改數據庫root用戶密碼

vim /etc/my.cnf

添加:

server-id=3      每臺主機的server-id都是唯一的、開啟美表一個文件功能

 

重啟mysqld

####不要忘記,作同步的主機、初始的數據庫狀態必須保持一致,在配置slave2之前先將master上的數據庫數據先復制一份給slave2并導入數據庫中

 

master

mysqldump -u root -p  moto > moto.back     moto數據庫的信息備份一份出來

scp moto.back 172.25.35.19:/mnt        拷貝一份到slave2

 

slave2

mysql -uroot -p moto < /mnt/moto.back     將備份的導入數據庫中   注意slave2本地數據庫重要先創建moto數據庫    這時slave2master數據庫信息一致

 

slave1

vim /etc/my.cnf

添加:

log-bin=mysql-bin          定義二進制日志

binlog-do-db=moto      

binlog-ignore-db=mysql    

log-slave-updates

 

保存后重啟mysqld服務

登陸數據庫

授權:

mysql> GRANT REPLICATION SLAVE  ON *.* TO  pop@'172.25.35.19' IDENTIFIED BY 'Poiu@123';                              slave2 主機授權

 

mysql>SHOW MASTER STATUS;

MySQL5.7的AB復制以及 GTID多線程復制  配置

slave2主機上

進入數據庫:

mysql> CHANGE MASTER TO MASTER_HOST='172.25.35.21',MASTER_USER='pop',MASTER_PASSWORD='Poiu@123',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=447;     指定同步數據的master主機是172.25.35.21   

mysql>START SLAVE

mysql>SHOW SLAVE STATUS\G;

MySQL5.7的AB復制以及 GTID多線程復制  配置

看到IO/SQL  yes 并且沒有報錯說明成功

 

當在master端改變數據庫信息時、可以看到slave1slave2主機信息都在發生改變

 

 

GTID AB復制:

 

使用masterslave1

master上:

Vim /etc/my.cnf

添加:

gtid-mode=on                  打開gtid模塊

Enforc e-gtid-consistency=on

 

slave1

Vim /etc/my.cnf

注釋掉剛才作為master時添加的:

#log-bin=mysql-bin

#binlog-do-db=westos

#binlog-ignore-db=mysql

#log-slave-updates

添加:

gtid-mode=on                  打開gtid模塊

Enforc e-gtid-consistency=on         設置強行同步,保證主從數據的一致性

 

兩臺主機上重啟mysqld

 

GTIDAB復制需要重新做change master操作

 

slave1

進入數據庫執行

mysql> change master to master_host='172.25.35.21',master_user='pop',master_password='Poiu@123',master_auto_position=1;    

 

master

進入數據庫給共享數據庫的表中做兩次添加操作后可以看到slave1

MySQL5.7的AB復制以及 GTID多線程復制  配置


GTID 多線程復制:

 

slave1上:

Vim /etc/my.cnf

 

添加:

slave-parallel-type=LOGICAL_CLOCK      

slave-parallel-workers=16       指定線程數  官方推薦為16  0表示不使用多線程而是使用AB復制

master_info_repository=TABLE

relay_log_info_repository=TABLE

 

/etc/init.d/mysqld restart    每次更改文件后要重啟數據庫

 

登陸數據庫

mysql> show processlist


MySQL5.7的AB復制以及 GTID多線程復制  配置




會看到有十六個線程mysql5.7的多線程并行復制、解決了mysql以前為人詬病的復制延遲的問題,使從機的復制效率大大提升。

 

 

 

****當同步做好后slave主機上的數據不能更改、只能更改master的數據




向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

建湖县| 东城区| 巩留县| 贵德县| 文成县| 彭阳县| 城固县| 黄山市| 长丰县| 襄垣县| 平舆县| 连江县| 常宁市| 武川县| 三江| 张家界市| 资中县| 射阳县| 余庆县| 镇赉县| 土默特右旗| 夏河县| 博客| 九台市| 义马市| 禄丰县| 建昌县| 潜山县| 永川市| 曲水县| 江口县| 高青县| 天台县| 高安市| 扶余县| 怀化市| 兴文县| 卢氏县| 江西省| 酒泉市| 龙陵县|