MysqlAB复制

实验环境

Master 172.25.23.4

Slave1 172.25.23.5

Slave2 172.25.23.6

Selinux iptables disabled 加解析

注意:mysqlAB复制,masterslave的数据库版本要么一样,要么slave的版本高于master

 

Mysql 5.1

一.Mysql AB 复制

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)设置数据库,创建同步帐户,并给予权限

mysql AB 的基本搭建_AB 

 

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的状态

mysql AB 的基本搭建_AB_02 

c)Slave端执行以下命令

mysql AB 的基本搭建_复制_03 

注意:确保Salve_IO_Running Slave_SQL_Running 必须为yes ,这样表明数据库正在同步

Salve_IO_Running No ----> 关注用户访问和网络设置(iptables selinux disabled

Slave_SQL_RunningNo ----> 两边的基础数据要一致

 

测试

Master 端添加,修改数据库,可以在Slave 端同步

Master

mysql AB 的基本搭建_复制_04 

Slave

mysql AB 的基本搭建_AB_05 

 

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 上创建同步帐户,并给予权限

mysql AB 的基本搭建_MySQL_06 

(2) slave2 上执行以下命令

mysql AB 的基本搭建_MySQL_07 

 

4.将原有的数据备份到slave2

由于 master 上已经有数据,而新加的 slave2 没有,必须在配置复制前同步数据,最好在备份数据的时候,将master锁住,完成之后解锁,防止在备份的时候写入数据

FLUSH TABLES WITH READ LOCK;#锁表

UNLOCK TABLES;#表解锁

(1) master上的二进制记录文件拷到slave2

mysql AB 的基本搭建_AB_08 

(2) 查看记录文件中所需要拷贝内容的起止结束时间,或起止结束position

mysql AB 的基本搭建_复制_09 

......

position 106 698

 

(3) 将所需要的内容拷贝到slave2mysql

mysql AB 的基本搭建_复制_10 

(4) 也可以通过mysqldump来进行数据库的备份

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

再将备份好的backup.db传入slave2上的数据库

(5) 进入slave2中的数据库,可以查看到备份过来的数据          

mysql AB 的基本搭建_AB_11 

5.master端更新数据,salve1 slave2均可同步到

 mysql AB 的基本搭建_MySQL_12 

 

Mysql 5.7 GTID 多线程

Master 172.25.23.5

Slave 172.25.23.6

Selinux iptables disbaled 加解析

二.

1.删除掉现在所使用的mysql的所有信息,卸载掉所有相关软件

2.安装mysql 5.7 ,启动 ,初始化

mysql AB 的基本搭建_复制_13 

/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 ,可看到

mysql AB 的基本搭建_复制_14 

3.给予slave权限

mysql AB 的基本搭建_MySQL_15 

mysql AB 的基本搭建_AB_16 

.....

mysql AB 的基本搭建_复制_17 

还未做修改,所以为空

 

SLAVE

1.修改配置文件

vim /etc/my.cnf

[mysqld]

server-id=2

gtid-mode=on

enforce-gtid-consistency=on

/etc/init.d/mysqld restart

2.数据库中执行以下命令

mysql AB 的基本搭建_AB_18mysql AB 的基本搭建_MySQL_19 

......

mysql AB 的基本搭建_MySQL_20 

Second_Behind_Master : 延迟(仅作为参考数据)

3.测试

Master 端的westos数据库中做任何修改,Slave都可以被同步

mysql AB 的基本搭建_MySQL_21 

每做一次修改,gtid会增加

4.使用mysql 5.7版的,其二进制文件会是加密状态

mysql AB 的基本搭建_AB_22 

......

mysql AB 的基本搭建_AB_23 

 

 

mysql AB 的基本搭建_MySQL_24 

5.多线程

(1)单线程

mysql AB 的基本搭建_复制_25 

(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)

mysql AB 的基本搭建_复制_26 

......

mysql AB 的基本搭建_AB_27 

 

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

mysql AB 的基本搭建_复制_28 

mysql AB 的基本搭建_复制_29 

call test1 --> 触发

 

Mysqldump 单线程备份

Mysqlpump Mydumper 多线程备份