业余折腾的服务器,突然掉电了,
重新加电,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 了?
还是别人的操作,是一种错误操作?
1
coolloves 2023-01-05 09:52:15 +08:00
也不太懂这个修复的操作,目前我想到的是考虑备份为主吧.最简单的可以考虑做个主从同步,如果能遇到两台机器同时断电且都损坏的概率,只能说,老天不给活路了.
|
2
lookStupiToForce 2023-01-05 10:21:08 +08:00
有完整的 binlog 啥都好办,binlog 坏了又没备份那就只有找硬盘公司看回复硬盘数据了🐶
aHR0cHM6Ly93d3cuY25ibG9ncy5jb20vbWljaGFlbDkvcC8xMTkyMzQ4My5odG1s aHR0cHM6Ly9kYmEuc3RhY2tleGNoYW5nZS5jb20vcXVlc3Rpb25zLzU2MzU4L215c3FsaG93LXRvLWNvcnJlY3QtYS1jb3JydXB0ZWQtbXlzcWwtYmluYXJ5LWxvZy1vbi1tYXN0ZXItc2VydmVy |
3
h0099 2023-01-15 21:37:13 +08:00
REPAIR TABLE 是用于以前使用 myisam 引擎的表的,您的 sStatus 的 table engine 是 innodb 还是 myisam ?(还有人用 myisam ?)
|