xtrabackup对于flush tables with read lock操作的设置

参数说明

版本  percona-xtrabackup-2.4.8-Linux-x86_64 
--kill-long-queries-timeout=N  指的是执行flush tables with read lock以后,如果flush操作被卡了N秒,则杀掉卡住它的线程,默认0的情况就是不杀死任何卡住flush的sql,直到该sql执行完成
--kill-long-query-type=all|select   被kill的sql种类,默认为全部
--ftwrl-wait-timeout=M  指的是执行flush tables with read lock以前,如果检测到存在长SQL,先等待M秒,如果超过M秒还存在长SQL,则备份报错退出。默认为0表示立即执行flush tables with read lock
--ftwrl-wait-threshold=X 指的是执行flush tables with read lock以前,检测长SQL的方法,如果在执行flush以前存在已经运行了超过X秒的SQL,则将该SQL定义为长SQL,默认60s,如果没有定义-ftwrl-wait-timeout=M,那么这个参数设置无效

使用概述

简单来说,--kill-long-queries-timeout是比较粗暴的设置,--ftwrl-wait-timeout是比较温和的设置,根据业务需求两者选其一就行(因为往往有些垃圾开发写的垃圾SQL,等1小时也没用),当然如果两个参数都设置,那么应该是这样的执行逻辑:
1 执行flush tables with read lock以前,如果存在超过--ftwrl-wait-threshold=X秒的长SQL,则等待M秒,如果M秒后还存在长SQL,则备份报错退出
2 如果M秒后没有长SQL了,则执行flush tables with read lock,执行以后,如果flush 操作被卡了N秒,则杀掉卡住它的线程

参考

https://www.percona.com/doc/percona-xtrabackup/LATEST/innobackupex/innobackupex_option_reference.html

https://www.percona.com/doc/percona-xtrabackup/LATEST/innobackupex/improved_ftwrl.html

主从复制是一种常用的数据库备份和高可用解决方案,而xtrabackup是Percona公司开发的一款开源工具,用于MySQL和MariaDB数据库的热备份。下面是xtrabackup主从搭建的一般步骤: 1. 安装xtrabackup工具:在主服务器和从服务器上都需要安装xtrabackup工具。你可以从Percona官方网站下载并安装适合你操作系统的xtrabackup。 2. 配置主服务器:在主服务器上,需要进行以下配置: - 在MySQL配置文件中开启二进制日志(binlog)功能。在配置文件中添加如下行: ``` log_bin = /var/lib/mysql/mysql-bin.log server_id = 1 ``` - 重启MySQL服务使配置生效。 3. 备份主服务器:使用xtrabackup工具备份主服务器的数据。 - 执行以下命令进行备份: ``` xtrabackup --backup --target-dir=/path/to/backup ``` - 备份完成后,会在指定目录生成备份文件。 4. 恢复备份到从服务器:将主服务器的备份数据恢复到从服务器。 - 在从服务器上执行以下命令进行恢复: ``` xtrabackup --prepare --target-dir=/path/to/backup ``` - 恢复完成后,从服务器的数据将与主服务器一致。 5. 配置从服务器:在从服务器上进行以下配置: - 在MySQL配置文件中配置从服务器的唯一ID(server_id),并禁用二进制日志(binlog)。在配置文件中添加如下行: ``` server_id = 2 log_bin = /dev/null ``` - 重启MySQL服务使配置生效。 6. 启动从服务器:启动从服务器的MySQL服务。 7. 配置主从复制:在主服务器上配置从服务器的连接信息,并开始主从复制。 - 在主服务器上执行以下命令: ``` mysql> CREATE USER 'repl'@'slave_ip' IDENTIFIED BY 'password'; mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'slave_ip'; mysql> FLUSH PRIVILEGES; mysql> FLUSH TABLES WITH READ LOCK; mysql> SHOW MASTER STATUS; ``` - 记下上述命令的输出结果,包括File和Position的值。 8. 启动主从复制:在从服务器上执行以下命令开始主从复制: - 在从服务器上执行以下命令: ``` mysql> CHANGE MASTER TO MASTER_HOST='master_ip', MASTER_USER='repl', MASTER_PASSWORD='password', MASTER_LOG_FILE='master_binlog_file', MASTER_LOG_POS=master_binlog_position; mysql> START SLAVE; ``` - 替换上述命令中的参数值为相应的值。 完成以上步骤后,主从复制就搭建完成了。从服务器会自动从主服务器同步数据更新。你可以根据需要对主服务器进行写操作,而从服务器可以用于读操作或备份。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值