说是备份MySQL数据库,其实也适用于它的胞弟MariaDB。
备份
创建备份脚本
创建一个备份脚本:
#!/bin/sh
#把要备份的数据库dump出来,压缩后存放。路径不要有空格
mysqldump -uusername -ppassword your_database_name | gzip > /path/of/backup/directory/your_database_name+_%Y-%m-%d_%H%M%S.sql.gz
#删除旧的备份,我这里是删除60天以前的。不要漏掉反斜杠和分号。路径别写错
find /path/of/backup/directory -name "*.sql.gz" -mtime +60 -exec rm -f "{}" \;
创建定任务
然后用crontab定时任务,定时执行这个脚本(脚本要有执行权限)。可以在终端直接crontab -e
,这样调起一个用户定时任务(如果要系统定时任务的话需要root权限修改/etc/crontab
,不建议)。键入内容:
59 23 */3 * * /path/of/backup/script
意为:每隔三天,在23:59时执行指定脚本。格式为:
每小时第几分钟 每天第几个小时 每月几号 每年第几个月 每星期第几天 脚本或命令
这样搭配起来,每三天备份一次,保留60天内的备份,那么也就大约20个备份,我的服务器能接受。
还原
还原是手动的。
还原的时候,选择需要还原的版本,解压得到.sql
后缀的SQL脚本文件。然后在数据库管理软件中加载并运行脚本就可以了。
需要注意的是,由于这个备份脚本不包含创建库(database)的语句,因此你得首先确保库是存在的(有没有表或有没有数据都可以),否则将无法选中库(database)。
原文地址:https://www.cnblogs.com/alanabc/p/10180679.html
时间: 2024-11-06 09:24:21