如何在Azure Runbook中运行mysqldump实现MySQL定时自动备份
可行解决方案
方案1:使用Azure自动化混合工作者组(改造成本最低)
- 准备一台已经安装了MySQL客户端(含
mysqldump)的Windows/Linux机器,可以是Azure虚机也可以是本地服务器 - 在该机器上部署Azure自动化混合工作者,注册到你的自动化账户
- 现有Python脚本不用做任何修改,Runbook执行时指定运行环境为混合工作者组即可,直接就能调用
mysqldump完成备份
方案2:纯Python实现备份,无系统依赖
- 放弃调用系统
mysqldump二进制,改用纯Python实现的MySQL备份库,比如mysqldump-python,无需依赖系统安装MySQL组件 - 使用前先在Azure自动化账户的Python包管理中上传安装
mysqldump-python包 - 替换原有
runMySqlDumpCommand逻辑的示例代码:
from mysqldump_python import Dump import os def runMySqlDumpCommand(): dump = Dump( host=os.getenv('HOST'), port=int(os.getenv('PORT')), user=os.getenv('DUMP_USER'), password=os.getenv('DUMP_PASSWORD'), database=os.getenv('DATABASE') ) # 直接返回备份的SQL内容 return 0, dump.dump()
- 该库支持表结构、数据、视图等常规备份项,满足绝大多数场景需求,直接在默认Azure自动化Python环境即可运行
方案3:改用Azure Functions实现定时备份
- 选择Linux系统的Python运行时Azure Functions,设置定时触发器(CRON表达式配置每日执行)
- 在函数配置中添加系统依赖安装命令:
apt-get update && apt-get install -y mysql-client - 原有Python备份脚本稍作修改适配Functions触发逻辑即可直接使用,备份结果仍可按原有逻辑上传到Blob存储
方案4:Azure托管MySQL可直接用内置备份(无需自研脚本)
- 若你备份的数据库是Azure DB for MySQL,直接在实例的备份配置中开启自动备份,支持设置保留周期,还可配置长期备份保留到Blob存储,完全无需自研脚本,可靠性更高
内容的提问来源于stack exchange,提问作者pfj
相关产品推荐
相关产品推荐

