如何在 mysql 数据库的增量备份中创建

use*_*160 2 mysql linux python database centos

我有 linuxcentos 6.4服务器mysql5.6

我有一个像这样每小时进行 mysql 数据库备份的 cron 工作

它在蟒蛇

os.popen("mysqldump -u %s --password=%s -h %s -e --opt --skip-lock-tables  --skip-extended-insert -c %s | gzip -c > %s.gz" % (username, password, hostname, database, filename))
Run Code Online (Sandbox Code Playgroud)

问题是很少有数据被更改,但每次我必须备份所有数据库 24 次,这会占用太多空间。

什么是最好的选择

有什么方法可以进行增量备份,以便我每周对数据库进行 1 次完整备份,然后只进行增量备份。

我想为单独的数据库使用单独的文件,以便如果我需要恢复单个数据库,那么我也可以这样做

Den*_*ker 6

很简单:binlogging。配置 mysql 以将二进制日志保留至少一天(可能更长)。然后将您的备份更改为不执行 mysqldump,而是使用类似 xtrabackup 的内容。

这样,您可以将备份计划减少到每天一次,并且仍然可以使用 binlog 前滚到任何时间点。