我可以使用什么命令行将每周将MySql数据库备份到带有日期的文件名中(以便它不会与先前的备份冲突)?
另外,这是一个合理的备份策略吗?我的数据库相对较小(现在完整的出口只有3.2兆)。流失率相对较低。如果出现问题,我需要能够恢复完整的数据库。如果有一种方法可以看到一段时间内发生的变化,那将会非常酷。
答案 0 :(得分:2)
您可以尝试这样的事情:
0 4 1 * * DATE=`date +%y-%m-%d`; mysqldump -u <dbuser> -p<dbpasswd> <dbname> | gzip > dbname-$DATE.sql.gz
将在每个月的第一天凌晨4:00转储您的数据库(并将其gzip)。
答案 1 :(得分:1)
使用cron和mysqldump进行每周备份:
提供命令行的信用转到@timdev answer(+1)。
cron语法如下:
* * * * * = [minute] [hour] [day of month] [month] [day of week]
但是,由于您需要每周备份,因此您可以指定在上面的第三个开始(月中的某天)运行备份的日期,以模拟每周间隔。
0 4 1,8,15,21,28 * * DATE=`date +%y-%m-%d`; mysqldump -u <dbuser> -p<dbpasswd> <dbname> | gzip > dbname-$DATE.sql.gz
这将在每个月的1日,8日,15日,21日和28日凌晨4:00运行。
答案 2 :(得分:0)
您可以尝试MySQL Replication
复制可以从一个数据中启用数据 MySQL数据库服务器(主)到 被复制到一个或多个MySQL 数据库服务器(从属服务器)。 复制是异步的 - 从属 不需要永久连接 从主服务器接收更新。这个 表示可以进行更新 长距离连接甚至 暂时或间歇性的 连接,如拨号服务。
这样,如果主数据库(主服务器)出现问题,从服务器可以作为现成的替代品。