MySQL转储限制?MySQL总体数据库大小限制?

MySQL转储限制?MySQL总体数据库大小限制?,mysql,limit,mysqldump,loss,Mysql,Limit,Mysqldump,Loss,客户机只有约1000行数据(当然是最新的),只是在其中一个表中丢失了。做了一些取证后,我发现他们所说的表的所有其他行中的“last_updated_date”也被设置为与删除发生的时间大致相同。这不是他们的大桌子之一 还有一些奇怪之处是,上周的mysqldump都是完全相同的大小——10375605093字节。以前的转储每个都增加了大约.5GB。MySQL转储命令是标准的: /path/to/mysqldump -S /path/to/mysqld2.sock --lock-all-tables

客户机只有约1000行数据(当然是最新的),只是在其中一个表中丢失了。做了一些取证后,我发现他们所说的表的所有其他行中的“last_updated_date”也被设置为与删除发生的时间大致相同。这不是他们的大桌子之一

还有一些奇怪之处是,上周的mysqldump都是完全相同的大小——10375605093字节。以前的转储每个都增加了大约.5GB。MySQL转储命令是标准的:

/path/to/mysqldump -S /path/to/mysqld2.sock --lock-all-tables -u username -ppassword database > /path-to-backup/$(date +%Y%m%d)_live_data.mysqldump
框中的df-h显示每个目录中有足够的空间(至少50%)


数据丢失再加上它们的转储没有增加,这让我担心,不知何故,我们在MySQL中遇到了一些硬编码限制,而且(天哪,我希望我错了),数据正在被破坏。有人听说过这样的事吗?我们如何解释mysqldump的大小?

MySQL可以处理的数据量没有硬编码限制。

如果您正在进行多个多gig转储,并且中途空间不足,50%的可用空间并不意味着什么。除非您将二进制数据存储在转储中,否则它们是可压缩的,因此我建议在输出到文件之前通过gzip管道传输mysqldump的输出:

mysqldump .... | gzip -9 > /path_to_backup/....

MySQL本身没有任何武断的限制,比如“X gigs之后不再有”,但它运行的平台有一些限制。

它绝对没有耗尽磁盘空间。。。每个转储约10GB,磁盘可用容量为366GB。您可能希望将stderr重定向到另一个文件,以捕获mysqldump产生的任何错误输出<代码>msyqldump…>dump.sql 2>dump.err并查看显示的内容。例如,如果数据库中有一个blob超过了max_allowed_数据包,则转储将在该点中止。从命令行运行(使用我们的无转储stderr)仍然不会产生任何输出。。。看起来它运行得很完美(但文件是在10375605093完成的)。数据目录上的du-k显示它现在大约为1.45GB(并且还在增长)。我真的很难受。转储文件上的tail-1显示预期的“转储于2011-08-05 17:33:29完成”…计算出来(sortof)。似乎设置此功能的开发人员在/path/to/mysqld2.sock套接字上运行了第二个数据库。一旦我们意识到主服务器运行在不同的套接字上,只需去掉“-S”并指定新的creds就可以了。仍在挖掘,但看起来第二个数据库可能是一个停止的从属数据库(因此转储的大小停止增加)。谢谢大家的指点!深入挖掘。。。这不是“最大允许包”问题(alahttp://rackerhacker.com/2007/10/11/mysqldump-got-packet-bigger-than-max_allowed_packet-bytes/),文件系统是Linux/ext4。。。最大文件大小为16TB()。在这里仍然完全不知道。。。