MySQL集群技术2——MySQL的主从复制

MySQL主从复制

MySQL 主从复制是一种常用的数据复制机制,它允许在一个或多个从属服务器上复制来自主服务器的数据更改。这种机制对于实现数据备份、负载均衡、读写分离等多种应用场景都非常有用。下面是关于 MySQL 主从复制的详细说明:
在这里插入图片描述

MySQL 主从复制的概念

  • 主服务器:主服务器接收所有的写操作(INSERT、UPDATE、DELETE 等),并将这些操作记录到二进制日志(Binary Log)中。
  • 从服务器:从服务器通过读取主服务器的二进制日志,并在本地执行相同的更改来复制数据。

MySQL 主从复制的工作原理

  1. 写操作记录:当主服务器接收到写操作时,这些操作会被记录到二进制日志中。
  2. 日志传输:从服务器定期轮询主服务器的二进制日志,并将这些日志文件复制到自己的中继日志(Relay Log)中。
  3. 日志执行:从服务器从中继日志中读取这些操作,并在本地执行同样的更改,以使数据保持一致。

MySQL 主从复制的配置步骤

以下是在一个典型的 MySQL 主从复制环境中配置主从复制的基本步骤。假设我们有一个主服务器(Master)和一个从服务器(Slave)。

步骤 1: 准备主服务器
  1. 开启二进制日志:确保主服务器的二进制日志功能已开启。
[root@mysql-node1 ~]# vim /etc/my.cnf
[mysqld]
datadir=/data/mysql
socket=/data/mysql/mysql.sock
symbolic-links=0
log-bin=mysql-bin
server-id=1

/etc/init.d/mysqld restart#记得重启使配置生效
2. 创建复制用户:在主服务器上创建一个用于复制的用户。

CREATE USER 'repl'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
FLUSH PRIVILEGES;
  1. 获取二进制日志的位置:记录当前的二进制日志文件名和位置,稍后从服务器需要用到这些信息。
    SHOW MASTER STATUS;
    

示例:
在这里插入图片描述

步骤 2: 准备从服务器
  1. 配置从服务器:确保从服务器的配置正确。
[root@mysql-node2 ~]# vim /etc/my.cnf
[mysqld]
datadir=/data/mysql
socket=/data/mysql/mysql.sock
symbolic-links=0
server-id=2

/etc/init.d/mysqld restart#记得重启使配置生效
2. 初始化从服务器:从主服务器导出数据并导入到从服务器。

# 在主服务器上
mysqldump --all-databases > all-databases.sql
# 将 all-databases.sql 复制到从服务器
# 在从服务器上
mysql < all-databases.sql
  1. 配置复制:在从服务器上配置复制。
 CHANGE MASTER TO
#该示例中的host为172.25.254.10


```sql
MASTER_HOST='$master_host', 
   MASTER_USER='repl',
   MASTER_PASSWORD='password',

#该处的二进制日志文件需要对应实际上获取的二进制日志名称

  MASTER_LOG_FILE='mysql-bin.000001'

#该处的端口号同样的需要对应实际表中给出的端口号

   MASTER_LOG_POS=$position;

其中 MASTER_LOG_FILEMASTER_LOG_POS 是之前从主服务器获取的信息。

  1. 启动复制:启动从服务器上的复制进程。
    START SLAVE;
    
步骤 3: 验证复制状态
  1. 查看复制状态:在从服务器上检查复制状态。

    SHOW SLAVE STATUS\G
    

    如果复制正常工作,您应该能看到类似 Slave_IO_Running: YesSlave_SQL_Running: Yes 的输出。
    示例:
    在这里插入图片描述

  2. 解决复制问题:如果遇到问题,可以查看错误日志或使用 SHOW SLAVE STATUS\G 查找错误信息。

MySQL 主从复制的类型

  • 基于语句的复制 (SBR):在主服务器上执行的 SQL 语句直接被复制到从服务器上执行。
  • 基于行的复制 (RBR):只复制实际受影响的数据行,而不是整个 SQL 语句。
  • 混合模式复制 (MBR):结合了 SBR 和 RBR 的优点,对于大多数情况,使用 RBR,但对于无法可靠复制的语句(如函数或触发器),使用 SBR。

MySQL 主从复制的注意事项

  • 数据类型兼容性:确保主服务器和从服务器的数据类型兼容,特别是在使用基于行的复制时。
  • 唯一键约束:如果表中有唯一键约束,确保主服务器和从服务器上的数据不会导致唯一键冲突。
  • 性能监控:定期检查复制延迟和性能指标,以确保复制过程的效率。
  • 13
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值