MySQL实现主从复制不需停机mysql不停机做主从

· 它允许在不停机的情况下将从服务器切换到新的主服务器 如果您的MySQL版本支持GTID,则可以按照以下步骤配置主从复制:1) 在主服务器上启用GTID [mysqld]server-id=1 log_bin=mysql-bin gtid_mode=ON enforce_gtid_consistency=ON 2) 重启MySQL服务 systemctl restart mysql 3) 在同一主机上...
MySQL实现主从复制不需停机mysql不停机做主从
MySQL实现主从复制不需停机
MySQL的主从复制是一种常见的数据复制技术,它允许在多个MySQL服务器之间复制数据。在复制过程中,主服务器将数据库更改记录到二进制日志文件中,并将该文件发送到从服务器,从服务器将在其本地数据库中执行相同的更改。本文将介绍如何实现MySQL主从复制,并且无需停机。
1. 创建主服务器
我们需要创建一个MySQL主服务器。在这个过程中,我们将启用二进制日志记录,并创建一个专用的复制用户。
mysql> SET @@GLOBAL.SQL_SLAVE_SKIP_COUNTER = 1;
mysql> CREATE USER ‘replication’@’%’ IDENTIFIED BY ‘password’;
mysql> GRANT REPLICATION SLAVE ON *.* TO ‘replication’@’%’;
mysql> FLUSH PRIVILEGES;
mysql> FLUSH TABLES WITH READ LOCK;
mysql> SHOW MASTER STATUS;
在创建用户时,我们为其分配了“复制”权限。这允许从服务器读取二进制日志文件,并在其本地数据库中执行相同的更改。我们还锁定了所有表,以便在创建从服务器之前可靠地读取主服务器状态。
2. 创建从服务器
接下来,我们将创建从服务器,并将其配置为使用主服务器的二进制日志文件。
mysql> CHANGE MASTER TO MASTER_HOST=’master’, MASTER_USER=’replication’, MASTER_PASSWORD=’password’, MASTER_LOG_FILE=’mysql-bin.000001′, MASTER_LOG_POS=107;
我们在这个过程中指定了主服务器的位置信息(主机名,用户名和密码)。我们还指定了主服务器正在使用的二进制日志文件的名称和位置。这些信息将用于创建与主服务器的连接。
3. 启动从服务器复制
现在,从服务器已经配置好了,我们可以开始使用它来复制主服务器的数据了。
mysql> START SLAVE;
现在,从服务器将从主服务器的二进制日志文件中读取更改,并确保数据库的状态与主服务器相同。完成此过程后,我们可以查看从服务器状态:
mysql> SHOW SLAVE STATUS\G
在这个输出中,我们可以查看到复制进度、错误、速度等信息。要停止从服务器复制,可以使用如下命令:
mysql> STOP SLAVE;
4. 不停机实现主从复制
在上面的实现过程中,我们会发现必须在主服务器上执行命令”FLUSH TABLES WITH READ LOCK”,并且从服务器必须指定主服务器位置信息。这些步骤在一些特定场景下,如停机维护、服务器迁移等情况下会复杂一些,无法实现不停机主从复制。如何实现不停机主从复制?我们可以使用MySQL GTID (Global Transaction ID)来解决这个问题。
· GTID在MySQL 5.6.9及更高版本中可用
· 它可确保在主服务器和从服务器之间复制的事务完全相同
· 它允许在不停机的情况下将从服务器切换到新的主服务器
如果您的MySQL版本支持GTID,则可以按照以下步骤配置主从复制:
1) 在主服务器上启用GTID
[mysqld]
server-id=1
log_bin=mysql-bin
gtid_mode=ON
enforce_gtid_consistency=ON
2) 重启MySQL服务
systemctl restart mysql
3) 在同一主机上创建并配置第二个MySQL实例,启用GTID
[mysqld]
server-id=2
log_bin=mysql-bin
gtid_mode=ON
enforce_gtid_consistency=ON
4) 创建从服务器
mysql> CREATE SERVER `slave` FOREIGN DATA WRAPPER `mysql` OPTIONS (
`host` ‘slave IP’, # 从服务器IP
`port` 3306,
`user` ‘replication’,
`password` ‘password’,
`gtid_slave_pos` ‘CURRENT_POS’ # 当前位置的GTID
);
5) 配置从服务器的副本事件处理程序
mysql> CHANGE REPLICATION FILTER REPLICATE_DO_DB=percona;
6) 启动从服务器复制
mysql> START REPLICA;
现在,我们已经成功实现了MySQL主从复制,并且在GTID模式下,无需停机切换从服务器到新的主服务器仍然非常方便。2024-08-13
mengvlog 阅读 30 次 更新于 2025-09-10 11:25:17 我来答关注问题0
  • 在数据复制阶段,我们将通过MySQL自带的数据复制工具slave,将数据从主库上复制到备库上,同时保证主库一直在提供服务,不会停机。我们需要在主库上开启二进制日志。在my.cnf配置文件中添加:log-bin=mysql-bin 然后,修改完成后重启mysql服务并进入MySQL命令界面,输入以下命令:mysql> CREATE USER ̵...

  •  文暄生活科普 看完这篇还不懂 MySQL 主从复制,可以回家躺平了

    MySQL主从复制是MySQL高可用性、高性能(负载均衡)的基础。复制过程中应该时刻监控复制状态,复制出错或延时可能给系统造成影响。MySQL主从复制目前也存在一些问题,可以根据需要部署复制增强功能。十、作用 MySQL主从复制带来了很多好处,包括:数据更安全:做了数据冗余,不会因为单台服务器的宕机而丢失数据。...

  •  深空见闻 mysql8主从复制配置

    在从服务器上,执行START SLAVE命令来启动复制线程。使用SHOW SLAVE STATUSG命令检查复制状态,确保复制进程正常运行。此外,还有一些可选的配置项,如启用中继日志、设置单个binlog最大的文件大小、设置binlog格式等,这些可以根据实际需求进行配置。在进行主从复制配置时,建议详细阅读MySQL官方文档或相关教程...

  •  翡希信息咨询 MySQL主从复制

    MySQL复制大部分是向后兼容的,即新版本的服务器可以作为老版本服务器的备库。然而,由于新版本可能采用了新的特性或语句,老版本可能无法解析这些新的内容。此外,不同版本的MySQL所使用的二进制日志格式也可能不同,因此在进行跨版本复制时需要注意兼容性问题。综上所述,MySQL主从复制是一种强大的数据...

  •  深空见闻 主备切换大揭秘:保证系统永不停机的秘密

    冷备(Cold Standby):备机在主机故障后,需要人工介入进行切换。虽然这种方式响应速度较慢,但在某些场景下也是一种有效的方案。冷备模式通常用于对切换速度要求不高的系统,或者作为热备模式的补充。三、MySQL中的主从复制 MySQL中的主从复制是实现主备切换的一种常用方法。主从复制的基础是二进制日志...

檬味博客在线解答立即免费咨询

mySQL相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部