【发布时间】:2010-06-01 07:56:42
【问题描述】:
我可以使用什么命令行每周将 MySql 数据库备份到带有日期的文件名中(这样它就不会与以前的备份冲突)?
另外,这是一个合理的备份策略吗?我的数据库相对较小(现在完整的导出只有 3.2 兆)。流失率相对较低。如果出现问题,我需要能够取回完整的数据库。如果有一种方法可以让我看到一段时间内发生的变化,那就太酷了。
【问题讨论】:
标签: mysql cron database-backups
我可以使用什么命令行每周将 MySql 数据库备份到带有日期的文件名中(这样它就不会与以前的备份冲突)?
另外,这是一个合理的备份策略吗?我的数据库相对较小(现在完整的导出只有 3.2 兆)。流失率相对较低。如果出现问题,我需要能够取回完整的数据库。如果有一种方法可以让我看到一段时间内发生的变化,那就太酷了。
【问题讨论】:
标签: mysql cron database-backups
你可以试试这样的:
0 4 1 * * DATE=`date +%y-%m-%d`; mysqldump -u <dbuser> -p<dbpasswd> <dbname> | gzip > dbname-$DATE.sql.gz
这将在每个月的第一天凌晨 4:00 转储您的数据库(并 gzip 压缩)。
【讨论】:
使用 cron 和 mysqldump 进行每周备份:
感谢@timdev 回答 (+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 运行。
【讨论】:
你可以试试MySQL Replication
复制使数据从一个 MySQL 数据库服务器(主)到 被复制到一个或多个 MySQL 数据库服务器(从属服务器)。 复制是异步的 - 从属 不需要永久连接到 接收来自 master 的更新。这个 意味着更新可以发生在 远距离连接,甚至 临时或间歇性的 拨号服务等连接。
这样,如果您的主数据库(主数据库)出现问题,从属数据库可以作为随时可用的替代品。
【讨论】: