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分别存在文件,这样如果我需要恢复单个数据库,那么我也可以这样做
一旦你把完整的数据库带到一个文件,一个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/