当前位置: 首页>移动开发>正文

ADB与mysql的区别 mysql aba

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

ADB与mysql的区别 mysql aba,ADB与mysql的区别 mysql aba_运维,第1张

 

 

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

ADB与mysql的区别 mysql aba,ADB与mysql的区别 mysql aba_开发工具_02,第2张

 

c)在Slave端执行以下命令

ADB与mysql的区别 mysql aba,ADB与mysql的区别 mysql aba_数据库_03,第3张

 

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

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

Slave_SQL_Running:No ----> 两边的基础数据要一致

 

测试

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

Master:

ADB与mysql的区别 mysql aba,ADB与mysql的区别 mysql aba_开发工具_04,第4张

 

Slave:

ADB与mysql的区别 mysql aba,ADB与mysql的区别 mysql aba_数据库_05,第5张

 

 

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

ADB与mysql的区别 mysql aba,ADB与mysql的区别 mysql aba_ADB与mysql的区别_06,第6张

 

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

ADB与mysql的区别 mysql aba,ADB与mysql的区别 mysql aba_运维_07,第7张

 

 

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

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

FLUSH TABLES WITH READ LOCK;#锁表

UNLOCK TABLES;#表解锁

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

ADB与mysql的区别 mysql aba,ADB与mysql的区别 mysql aba_开发工具_08,第8张

 

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

ADB与mysql的区别 mysql aba,ADB与mysql的区别 mysql aba_开发工具_09,第9张

 

......

position 为 106 ~ 698

 

(3) 将所需要的内容拷贝到slave2的mysql中

ADB与mysql的区别 mysql aba,ADB与mysql的区别 mysql aba_ADB与mysql的区别_10,第10张

 

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

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

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

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

ADB与mysql的区别 mysql aba,ADB与mysql的区别 mysql aba_数据库_11,第11张

 

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

 

ADB与mysql的区别 mysql aba,ADB与mysql的区别 mysql aba_运维_12,第12张

 

 

Mysql 5.7 GTID 多线程

Master 172.25.23.5

Slave 172.25.23.6

Selinux iptables disbaled 加解析

二.

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

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

ADB与mysql的区别 mysql aba,ADB与mysql的区别 mysql aba_ADB与mysql的区别_13,第13张

 

/etc/init.d/mysqld start

注意:初始密码在日志中查看

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

ADB与mysql的区别 mysql aba,ADB与mysql的区别 mysql aba_ADB与mysql的区别_14,第14张

 

3.给予slave权限

ADB与mysql的区别 mysql aba,ADB与mysql的区别 mysql aba_数据库_15,第15张

 

ADB与mysql的区别 mysql aba,ADB与mysql的区别 mysql aba_mysql_16,第16张

 

.....

ADB与mysql的区别 mysql aba,ADB与mysql的区别 mysql aba_开发工具_17,第17张

 

还未做修改,所以为空

 

SLAVE

1.修改配置文件

vim /etc/my.cnf
[mysqld]
server-id=2
gtid-mode=on
enforce-gtid-consistency=on
/etc/init.d/mysqld restart

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

ADB与mysql的区别 mysql aba,ADB与mysql的区别 mysql aba_开发工具_18,第18张

ADB与mysql的区别 mysql aba,ADB与mysql的区别 mysql aba_开发工具_19,第19张

 

......

ADB与mysql的区别 mysql aba,ADB与mysql的区别 mysql aba_开发工具_20,第20张

 

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

3.测试

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

ADB与mysql的区别 mysql aba,ADB与mysql的区别 mysql aba_ADB与mysql的区别_21,第21张

 

每做一次修改,gtid会增加

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

ADB与mysql的区别 mysql aba,ADB与mysql的区别 mysql aba_运维_22,第22张

 

......

ADB与mysql的区别 mysql aba,ADB与mysql的区别 mysql aba_开发工具_23,第23张

 

 

 

ADB与mysql的区别 mysql aba,ADB与mysql的区别 mysql aba_mysql_24,第24张

 

5.多线程

(1)单线程

ADB与mysql的区别 mysql aba,ADB与mysql的区别 mysql aba_开发工具_25,第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)

ADB与mysql的区别 mysql aba,ADB与mysql的区别 mysql aba_开发工具_26,第26张

 

......

ADB与mysql的区别 mysql aba,ADB与mysql的区别 mysql aba_开发工具_27,第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

ADB与mysql的区别 mysql aba,ADB与mysql的区别 mysql aba_开发工具_28,第28张

 

ADB与mysql的区别 mysql aba,ADB与mysql的区别 mysql aba_数据库_29,第29张

 

call test1 --> 触发

 

Mysqldump 单线程备份

Mysqlpump Mydumper 多线程备份

 

 


转载于:https://blog.51cto.com/11851085/1847445


https://www.xamrdz.com/mobile/4wk1933571.html

相关文章: