193
云计算
负载均衡
产品简介
产品价格
快速入门
用户指南
实践操作
常见问题
购买指南
云服务器
产品简介
计费规则
购买指导
控制台使用指南
常见问题
云数据库
产品简介
计费规则
购买指导
快速入门
连接实例
控制台使用指南
对象存储
产品简介
控制台使用指南
程序员百科
Python
通过自定义脚本实现MySQL一致性备份教程

产品推荐:

1、安全稳定的云服务器租用,2核/2G/5M仅37元,点击抢购>>>

2、高防物理服务器20核/16G/50M/200G防御仅350元,点击抢购>>>

3、百度智能建站(五合一网站)仅880元/年,点击抢购>>> 模板建站(PC+手机站)仅480元/年,点击抢购>>>



点击这里注册天翼云特邀VIP帐号,立即体验云服务备份>>>


本章节以SuSE 11 SP3操作系统下MySQL 5.5单机版为例,介绍如何通过自定义脚本来冻结、解冻MySQL数据库,以实现对于MySQL数据库的数据库备份。

场景介绍

某企业购买了云主机,并在云主机中安装了MySQL 5.5数据库用于存放业务数据。随着数据量的增加,之前的崩溃一致性保护已经满足不了RTO、RPO的要求,决定采用应用一致性备份,减小RTO与RPO。

数据准备

准备项说明示例
MySQL用户名连接MySQL数据库时使用的用户名root
MySQL密码连接MySQL数据库时使用的密码Example@123

详细步骤

步骤1、加密MySQL密码,供自定义脚本使用

1.登录MySQL服务器,输入 cd /home/rdadmin/Agent/bin/ ,进入Agent目录。

2.执行 /home/rdadmin/Agent/bin/agentcli encpwd ,回显如下:

Enter password:

输入MySQL密码,并按“Enter”,屏幕上就会打印出加密后的密码,将其拷贝到剪贴板中。

步骤2、执行 cd /home/rdadmin/Agent/bin/thirdparty/ebk_user ,进入自定义脚本目录,然后执行 vi mysql_freeze.sh , 打开MySQL示例冻结脚本。

步骤3、将下图所示的MYSQL_USER与MYSQL_PASSWORD修改为实际值,其中MYSQL_PASSWORD为步骤1的屏幕输出。

1.png

也可以使用sed命令来直接进行修改:

sed -i 's/^MYSQL_PASSWORD=.*/MYSQL_PASSWORD="XXX"/' mysql_freeze.sh mysql_unfreeze.sh

其中XXX为步骤1中打印出的密码。

此操作会同时修改冻结解冻脚本,所以无需再执行步骤3。

[]()步骤4、执行 vi mysql_unfreeze.sh ,打开MySQL示例解冻脚本,修改此脚本中的用户名和密码。

mysql_unfreeze.sh与mysql_freeze.sh脚本实现了基本的数据库冻结与解冻操作,如果你在冻结、解冻时有其它额外步骤需要执行,可以自行在其中进行修改。

注意:

MySQL的冻结是通过FLUSH TABLES WITH READ LOCK指令来实现的,此指令不会触发bin log刷盘操作,如果开启了bin log,且sync_binlog参数不为1,则可能出现保存的备份映像中部分SQL操作未记录到bin log的情况,如果bin log也需要完整保护,请设置sync_binlog=1。



这条帮助是否解决了您的问题? 已解决 未解决

提交成功!非常感谢您的反馈,我们会继续努力做到更好! 很抱歉未能解决您的疑问。我们已收到您的反馈意见,同时会及时作出反馈处理!