Mysql学习(2)——Mysql双机热备

参考博客《CentOS系统MySQL双机热备配置》
参考官方文档https://dev.mysql.com/doc/refman/5.6/en/replication.html

实现机制

对于一个MySQL服务器,一般有两个线程来负责复制和被复制。当开启复制之后:

主服务器Master,会把自己的每一次改动都记录到二进制日志 binlog 中。
从服务器Slave,会用master上的账号登陆到master上,读取master的binlog,写入到自己的中继日志 Relaylog,然后自己的SQL线程会负责读取这个中继日志,并执行一遍。

在考虑双机热备时,需要注意,一般意义上的双机热备都会有一个切换过程,这个切换过程可能是一分钟左右。在切换过程中,服务是有可能短时间中断的。但是,当切换完成后,服务将正常恢复。因此,双机热备不是无缝、不中断的,但它能够保证在出现系统故障时,能够很快恢复正常的服务,业务不致受到影响。

准备工作

类型 主机名 IP 操作系统
Master master 192.168.121.182 CentOS 7.3
slave slave 192.168.121.181 CentOS 7.3

备份前保证两个数据库的数据一致。
mysql版本为5.6.39,不同版本的mysql,配置参数可能会有差别。

两个主机关闭防火墙

测试的时候为了方便起见,先关闭两台主机的防火墙。

# systemctl stop firewalld
# systemctl disable firewalld

Master服务器配置

  • 进入MySQL命令行, 创建备份账号,即备份主机使用用户名backup,密码123456就可以连接到主服务器,进行备份
grant file,select,replication slave on  *.* to backup@192.168.121.181 identified by '123456';

这条命令的作用是在主服务器建立一个专门用于Replication的账户,@后面是账户用户所在的那台计算机的域名。
如果想要在Slave上有权限执行”LOAD TABLE FROM MASTER”或”LOAD DATA FROM MASTER”语句的话,必须授予全局的 FILE 和 SELECT 权限。
这里写图片描述
- 修改mysql的配置文件/etc/my.cnf,[mysqld]下添加:

server-id=1
log-bin=mysql-bin #打开日志开关,二进制日志文件
max_binlog_size=104857600
binlog_format=mixed #日志模式row level和statement level的结合
binlog-do-db=test #在test库进行的操作记录二进制日志文件
binlog-ignore-db=mysql #忽略对mysql库的操作,即不记录到日志中
  • 重启mysql
# systemctl restart mysqld
  • 查看mysql状态

这里写图片描述
记录二进制文件名(mysql-bin.000002)和位置(120)。

Slave服务器配置

  • 暂停Mysql服务。
# systemctl stop mysql
  • 修改mysql的配置文件/etc/my.cnf,添加如下配置:
server-id=2
replicate-do-db=test #同步master的test库
relay-log=relay-bin #设置I/O线程读master的binlog并写入本地的文件名,即为relay-log
log-bin=mysql-bin
log-slave-updates
slave-skip-errors=all
slave-net-timeout=60
  • 重启mysql:
# systemctl restart mysql
  • 打开mysql会话,执行同步SQL语句(需要主服务器主机名,登陆凭据即上文设置的同步账号密码,二进制文件的名称和位置)。
mysql> stop slave; #关闭Slave
mysql> change master to master_host='192.168.121.182',master_user='backup',master_password='123456',master_log_file='mysql-bin.000002', master_log_pos=120;
mysql> start slave; #开启Slave

这里写图片描述

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

这里需要下图红框里的状态都是Yes。
这里写图片描述

测试

上面设置的,主从同步的数据库是test。

  • 在主数据库test库中,新建一张表backup。
    这里写图片描述
    这里写图片描述
  • 在从数据库中查看。
    这里写图片描述

猜你喜欢

转载自blog.csdn.net/huqigang/article/details/79098717