Mysql数据库实现企业级数据库主从复制架构实战教程
小标 2018-03-05 来源 :网络 阅读 1044 评论 0

摘要:Mysql实现企业级数据库主从复制架构实战

首先看一下主从架构的图片:

Mysql数据库实现企业级数据库主从复制架构实战教程

实战演练


Mysql实现企业级数据库主从复制架构实战:


一、 环境准备:


centos系统服务器2台、 一台用户做Mysql主服务器, 一台用于做


Mysql从服务器, 配置好yum源、 防火墙关闭、 各节点时钟服务同


步、 各节点之间可以通过主机名互相通信


二、 准备步骤:


1、 iptables -F && setenforce 清空防火墙策略,关闭selinux


2、 拿两台服务器都使用yum方式安装Mysql服务, 要求版本一致


3、 分别启动两台服务器mysql服务, 确保服务正常


yum install mariadb -y
yum install mariadb-server

三、实现步骤:


1、配置master主服务器


对master进行配置,包括打开二进制日志,指定唯一的servr ID。例如,在配置文件加入如下值


位置:vim /etc/my.cnf


server-id=1 #配置server-id,让主服务器有唯一ID号


log-bin=mysql-bin #打开Mysql日志,日志格式为二进制


skip-name-resolve#关闭名称解析,(非必须)

Mysql数据库实现企业级数据库主从复制架构实战教程

这里写图片描述

查看二进制日志:mysqlbinlog mysql-bin.


2.创建复制帐号


在Master的数据库中建立一个备份帐户:每个slave使用标准的MySQL用户名和密码连接master


。进行复制操作的用户会授予REPLICATION SLAVE权限。

GRANT REPLICATION SLAVE, REPLICATION CLIENT ON . TO slave@’172.17.%.%’ IDENTIFIED BY ‘magedu’;

Mysql数据库实现企业级数据库主从复制架构实战教程

下面俩参数为y(yes)

Mysql数据库实现企业级数据库主从复制架构实战教程

3.查看主服务器状态


在Master的数据库执行show master status,查看主服务器二进制日志状态

Mysql数据库实现企业级数据库主从复制架构实战教程

4、配置slave从服务器


对slave进行配置,打开中继日志,指定唯一的servr ID,设置只读权限。在配置文件加入如下值


位置:vim /etc/my.cnf


server-id=2 #配置server-id,让从服务器有唯一ID号


relay_log = mysql-relay-bin #打开Mysql日志,日志格式为二进制


read_only = 1 #设置只读权限


log_bin = mysql-bin #开启从服务器二进制日志


log_slave_updates = 1 #使得更新的数据写进二进制日志中


重启数据库:systemctl start mariadb


查看一下二进制日志是否生成:

Mysql数据库实现企业级数据库主从复制架构实战教程


5.启动从服务器复制线程


让slave连接master,并开始重做master二进制日志中的事件。


位置:mysql -uroot -p123456 然后直接输入命令即可;


CHANGE MASTER TO MASTER_HOST=’172.17.252.233’,
MASTER_USER=’slave’,
MASTER_PASSWORD=’magedu’,
MASTER_LOG_FILE=’mysql-bin.000001’,
MASTER_LOG_POS=278; #查看:MariaDB [mysql]> show binlog events;

Mysql数据库实现企业级数据库主从复制架构实战教程

执行start slave;# 启动复制线程。


6、查看从服务器状态


可使用SHOW SLAVE STATUS\G查看从服务器状态,如下所示,也可用show processlist \G查看当前复制状态:


Slave_IO_Running: Yes #IO线程正常运行


Slave_SQL_Running: Yes #SQL线程正常运行


7. 验证:


在master中创建数据库,以及表,然后再从服务器上查看有木有:


Master:use magedu; create table M27(id int not null,name char(20));
Slave :use magedu; show tables;


在slave上也是可以创建表的,这样会造成数据不同步的情况,可采取锁表,不过这样也会造成不能同步master其他操作


锁表:

 MariaDB [mysql]> flush tables with read lock;


解锁:

MariaDB [mysql]> unlock tables;


不建议锁表,会屏蔽所有的


四、 添加新slave服务器


假如master已经运行很久了, 想对新安装的slave进行数据同步, 甚至它没有master的数据。


此时, 有几种方法可以使slave从另一个服务开始, 例如, 从master拷贝数据, 从另


一个slave克隆, 从最近的备份开始一个slave。 为了加快Slave与master同步, 可


用以下方式先进行数据同步:


(1)master的某个时刻的数据快照;


(2)数据库的备份数据


(3)master的二进制日志文件。

本文由职坐标整理并发布,了解更多内容,请关注职坐标MySQL数据库频道!


本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程