mysql AB 的基本搭建

MysqlAB複製mysql

實驗環境linux

Master 172.25.23.4sql

Slave1 172.25.23.5數據庫

Slave2 172.25.23.6vim

Selinux iptables disabled 加解析服務器

注意:mysqlAB複製,masterslave的數據庫版本要麼同樣,要麼slave的版本高於master網絡

 

Mysql 5.1多線程

一.Mysql AB 複製ide

MASTER工具

1.安裝軟件

yum install -y mysql-server

2.修改配置文件,啓動服務

(1)初始化數據庫

mysql_secure_installation

(2)修改配置文件 /etc/my.cnf

vim /etc/my.cnf

[mysqld]# [mysqld]下添加下參數 

log-bin=mysql-bin  # 啓動二進制日誌系統

binlog-do-db=westos # 二進制須要同步的數據庫名,若是須要同步多個庫,例如要再同步test,再添加一行binlog-do-db=test

server-id=1  # 必須爲12321之間的一個正整數

binlog-ignore-db=mysql # 禁止同步 mysql 數據庫

(3)啓動服務

/etc/init.d/mysqld start

(4)設置數據庫,建立同步賬戶,並給予權限

wKioL1fQAVbhrlVKAAECgtF4Goc659.png 

 

SLAVE1

1.安裝軟件

yum install -y mysql-server

2.修改配置文件,啓動服務

(1)初始化數據庫

mysql_secure_installation

(2)修改配置文件 /etc/my.cnf

vim /etc/my.cnf

[mysqld]# [mysqld]下添加下參數

server-id=2# 從服務器 ID ,不要和主 ID 相同,若是設置多個從服務器,每一個從服務器必須有一個惟一的 server-id ,必須與主服務器的以及其它從服務器的不相同。能夠認爲 server-id 值相似於 IP 地址:這些 ID 值能惟一識別複製服務器羣集中的每一個服務器實例。

(3)啓動服務

/etc/init.d/mysqld start

(4)設置數據庫

注意:MasterSlave的底層數據徹底同樣,才能夠作同步,同步的是sql語句。

a)建立westos數據庫

mysql -pwestos -e 「create database westos」

b)Master端查看master的狀態

wKioL1fQAZHw8-00AACK9vcMX04925.png 

c)Slave端執行如下命令

spacer.gif 

注意:確保Salve_IO_Running Slave_SQL_Running 必須爲yes ,這樣代表數據庫正在同步

Salve_IO_Running No ----> 關注用戶訪問和網絡設置(iptables selinux disabled

Slave_SQL_RunningNo ----> 兩邊的基礎數據要一致

 

測試

Master 端添加,修改數據庫,能夠在Slave 端同步

Master

spacer.gif 

Slave

spacer.gif 

 

SLAVE2

1.安裝軟件

yum install -y mysql-server

2.修改配置文件,啓動服務

(1)初始化數據庫

mysql_secure_installation

(2)修改配置文件 /etc/my.cnf

vim /etc/my.cnf

[mysqld]# [mysqld]下添加下參數

server-id=2# ID不一樣 

(3)啓動服務

/etc/init.d/mysqld start

 

(4)修改salve1上的配置文件

vim /etc/my.cnf

[mysqld]# [mysqld]下添加下參數

server-id=2

log-bin=mysql-bin

binlog-do-db=westos

binlog-ignore-db=mysql

log-slave-updates

/etc/init.d/mysqld restart

 

3.設置數據庫

(1) slave1 上建立同步賬戶,並給予權限

spacer.gif 

(2) slave2 上執行如下命令

spacer.gif 

 

4.將原有的數據備份到slave2

因爲 master 上已經有數據,而新加的 slave2 沒有,必須在配置複製前同步數據,最好在備份數據的時候,將master鎖住,完成以後解鎖,防止在備份的時候寫入數據

FLUSH TABLES WITH READ LOCK;#鎖表

UNLOCK TABLES;#表解鎖

(1) master上的二進制記錄文件拷到slave2

spacer.gif 

(2) 查看記錄文件中所須要拷貝內容的起止結束時間,或起止結束position

spacer.gif 

......

position 106 698

 

(3) 將所須要的內容拷貝到slave2mysql

wKioL1fQBS7AqAt_AABCaVHRl_0595.png 

(4) 也能夠經過mysqldump來進行數據庫的備份

mysqldump --all-databases --lock-all-tables > backup.db

再將備份好的backup.db傳入slave2上的數據庫

(5) 進入slave2中的數據庫,能夠查看到備份過來的數據          

spacer.gif 

5.master端更新數據,salve1 slave2都可同步到

 spacer.gif 

 

Mysql 5.7 GTID 多線程

Master 172.25.23.5

Slave 172.25.23.6

Selinux iptables disbaled 加解析

二.

1.刪除掉如今所使用的mysql的全部信息,卸載掉全部相關軟件

2.安裝mysql 5.7 ,啓動 ,初始化

spacer.gif 

/etc/init.d/mysqld start

注意:初始密碼在日誌中查看 cat /var/log/mysqld.log

mysql_secure_installation

 

MASTER

1.修改配置文件

vim /etc/my.cnf

[mysqld]

server-id=1

log-bin=mysql-bin

binlog-do-db=westos

gtid-mode=on

enforce-gtid-consistency=on

/etc/init.d/mysqld restart

 

2.進入mysql數據庫中的mysql ,可看到

spacer.gif 

3.給予slave權限

spacer.gif 

wKiom1fP_ijgKswBAACFyMKr9SM078.png 

.....

spacer.gif 

還未作修改,因此爲空

 

SLAVE

1.修改配置文件

vim /etc/my.cnf

[mysqld]

server-id=2

gtid-mode=on

enforce-gtid-consistency=on

/etc/init.d/mysqld restart

2.數據庫中執行如下命令

wKioL1fP_iqhLkJLAACVjDBs-Lg266.pngwKioL1fP_i2jfma8AAEkib1HFz4522.png 

......

wKiom1fP_i_DjLpuAABP2ILPbQI390.png 

Second_Behind_Master : 延遲(僅做爲參考數據)

3.測試

Master 端的westos數據庫中作任何修改,Slave均可以被同步

wKioL1fP_jXxjcylAADXUFtkYfk865.png 

每作一次修改,gtid會增長

4.使用mysql 5.7版的,其二進制文件會是加密狀態

wKiom1fP_jqiDsTQAAE0pENZGE8881.png 

......

wKiom1fP_kDiTncFAADt-fgYfIk678.png 

 

 

wKioL1fP_kKSuP9PAABXUlvWo6c611.png 

5.多線程

(1)單線程

wKioL1fP_keTE8_lAAEd1sIupGc915.png 

(2)多線程

a) 修改配置文件

vim /etc/my.cnf

[mysqld]

server-id=2

gtid-mode=on

enforce-gtid-consistency=on

slave-parallel-type=LOGICAL_CLOCK

slave-parallel-workers=16

master_info_repository=TABLE

relay_log_info_repository=TABLE

 

/etc/init.d/mysqld restart

b)

wKiom1fP_lrTvNIZAAGORlyfAgE623.png 

......

wKiom1fP_r2DkNjfAAEBwXYOKrY884.png 

 

6.Mysqlpump 5.7新增的備份工具

mysqldump -pWangjiao+0811 mysql > mysql.sql

mysqlpump -pWangjiao+0811 -B mysql westos > backup.sql

 

mysql -pWangjiao+0811 westos < add.sql

vim add.sql

wKioL1fP_sCC8yqqAAEBoT8oJ2M098.png 

wKioL1fP_sLjjUvLAACtIpUJiH0923.png 

call test1 --> 觸發

 

Mysqldump 單線程備份

Mysqlpump Mydumper 多線程備份

相關文章
相關標籤/搜索