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

今天小编讲的是Mysql实现企业级数据库主从复制架构实战,怎么样,听起来就很高端,先看一张架构图:


一、 环境准备:

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

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

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

二、 准备步骤:

1iptables -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#关闭名称解析,(非必须)

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

2.创建复制帐号

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

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

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


 下面俩参数为y(yes)


3.查看主服务器状态

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

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
  • 查看一下二进制日志是否生成:

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

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

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

CHANGE MASTER TOMASTER_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;

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

6、查看从服务器状态

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

Slave_IO_Running: Yes #IO线程正常运行

Slave_SQL_Running: Yes #SQL线程正常运行

  1. 验证:

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

Masterusemagedu;  create table M27(id int notnull,name char(20));

Slave usemagedu;  show tables;

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

  • 锁表: MariaDB [mysql]> flush tables with read lock;
  • 解锁:MariaDB [mysql]> unlock tables;
  • 不建议锁表,会屏蔽所有的

四、 添加新slave服务器

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

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

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

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

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

(2)数据库的备份数据

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

扩展:

互为主从的配置:

在实验一的基础上进行更改:

mastervim /etc/my.cnf


  • 重启服务:systemctl restart mariadb
  • 进入mariadbmysql -uroot -p123456
  • 查看状态:show master status

  • slave上创建账户:
  • 启动服务器复制线程

  • 启动:start slave
  • 查看状态:show master status

Slave 操作:

slavevim /etc/my.cnf


  • 重启服务:systemctl restart mariadb
  • 查看状态:show master status
  • 启动从服务器复制线程

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

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

CHANGE MASTER TOMASTER_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;


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

  • 查看slave状态:show slave status\G;

测试:

master里创建自增长ID


查看表结构:

好了,小编讲完了哦



















  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值