数据库 – mysqldump – where with =运算符不能获取所有行
我有一个特定表的情况,现在认为它包含4 PB的数据.我知道这听起来很酷,但我保证,它仅限于60GB分区. 该表中有9个字段.其中一个是domain_id字段.它是识别行的最佳字段,因为它们只有大约6300个.匹配的唯一其他字段选项有超过200万条记录,而这更加困难. 我不能做一个直接的mysqldump,因为它会尝试输出所有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”键会发生什么 – 即使遇到错误也要继续? (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |