恢复数据库

2022-04-04 浏览次数:259
由于删除数据操作错误,丢失了三个数据库(几年前计算机硬盘问题本地备份数据库,只是遇到新年和很长一段时间没有问题,也没有及时备份),虽然他们以前遇到错误的操作数据丢失,知道遇到这件事必须保持冷静,否则一旦不冷静操作错误会造成多的问题(关键是根据官方提示操作不仅不能解决问题,而且会产生多的问题)幸运的是,物理文件 frm 和 ibd 文件还有,但是时间比较紧,有些操作考虑不到位,中间走了很多弯路,简单说明一下恢复过程供大家参考:

首先使用 dbsake 工具通过 frm表得到表结构。

工具从下载、安装到使用,简单整洁。

curl -s > dbsake

chmod u x dbsake

./dbsake frmdump {frm-file-path}

在获得表结构后,重建数据库和相应的数据表。

然后通过 ibd 文件恢复数据表中的数据。

1.执行 ALTERTABLE {table_name} DISCARD TABLESPACE; 删除新建的表空间

2.将待恢复的{table_name}.ibd文件copy到目标数据库文件夹,修改文件权限

cp {table_name}.ibd {mysql_path}/data/{database_name}/{table_name}.ibd

cd {mysql_path}/data/{database_name}/

chown mysql:mysql <table_name>.ibd

3.执行 ALTERTABLE {table_name} IMPORTTABLESPACE; 导入表空间

经过一个多小时的各种操作,三个库的数据终于恢复了。

总之,重要的是保持冷静。每当你遇到不可逆转的操作,即使你会花多的时间去操作,你也必须先备份,以避免大的问题。

wbz089.cn.b2b168.com/m/
联系我们

在线客服: 515291766

联系人:赵亚东

联系电话: 13355160406