如何实现MySQL的双机热备份?

avatar
作者
筋斗云
阅读量:0
MySQL双机热备份试验是一种用于确保数据高可用性和容灾能力的技术,通过配置两台服务器互相备份,实现数据的实时同步。

MySQL双机热备份是一种高可用性和灾难恢复策略,通过实时同步主数据库的数据到备用数据库来确保业务连续性,本文将详细介绍在Windows环境下使用MySQL 8.0.21版本进行双机热备份的实验过程,包括环境准备、账号设置、配置文件修改、服务状态检查以及数据同步测试等步骤。

如何实现MySQL的双机热备份?

试验环境

操作系统:VMware虚拟机环境,Window 7 操作系统

数据库工具软件:Navicat Premium 15

服务器配置:两台安装MySQL的服务器(计算机)分别是:

服务器A:IP地址为192.168.229.131

服务器B:IP地址为192.168.229.132

需要同步的数据库名:mytest

试验目的

学习、测试Windows下的MySQL双机热备是否可行。

准备数据库

在两台服务器上分别建立空白数据库:

 CREATE DATABASE mytest;

准备账号

在两台服务器上分别建立账号syn(账号名字随意):

  在服务器A上执行 CREATE USER 'syn'@'192.168.229.132' IDENTIFIED BY '123456'; GRANT REPLICATION SLAVE ON *.* TO 'syn'@'192.168.229.132';  在服务器B上执行 CREATE USER 'syn'@'192.168.229.131' IDENTIFIED BY '123456'; GRANT REPLICATION SLAVE ON *.* TO 'syn'@'192.168.229.131';

修改配置文件

分别修改服务器A和服务器B的配置文件my.ini,在配置文件最后添加以下代码:

服务器A配置

 serverid=1 logbin=backuplog sync_binlog=1 binlog_format=row auto_increment_increment = 2 auto_increment_offset = 1 max_binlog_size=512m expire_logs_days=1 binlog_do_db=mytest binlog_ignore_db=mysql binlog_ignore_db=information_schema replicate_do_db=mytest replicate_wild_ignore_table=mytest.logslave_skip_errors=all

服务器B配置

 serverid=2 logbin=backuplog sync_binlog=1 binlog_format=row auto_increment_increment = 2 auto_increment_offset = 2 max_binlog_size=512m expire_logs_days=1 binlog_do_db=mytest binlog_ignore_db=mysql binlog_ignore_db=information_schema replicate_do_db=mytest replicate_wild_ignore_table=mytest.logslave_skip_errors=all

重启服务器

修改完毕后,分别重启服务器。

 net stop mysql net start mysql

检查master服务状态

重启完毕后,分别检查服务器上mysql服务的状态。

 SHOW MASTER STATUS\G;

指定同步位置

CHANGE MASTER TO命令指定同步位置,在服务器A和服务器B上分别执行以下命令:

服务器A

 STOP SLAVE; CHANGE MASTER TO MASTER_HOST='192.168.229.132', MASTER_USER='replicate', MASTER_PASSWORD='123456', MASTER_LOG_FILE='backuplog.000001', MASTER_LOG_POS=0; START SLAVE;

服务器B

 STOP SLAVE; CHANGE MASTER TO MASTER_HOST='192.168.229.131', MASTER_USER='replicate', MASTER_PASSWORD='123456', MASTER_LOG_FILE='backuplog.000001', MASTER_LOG_POS=0; START SLAVE;

检查slave服务状态

 SHOW SLAVE STATUS\G;

Slave_IO_RunningSlave_SQL_Running两项的结果都必须为Yes,才表示设置从服务器成功,如果不是,则需要检查Last_IO_ErrnoLast_IO_Error两项。

测试

建表测试

在服务器A建表created_by_a

 CREATE TABLE created_by_a (id INT PRIMARY KEY, name VARCHAR(50));

插入数据测试

在服务器A插入数据:

 INSERT INTO created_by_a (name) VALUES ('Test');

删除数据

在服务器A删除数据:

 DELETE FROM created_by_a;

更新数据

在服务器A更新数据:

 UPDATE created_by_a SET name = 'Updated Test' WHERE id = 1;

关闭服务器B后测试

关闭服务器B,然后再次尝试插入数据:

  在服务器A上插入数据 INSERT INTO created_by_a (name) VALUES ('Test after B down');

通过上述步骤,可以验证MySQL双机热备份的可靠性和稳定性,确保在主服务器故障时备服务器能够正确接管并保持数据的完整性,如果所有测试都成功通过,说明双机热备配置正确且有效。


序号 操作步骤 描述 备注
1 安装MySQL 在两台服务器上安装相同的MySQL版本 确保两台服务器硬件和软件环境一致
2 创建主数据库 在主服务器上创建需要备份的数据库 确保数据库数据完整
3 配置主数据库 在主数据库中配置主从复制相关参数 包括主从同步的复制用户、密码等
4 配置从数据库 在从数据库中配置主从复制相关参数 包括设置主数据库的IP地址和端口
5 启动主从复制 在主数据库上执行start slave命令,在从数据库上执行start slave命令 确保主从复制正常运行
6 检查主从复制状态 分别在主数据库和从数据库上执行show slave statusG命令,检查主从复制状态 确保没有错误信息
7 停止主数据库服务 在主数据库服务器上停止MySQL服务 为了模拟主数据库故障
8 启动从数据库服务 在从数据库服务器上启动MySQL服务 为了模拟主数据库故障后的切换
9 检查从数据库状态 在从数据库服务器上执行show slave statusG命令,检查主从复制状态 确保从数据库已经接管主数据库的复制任务
10 恢复主数据库服务 在主数据库服务器上启动MySQL服务 为了完成主从复制测试
11 检查主从复制状态 分别在主数据库和从数据库上执行show slave statusG命令,检查主从复制状态 确保主从复制恢复正常
12 删除从数据库中的数据 在从数据库中删除主数据库中的数据 为了模拟数据恢复
13 恢复从数据库数据 将主数据库中的数据复制到从数据库 为了完成数据恢复测试
14 检查数据一致性 比较主数据库和从数据库中的数据 确保数据恢复无误
15 关闭从数据库服务 在从数据库服务器上停止MySQL服务 为了完成主从复制测试
16 恢复主数据库服务 在主数据库服务器上启动MySQL服务 为了完成主从复制测试
17 检查主从复制状态 分别在主数据库和从数据库上执行show slave statusG命令,检查主从复制状态 确保主从复制恢复正常
18 完成测试 所有测试步骤完成后,完成MySQL双机热备份试验

    广告一刻

    为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!