数据库
首页 > 数据库> > python – 我可以使用bazaar提交一个大文件,还是有更好的方法来对数据库转储进行版本控制?

python – 我可以使用bazaar提交一个大文件,还是有更好的方法来对数据库转储进行版本控制?

作者:互联网

Bazaar根据可用的虚拟内存限制它可以提交的文件大小(根据open bug).

我想在版本控制下放一个数据库(作为mysqldump文本文件).数据库是3 GB,我正在使用64GB内存的服务器.我不明白为什么这会是一个问题.当我尝试提交时,我收到错误中报告的错误:

bzr: ERROR: exceptions.OverflowError: requested number of bytes is more than a Python string can hold

有没有办法在bazaar版本控制下获得此文件?

我对bazaar的偏好是我熟悉它,但我计划将转储自动化并作为cron作业签入,因此任何合适的版本控制系统都可以.

到目前为止,我提出了两个选项,直到出现更好的解决方案.目前,我保留每周转储备份的副本,此时存储不是问题.否则,我可以保留第一个转储,区分原始版本和新版本的转储,以及版本控制.这将记录更改,但不可能返回到先前的状态.我对此并不满意,除非有一种直接的方法可以恢复.

mysqldump mydb > mydb_base.sql
touch mydb_diff
bzr add mydb_diff
bzr commit -m 'first commit'

然后在cron脚本中

mysqldump mydb > mydb.sql
diff mydb_base.sql mydb.sql > mydb_diff
bzr commit -m "`date +%Y.%m.%d-%H.%M` mydb diff" mydb_diff

解决方法:

虽然我喜欢Bazaar,但我不建议您将它用于此目的,除非您确实需要无限期地保留每个版本的数据.如果您只需要固定数量的过去版本(例如10)或仅需要一段固定时间(例如2年),那么我建议您使用像rdiff-backup这样的增量备份工具.

标签:python,version-control,database,memory,bazaar
来源: https://codeday.me/bug/20190709/1417788.html