> 文章列表 > MySQL运维30-基于主库搭建从库

MySQL运维30-基于主库搭建从库

MySQL运维30-基于主库搭建从库

文章目录

  • 1、基于主库搭建从库的步骤
  • 2、总结

1、基于主库搭建从库的步骤

  1. 在主库上运行mysqldump导出逻辑转储文件:
mysqldump --flush-logs --master-data=2 --single-transaction  --hex-blob -R -f --all-databases > databases.sql

对以上命令,说明如下:

  • master-data=2:master-data为2会生成被注释掉的CHANGE MASTER TO语句,存储在转储文件里,我们可以利用这个信息来创建从库。master-data的默认值是1,会生成自动执行的语句,由于我们一般不希望自动执行,所以我们将该值设置为2。
  • single-transaction参数表示制作一个一致性的备份集,对于InnoDB,只是在一开始的瞬间会请求锁表,然后仍然可以读写数据,对系统的影响很小,这点对于在线备份很重要。如果不加single-transaction参数,那么它在自动启用–lock-all-tables备份的过程中会锁表。
  1. 部署好从库实例,此时数据为空。
  2. 在从库上导入逻辑转储文件。
  3. 配置主从复制:根据转储文件(SQL文件)的CHAGE MASTER语句提供的信息,可以生成相应的CHANGE MASTER命令,并在从库中执行。

2、总结

  1. 当希望基于主库制作从库时,思路是将主库导出带CHANGE MASTER TO语句的逻辑备份,在新从库通过逻辑备份恢复数据,再通过备份SQL里的CHANGE MASTER TO语句启动复制。
  2. 实际步骤为,通过mysqldump导出主库的逻辑备份,并且通过master-data=2参数获得CHANGE MASTER TO语句,这个语句就自带了当时的主库二进制日志名称和位置,直接在从库上执行就可以开始复制。