lef*_*cus 34 mysql repair innodb
我们(显然)昨晚的Solaris MySQL数据库引擎执行得很糟糕.至少有一些InnoDB表已损坏,事务日志中的时间戳乱序错误,以及有关索引损坏的特定错误.
我们知道可用于MyISAM表修复的工具,但找不到InnoDB的任何内容.
附注:尝试表优化(在我尝试重建损坏的索引时)会导致数据库服务器崩溃.
小智 22
停止您的应用程序...或停止您的从属设备,以便不添加新行
create table <new table> like <old table>;
insert <new table> select * from <old table>;
truncate table <old table>;
insert <old table> select * from <new table>;
Run Code Online (Sandbox Code Playgroud)
重启服务器或从服务器
以下解决方案的灵感来自Sandro的上述提示.
警告:虽然它对我有用,但我不知道它是否适合你.
我的问题如下:从表中读取一些特定的行(让我们调用这个表broken
)会使MySQL崩溃.甚至SELECT COUNT(*) FROM broken
会杀了它.我希望你PRIMARY KEY
在这张桌子上有一个(在下面的例子中,它是id
).
CREATE TABLE broken_repair LIKE broken;
INSERT broken_repair SELECT * FROM broken WHERE id NOT IN (SELECT id FROM broken_repair) LIMIT 1;
LIMIT 100000
然后使用较低的值,直到使用LIMIT 1
崩溃数据库).SELECT MAX(id) FROM broken
与行数比较broken_repair
).OFFSET
到LIMIT
.祝好运!
归档时间: |
|
查看次数: |
152856 次 |
最近记录: |