mysql如何做双机热备

2023年 8月 10日 19.6k 0

MySQL 是一种常用的关系数据库管理系统,当需要保障数据的高可用性和容错性时,就需要利用其提供的双机热备功能。下面我们一起来了解如何使用 MySQL 实现这一功能。

首先,在两台服务器上分别安装 MySQL,并确保两台服务器上的 MySQL 配置相同。我们需要修改以下配置文件:

# vi /etc/my.cnf
# 在 [mysqld] 段中添加以下内容
server-id=1 # 在 1 号服务器上设置为 1,在 2 号服务器上设置为 2
log-bin=mysql-bin
binlog-do-db=[需要备份的数据库名]

接着,在两台服务器上创建相同的数据库,并将数据初始化到两台服务器中。这样可以保证两台服务器上的数据库数据是一致的。

然后,我们需要配置 MySQL 的双机热备功能,将数据自动同步到备份服务器上。在 1 号服务器上执行以下命令:

# mysql -uroot -p
mysql>GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'2号服务器的IP地址' IDENTIFIED BY '[密码]';
mysql>flush privileges;
mysql>flush tables with read lock;
mysql>SET GLOBAL read_only=ON;
mysql>show master status\G

其中,slave_user 是在 2 号服务器上用来同步数据的账户,需要在 2 号服务器上创建对应的账户,并将其指向 1 号服务器。

接着,在 2 号服务器上执行以下命令:

# mysql -uroot -p
mysql>change master to master_host='1号服务器的IP地址',master_user='slave_user',master_password='[密码]',master_log_file='[1号服务器上的log文件名]', master_log_pos=[master上的binlog偏移量];
mysql>start slave;
mysql>show slave status\G

如果显示的状态为“Slave_IO_Running: Yes” 和 “Slave_SQL_Running: Yes”,则表示同步成功。

如果需要在 2 号服务器上进行读操作,则需要先对其进行解锁,输入以下命令:

# mysql -uroot -p
mysql>SET GLOBAL read_only=OFF;
mysql>UNLOCK TABLES;

至此,我们已经成功配置了 MySQL 的双机热备功能,保障了数据的高可用性和容错性。

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论