如何每小时对 mysql 数据库进行一次转储

如何每小时对 mysql 数据库进行一次转储

嘿,我是 Linux 脚本编写的新手。我想每小时对我的数据库进行一次 sqldump,我已经浏览过几个博客,我能够编写一个脚本来转储我的数据库,但我会让它在 crontab 中每小时运行一次。

请帮助我。

答案1

每小时转储一次数据库不是一个好选择。如果数据库很大,那么大多数系统资源将会忙于每小时进行转储。最好考虑增量备份,其中您只备份数据库的更改区域而不是整个数据库。

通过启用二进制日志进行增量备份

MySQL 支持增量备份:您必须使用 --log-bin 选项启动服务器才能启用二进制日志记录。二进制日志文件为您提供复制在执行备份之后对数据库所做的更改所需的信息。当您想要进行增量备份(包含自上次完整或增量备份以来发生的所有更改)时,您应该使用 FLUSH LOGS 旋转二进制日志。完成后,您需要将所有二进制日志复制到备份位置,这些二进制日志的范围从上次完整或增量备份到倒数第二个。这些二进制日志是增量备份;在恢复时,您可以应用它们,“使用二进制日志进行时间点(增量)恢复”。下次进行完整备份时,您还应该使用 FLUSH LOGS、mysqldump --flush-logs 或 mysqlhotcopy --flushlog 旋转二进制日志。

对于 mysql 中的不同类型的备份,请转到此网址:

http://dev.mysql.com/doc/refman/5.1/en/backup-methods.html

答案2

您将使用 cron 来实现这一点。编辑您的 crontab 并添加类似

* /1 * * * <your script>

要编辑你的 crontab,请使用

crontab -e

相关内容