恢复数据库
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/
首先使用 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