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

use*_*r22 2 python mysql linux backup

我有linux centos 6.4服务器mysql5.6

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

它在python中

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次,这需要太多的空间.

什么是最好的选择

有没有办法进行增量备份,以便我对数据库evry周进行1次完整备份,然后只进行增量备份.

我想为不同的数据库而不是所有的mysql分别存在文件,这样如果我需要恢复单个数据库,那么我也可以这样做

Arc*_*ain 6

一旦你把完整的数据库带到一个文件,一个hacky方式可能是.将其与每周备份区分开来并将补丁存储在磁盘上.如果要检索,只需将diff应用于每周备份并获取完整数据库

储藏

  mysqldump -u $USERNAME --password=$PASSWORD -h $HOSTNAME -e --opt --skip-lock-tables  --skip-extended-insert -c $DATABASE >hourlyFile
  diff weeklyFile hourlyFile >hourlyFile.patch
  rm hourlyFile
Run Code Online (Sandbox Code Playgroud)

要检索:

  cp weeklyFile hourlyFile
  patch hourlyFile <hourlyFile.patch
Run Code Online (Sandbox Code Playgroud)

我真的不知道sqldump给出了什么样的输出.如果上面的文字可行.否则bsdiff可能会帮助你:http://www.daemonology.net/bsdiff/