首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 自动增量备份实战:本地与远程双模式脚本详解

     編輯:MySQL 資料庫相關知識

MySQL 自动备份方案:本地 + 远程双保险

数据无价,自动化备份是运维底线。本文提供基于 mysqldump + crontab 的本地增量备份与远程拉取备份完整脚本,开箱即用。

一、本地自动增量备份

1. 编写备份脚本

创建 /var/lib/mysql/autobak:

cd /data/home/mysqlbak
rq=`date +%Y%m%d`
/usr/local/mysql/bin/mysqldump sqldb --flush-logs -uroot -p123456 --opt > 777city_$rq.sql

--flush-logs 会滚动二进制日志,配合增量恢复使用。

2. 赋权并加入定时任务

chmod 777 /var/lib/mysql/autobak
crontab -e
# 每天 00:00 执行
00 00 * * * /var/lib/mysql/autobak
/etc/init.d/crontab restart

3. 验证备份

./var/lib/mysql/autobak
ls /data/home/mysqlbak
du -sh /data/home/mysqlbak/777city_$(date +%Y%m%d).sql

二、远程自动备份(异地容灾)

在备份服务器(IP: 67)上拉取业务服务器(IP: 172)数据:

1. 远程备份脚本

cd /data/home/mysqlbak
rq=`date +%Y%m%d`
/usr/local/mysql/bin/mysqldump sqldb --flush-logs -uroot -p'123456' -h'10.241.92.172' --opt > 777city_$rq.sql

注意密码加单引号,IP 地址为主库地址。

2. 定时执行

chmod -R 777 /var/lib/mysql/autobak
crontab -e
00 00 * * * /var/lib/mysql/autobak
/etc/init.d/crontab restart

三、最佳实践提醒

  • 异地存储:备份文件务必推送至异地存储(对象存储、异地服务器)
  • 定期校验:每月抽查备份文件完整性,执行恢复演练
  • 权限最小化:备份账号仅赋予 SELECT, LOCK TABLES, SHOW VIEW, RELOAD 等必要权限
  • 加密传输:生产环境建议通过 SSH 隧道或 VPN 传输
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved