mysql基础搭建_mysql AB 的基本搭建

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

8e1837655b06d4548e0b132d4fa8d42c.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)设置数据库

注意:Master和Slave的底层数据完全一样,才可以做同步,同步的是sql语句。

a)创建westos数据库

mysql -pwestos -e “create database westos”

b)在Master端查看master的状态

88665f3b7aa54a5aa3d3df159a31535a.png

c)在Slave端执行以下命令

42caaef20db4f2891fa530649da22e9c.png

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

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

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

测试

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

Master:

d78017616f669698946f8055415efd20.png

Slave:

e6de6a20d4a4b10a4c3dedf5503acf6c.png

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

28574fec3949ae76f2597f62f373bbc3.png

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

1daeccf3400a06e040cc7122e55f641d.png

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

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

FLUSH TABLES WITH READ LOCK;#锁表

UNLOCK TABLES;#表解锁

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

18f92e6727e174ddf29a90db9e467ba2.png

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

50a5f076da4a6bccd46db9c43206cc57.png

......

position 为106~698

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

bb6b2afba4ffdf6e21191ccbfaa462da.png

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

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

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

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

f964da44e91a077ad17fb4b7d30a3465.png

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

dc100d4e7fc3ce1ab37019d93462f0d1.png

Mysql 5.7 GTID 多线程

Master 172.25.23.5

Slave172.25.23.6

Selinux iptables disbaled 加解析

二.

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

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

def3d2c816d182ac12db9e78470030df.png

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

19c059d2f728f4576261433f16f060ad.png

3.给予slave权限

26725ec1b4aebdf56e9b7e6537985d29.png

d758758d8775748596f15c1ceb01517e.png

.....

9a39b0d4d7d0ef37ea6532af0ffa5e82.png

还未做修改,所以为空

SLAVE

1.修改配置文件

vim /etc/my.cnf

[mysqld]

server-id=2

gtid-mode=on

enforce-gtid-consistency=on

/etc/init.d/mysqld restart

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

72d7ff7e9f2ff92222cb478435a71bc5.png85f4d63a8a12e30d42fdbb78ee264734.png

......

7183054d8f3dab67efde85f96b994566.png

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

3.测试

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

59e04b97c6e59e8b5e37a1416a1079e8.png

每做一次修改,gtid会增加

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

4569b3c38bd4d436897fa9a7c68c4f0e.png

......

4f2b1a7c0d5a87d234b700b209b4d053.png

1178cf8a5073d80452af58d977f68a4e.png

5.多线程

(1)单线程

2bd4e243547647783fbf5f81ec849e87.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)

67f426e8a816b8448848fcd1cf482d32.png

......

4cedad4c88cd32ea40e8d72a34f71493.png

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

449452d96297ef265af6b5638ea1ead0.png

13e2893ba9b855c3be6abdd86846f297.png

call test1 --> 触发

Mysqldump 单线程备份

Mysqlpump Mydumper 多线程备份

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值