写一个mysql增量备份的脚本
时间: 2024-05-08 21:19:22 浏览: 113
当然可以,以下是一个简单的增量备份脚本:
```
#!/bin/bash
# 设置备份目录和MySQL登录信息
backup_dir="/path/to/backup/dir"
mysql_user="username"
mysql_password="password"
# 获取当前时间作为备份文件名的一部分
time=$(date "+%Y%m%d%H%M%S")
# 备份库结构
mysqldump -u${mysql_user} -p${mysql_password} --opt --single-transaction --events --skip-lock-tables --no-data --databases db1 db2 | gzip > ${backup_dir}/structure_${time}.sql.gz
# 获取上次备份的时间
previous=$(ls ${backup_dir}/data_*.sql.gz 2>/dev/null | tail -n 1 | awk -F_ '{print $2}')
# 备份库数据
mysqldump -u${mysql_user} -p${mysql_password} --opt --single-transaction --events --skip-lock-tables --no-create-info --databases db1 db2 --where="update_time>'${previous}'" | gzip > ${backup_dir}/data_${time}.sql.gz
```
这个脚本会创建两个备份文件,一个是库结构的备份,另一个是增量备份的库数据。在备份库数据时,它会获取上次备份的时间并只备份从那个时间后有更新的数据。你可以把需要备份的数据库名添加到 `mysqldump` 的命令中。该脚本会将备份文件保存在指定目录下,你可以根据需要修改它。
阅读全文