数据库 – mysqldump – where with =运算符不能获取所有行

前端之家收集整理的这篇文章主要介绍了数据库 – mysqldump – where with =运算符不能获取所有行前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个特定表的情况,现在认为它包含4 PB的数据.我知道这听起来很酷,但我保证,它仅限于60GB分区.

该表中有9个字段.其中一个是domain_id字段.它是识别行的最佳字段,因为它们只有大约6300个.匹配的唯一其他字段选项有超过200万条记录,而这更加困难.

我不能做一个直接的@L_301_0@dump,因为它会尝试输出所有4PB数据并在它接近之前填充驱动器,所以我需要通过手术删除好东西,销毁数据库,然后重新创建它.

我相信如果我可以为每个domain_id记录执行转储,那么我将从中获取大部分可用数据.这就是我想要使用的:

MysqLdump -u root --skip-opt -q --no-create-info --skip-add-drop-table \
 --max_allowed_packet=1000000000 database table --where="domain_id=10" \
 > domains10.sql

使用这个我希望导出具有domain_id 10的每一行.

但是,当我检查导出时,我只得到1行,但是当我查看db时,有很多行.就好像运算符只找到一个,然后放弃.

我试过各种操作符.使用<或>我能够获得更多数据,但导出在数据受损的某些行停止.经过6000多次,我不能轻易地缩小出口中受影响的行.

所以,我需要的是一个基本上做我认为=会做的操作符,只需输出一个与特定字段匹配的所有记录.

还要注意,我得到这个DB甚至可以访问的唯一方法是通过innodb强制恢复3.所以我需要做到这一点,因为在完成之后,我必须删除数据库以使MysqL再次运行.

期待任何有用的答案.

解决方法

从你写的东西看来,数据库已经被破坏了(认为4PB而不是60GB是一种赠品).

我怀疑你可以得到任何检索信息可靠性的保证,除非你先修复db.你试过这个吗?

否则,如果你执行“-f”键会发生什么 – 即使遇到错误也要继续?

原文链接:https://www.f2er.com/mssql/80119.html

猜你在找的MsSQL相关文章