mysql repalication_mysql replication(主从复制)(一)MS模式

1、理论部分

1.1、mysql replication的概念:

enables data from one mysql database server(the master) to be replicated to one or more mysql database servers(the slaves).

1)可以将数据从一台数据库服务器(master)复制到一到多台数据库服务器(slave)

2)默认情况下,属于异步复制。因此无需维持长连接。

3)通过配置,你可以复制所有的库或者某几个库,甚至库中的几个表。

eb1d8ae72362f8c2784da439f87b4bf6.png

1.2、mysql replication的实现基础:

Binary Log(二进制日志)是实现mysql主从复制的基础

Binary Log的概念:所有的、无论是明确的或隐含的可以引起数据库发生改变的语句都要记录于Binary Log。

主从备份涉及的日志文件有:

Binary log(二进制日志)

Relay log(中继日志)

简单的说,就是master将数据库的改变写进二进制日志,slave同步这些二进制日志,并根据这些二进制日志进行数据库操作。

be163f109a1cd2faf791fc46134a409f.png

1.3、mysql Replication的用途

1)Fail Over(故障切换)

2)Backup Server(备份服务,不能应对错误的命令操作)

3)High Perfomance(高性能)

1.4、mysql replication的分类:

1)主从(M-S)

2)主主(M-M)

1.5、mysql replication的商业价值:

首先服务器的扩展方式有:

1)scale up:提高原有应用的服务器性能

2)scale out:原有服务器以及应用不变,增加服务器。

服务器遇到性能瓶颈,向上扩展(scale up)的成本过高,假设服务器现有价格是M,性能扩展N倍,成本往往是M*N倍还要多的多的代价才能提高N倍的性能。

bde883cdf991daa488962e13d13257a0.png

1.6、mysql的集群类型

cluster分类:

1)Load Balancing(负载均衡集群),两台服务器均同时提供服务。

2)High Availability(高可用集群),属于冗余机制,只单台提供服务。

3)High Preformance(高性能集群),例子如超级计算机,将非常大的运算需求,自动分割成N片,每一片交给一台计算机处理,处理完成后再返回结果给切割的计算机重新整合。

mysql既有负载均衡能力,又有高可用的特征,从某种意义来讲,负载均衡本身就具有高可用的特征,但高可用并不能提供负载均衡的能力。

1.7、mysql的同步异步问题

同步异步概念:

Async(异步)-通讯无确认信号返回,发送方无需等待接收方回应任务即中止,异步可以提供更好的性能表现。

Sync(同步)-通讯有确认信号返回,发送方需等待接收方回应任务才中止。

mysql主从架构属于异步架构

1.8、实现主从复制的相关线程

mysql主从的线程:

1)Dump thread,负责把数据倾泻给从服务器的线程。

2)I/o thread,负责接收主服务器倾泻过来的线程。

3)sql thread,从中继日志中读取数据并在本地应用数据的线程。

6ad026c5f9211958ec85fc62f69b1509.png

2、实验部分

2.1、实验环境

2.1.1、基本信息

1)mysql主服务器(Master):

ipaddress=10.168.0.103

hostname=sql-m

2)mysql从服务器(Slave):

ipaddress=10.168.0.104

hostname=sql-s

2.1.2、mysql的安装与初始化

In Master&Slave:

以上主机均需要先安装mysql相关rpm包:

初始化步骤如下(请根据实际情况选):

1d57c367e5504e6cda1edaf0c851d4ec.png

4357d0c115a55de4bdd9bee95fc1d1b3.png

fd005427e19c89b44dc5b3b6aba3d8f6.png

初始化完成后,做登录测试:

328a1d4312a199768df3971becd6d0a4.png

2.1.2、防火墙配置

In Master&Slave:

vim编辑/etc/sysconfig/iptables文件:

编辑完成效果:

d75f01776a19ff0ef68079bdb491492c.png

重启防火墙:

6ee05606040534ecfa8425797a50d7c4.png

2.1.3、percona xtrabackup的安装

In Master&Slave:

以上如果安装后执行innobackupex指令提示不支持mysql版本错误,请改为20版本:

2.2、实验步骤

2.2.1、step1

Slave是通过mysql连接登录到Master上读取二进制日志的。因此需要在Master上给Slave配置权限。

In Master:

数据库设置:

874d72f4b4b7ed6c5a22cde744388012.png

In Slave:

做如下测试:

68dbd1f38dd3b7dd0a494b6880fe7cf6.png

2.2.2、step2

In Master:

1)打开二进制日志,并标识server-id

2)server-id用于唯一标识主机,数字取值范围1至2的32处方减1

vim编辑/etc/my.cnf:

a0efed374153b8b203165f504e3cc07a.png

重新启动mysqld服务:

8e3c112b4ce6581d6b0a8e82911eada0.png

检查设置是否成功:

00d64951b6e6e565f76bbe8fdefe4710.png

2.2.3、step3

In Master:

制作一个Master的完整备份,并执行prepare.

cfb21f766e6a24f89989a03d5351eae6.png

8c6a75fd88dda293662c4dd8558598f3.png

以上工具可以记录二进制编号,从服务器导入数据后再后执行同步会从该编号后面开始执行。

2.2.4、step4

把备份拷贝到slave,并放入数据库文件目录。

In Slave

In Master:

8d155be6253aea77db25e5df808c5230.png

In Slave:

登录后做数据库检查:

2.2.5、step5

In Slave:

在Slave上配置server-id,标识服务器。

vim编辑/etc/my.cnf

配置效果:

5fef935fc4059c8e703aebba424fb755.png

配置完成后重启服务:

57ad5a5d9e539fad9ddd1901c94ad5a0.png

2.2.6、step6

In Slave:

查看并记录二进制日志中的position ID。

7b61b2b521d6a1acb30d03a6a04283db.png

记录下以上标红部分,step7要用。

2.2.7、step7

配置Slave Replication。

In Slave:

2.2.8、step8

启动Replication,并检查结果。

In Slave:

3bb1a8dc075558931cd0f3b16c4e3c82.png

红标部分都要为Yes

2c6f2158ff85f1393fe7bdc7163cc8b1.png

In Master

a130160d3ec9ee9147559bae6b9053aa.png

In Master

In Slave

对比效果如下(左Master,右Slave):

cbe45a1e39496c2af4a565114fac1b16.png

MSS模式请参阅博文:

开启GTIDs技术请参阅:

MM模式请参阅博文:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值