这种宕机的修表,怎么做能挽回数据?

2023-01-04 22:58:32 +08:00
 pppguest3962

业余折腾的服务器,突然掉电了,
重新加电,Mysql 跑起来后,发现有几个表丢失了,来不及看教材了,去看了几篇科普文后,开始着手修表,

先这么做了,

mysql> REPAIR TABLE sStatus;
+-----------------+--------+----------+---------------------------------+
| Table           | Op     | Msg_type | Msg_text                        |
+-----------------+--------+----------+---------------------------------+
| testyyy.sStatus | repair | Error    | Incorrect file format 'sStatus' |
| testyyy.sStatus | repair | error    | Corrupt                         |
+-----------------+--------+----------+---------------------------------+
2 rows in set (0.04 sec)

然后看别人的做法都是直接就上:

REPAIR TABLE sStatus USE_FRM

这命令了,
我也这么跟着干了,然后发现只是重新建了空表而已(过程没那么简单,只是我表达自己看到的结果)
数据就没了,虽然不太重要,可以重新刷,
但是能挽留的话,就好很多了,
所以想请教一下各位,这种情况,是不是只能直接上 USE_FRM 了?
还是别人的操作,是一种错误操作?

1148 次点击
所在节点    MySQL
3 条回复
coolloves
2023-01-05 09:52:15 +08:00
也不太懂这个修复的操作,目前我想到的是考虑备份为主吧.最简单的可以考虑做个主从同步,如果能遇到两台机器同时断电且都损坏的概率,只能说,老天不给活路了.
lookStupiToForce
2023-01-05 10:21:08 +08:00
有完整的 binlog 啥都好办,binlog 坏了又没备份那就只有找硬盘公司看回复硬盘数据了🐶
aHR0cHM6Ly93d3cuY25ibG9ncy5jb20vbWljaGFlbDkvcC8xMTkyMzQ4My5odG1s
aHR0cHM6Ly9kYmEuc3RhY2tleGNoYW5nZS5jb20vcXVlc3Rpb25zLzU2MzU4L215c3FsaG93LXRvLWNvcnJlY3QtYS1jb3JydXB0ZWQtbXlzcWwtYmluYXJ5LWxvZy1vbi1tYXN0ZXItc2VydmVy
h0099
2023-01-15 21:37:13 +08:00
REPAIR TABLE 是用于以前使用 myisam 引擎的表的,您的 sStatus 的 table engine 是 innodb 还是 myisam ?(还有人用 myisam ?)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/906628

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX