Mysql的AB复制
实验环境
Master 172.25.23.4
Slave1 172.25.23.5
Slave2 172.25.23.6
Selinux iptables disabled 加解析
注意:mysql的AB复制,master和slave的数据库版本要么一样,要么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#必须为1到232–1之间的一个正整数
binlog-ignore-db=mysql#禁止同步 mysql 数据库
(3)启动服务
/etc/init.d/mysqld start
(4)设置数据库,创建同步帐户,并给予权限

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)设置数据库
注意:Master和Slave的底层数据完全一样,才可以做同步,同步的是sql语句。
a)创建westos数据库
mysql -pwestos -e “create database westos”
b)在Master端查看master的状态

c)在Slave端执行以下命令

注意:确保Salve_IO_Running 和Slave_SQL_Running必须为yes,这样表明数据库正在同步
Salve_IO_Running :No ---->关注用户访问和网络设置(iptables selinux disabled)
Slave_SQL_Running:No ---->两边的基础数据要一致
测试
在Master 端添加,修改数据库,可以在Slave端同步
Master:

Slave:

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

(2) 在slave2上执行以下命令

4.将原有的数据备份到slave2上
由于 master 上已经有数据,而新加的slave2没有,必须在配置复制前同步数据,最好在备份数据的时候,将master锁住,完成之后解锁,防止在备份的时候写入数据
FLUSH TABLES WITH READ LOCK;#锁表
UNLOCK TABLES;#表解锁
(1) 将master上的二进制记录文件拷到slave2

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

......
position 为106~698
(3)将所需要的内容拷贝到slave2的mysql中

(4)也可以通过mysqldump来进行数据库的备份
mysqldump --all-databases --lock-all-tables > backup.db
再将备份好的backup.db传入slave2上的数据库
(5)进入slave2中的数据库,可以查看到备份过来的数据

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

Mysql 5.7 GTID 多线程
Master 172.25.23.5
Slave172.25.23.6
Selinux iptables disbaled 加解析
二.
1.删除掉现在所使用的mysql的所有信息,卸载掉所有相关软件
2.安装mysql 5.7 ,启动 ,初始化

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

3.给予slave权限


.....

还未做修改,所以为空
SLAVE
1.修改配置文件
vim /etc/my.cnf
[mysqld]
server-id=2
gtid-mode=on
enforce-gtid-consistency=on
/etc/init.d/mysqld restart
2.数据库中执行以下命令


......

Second_Behind_Master : 延迟(仅作为参考数据)
3.测试
在Master 端的westos数据库中做任何修改,Slave都可以被同步

每做一次修改,gtid会增加
4.使用mysql 5.7版的,其二进制文件会是加密状态

......


5.多线程
(1)单线程

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

......

6.Mysqlpump5.7新增的备份工具
mysqldump -pWangjiao+0811 mysql > mysql.sql
mysqlpump -pWangjiao+0811 -B mysql westos > backup.sql
mysql -pWangjiao+0811 westos < add.sql
vim add.sql


call test1 --> 触发
Mysqldump 单线程备份
Mysqlpump Mydumper 多线程备份

1048

被折叠的 条评论
为什么被折叠?



