电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

MySQL主从复制搭建

来源:金蝶云社区作者:金蝶2024-09-233

MySQL主从复制搭建

1 主从复制目的

主从复制,是指建立一个和主数据库完全一样的数据库环境(称为从数据库),并将主库的操作行为进行复制的过程。将主数据库的DDL和DML的操作日志同步到从数据库上,然后在从数据库上对这些日志进行重新执行,来保证从数据库和主数据库的数据的一致性

1)保证数据的热备份,主库宕机后能够及时替换主库,保障业务可用性

(2)在复杂的业务操作中,经常会有操作导致锁行甚至锁表的情况,如果读写不解耦,会很影响运行中的业务,使用主从复制,让主库负责写,从库负责读。即使主库出现了锁表的情景,通过读从库也可以保证业务的正常运行

主从复制分为:异步复制(不关心从库)、同步复制(太关心从库)、半同步复制(先关心超时后不关心从库)

2 主从复制原理

image.webp


主从复制步骤:

1) MySQL主库在事务提交时把数据变更(insert、delete、update)作为事件日志记录在二进制日志表(binlog)里面

2)从库的 I/O 线程去请求主库的 binlog时,主库会生成一个 log dump 线程,用来给从库 I/O 线程传 binlog日志

3)从库的I/O线程得到的 binlog 日志后,会将其写入到 relay log (中继日志) 文件中去

4)从库的 SQL 线程会读取 relay log 文件中的日志,并解析成具体操作,来实现主从的操作一致,而最终数据一致

3 主从复制搭建过程

image.webp


搭建主从的话,首先需要从主库备份一致性的数据备份文件。

备份方法一、常用的mysqldump备份虽然没有问题,但是用来搭建主从就不太合适,因为不能记录准确的位点信息或GITD号,搭建过程可能会存在数据冲突或者数据丢失的风险,导致主从同步失败。推荐使用xtrabackup进行搭建主从复制(业务低峰期操作)

备份方法二、xtrabackup在后台线程不断追踪InnoDB的日志文件,然后复制InnoDB的数据文件。数据文件复制完成之后,日志的复制线程也会结束。这样就得到了不在同一时间点的数据副本和开始备份以后的事务日志

xtrabackup工具下载地址:https://www.percona.com/downloads/Percona-XtraBackup-LATEST

对于mysql8.0版本数据库,如果下载的xtrabackup包不能用,可以尝试这个rpm包:https://downloads.percona.com/downloads/Percona-XtraBackup-LATEST/Percona-XtraBackup-8.0.14/binary/redhat/7/x86_64/percona-xtrabackup-80-8.0.14-1.el7.x86_64.rpm

4 主从复制搭建步骤

注:此文以xtrabackup搭建主从为例,也可以使用mydumper工具来搭建主从,参考链接:https://vip.kingdee.com/article/322678304510088704


步骤1、主库授权

登录主库使用root用户创建复制用户并授权

mysql> create user '同步用户'@'%' IDENTIFIED WITH mysql_native_password BY '密码';

mysql> grant replication client,replication slave on *.* to '同步用户'@'%';

mysql> flush privileges;


步骤2、主库备份

# xtrabackup --defaults-file=my.cnf配置文件路径 --user=备份的用户 --password=密码 --no-lock --backup --target-dir=备份文件路径

mysql> show master status\G;


步骤3、将备份文件拷贝到从库

# scp -rp 主库备份路径 从库用户名@从库主机:/从库备份文件路径

# chown mysql. -R 从库备份文件路径


步骤4、从库还原

步骤4.1、清空从库数据和日志(请确认是在从库上执行

# systemctl stop mysqld  先停止从库

# rm -rf /kingdee/mysql/mysql3306/{data,log}/*


步骤4.2、从库恢复重做日志

# xtrabackup --defaults-file=my.cnf配置文件路径 --parallel=4 --prepare --use-memory=4G --target-dir=备份文件路径


步骤4.3、从库恢复数据

# xtrabackup --defaults-file=my.cnf配置文件路径 --copy-back --target-dir=备份文件路径

# chown -R mysql:mysql 数据路径 日志路径

# rm -rf 数据路径/auto.cnf     # 搭建主从前先删除从库恢复的auto.cnf文件,若无该文件则忽略

# vi my.cnf    #修改server-id,数值需要低于主库


步骤4.4、启动从库服务

# systemctl start mysqld


在xtrabackup

MySQL主从复制搭建

1 主从复制目的主从复制,是指建立一个和主数据库完全一样的数据库环境(称为从数据库),并将主库的操作行为进行复制的过程。将主数据库...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信