MYSQL 表空间恢复
由于ibdata1文件小心被删除,数据库数据看到
具体思路,重建数据,移动出问题的数据上的idb文件进行恢复。前提表没有问题,必须要有原始的建表语句,由于mysql的自带数据没有问题,就不需要进行恢复
原始建库建表语句(只要表结构)可以从其他节点复制过来(如mysql slave节点)
1.复制损坏的数据到新的节点(如果在源节点,请确保数据目录和磁盘磁盘空间足够 )
2.移动第1步复制过来的除mysql、performance_schema、sys、information_schema目录以外的其他目录到备份目录。
#复制过来的目录 MYSQL_DIR= /data/mysql-test/mysql #备份的目录 S_DIR= /data/mysql-test/bak mkdir -p ${S_DIR} mkdir -p /data/mysql-test/finish/ #移动除mysql、performance_schema、sys、information_schema目录以外的其他目录到备份目录 ls -l ${MYSQL_DIR}| grep ^d| grep -vE "mysql|performance_schema|sys|information_schema" | awk '{print $NF}' | xargs -I {} mv {} /data/mysql-test/bak |
3.启动mysql docker
docker run -d --network=host - v /data/mysql-test/mysql : /var/lib/mysql 192.168.188.64:5000 /mysql5 .7.31 #下面是使用nerdctl启动 #nerdctl run -d --network=host -v /data/mysql-test/mysql:/var/lib/mysql 192.168.188.64:5000/mysql5.7.31 |
4.导入准备好的
使用mysql客户端上执行 source all.sql |
5.分离表结构,复制源文件,释放表空间
#复制container中mysql命令到主机上 nerdctl cp e4c5982b91d1: /usr/bin/mysql /usr/bin/mysql #获取数据库 DATABASES=$( ls -l /data/mysql-test/bak | grep ^d| awk '{print $NF}' ) for i in $DATABASES; do echo database:${i} #获取表 Tables=$( ls /data/mysql-test/bak/ $i| grep \.ibd) for j in $Tables; do Table_name=$( echo $j| awk -F ".ibd" '{print $1}' ) #分离表空间 mysql -uroot -pPassword -S /data/mysql-test/mysql/mysql .sock -e "alter table ${i}.${Table_name} discard tablespace;" echo "/data/mysql-test/mysql/$i/$j" #复制文件到数据 cp /data/mysql-test/bak/ $i/$j /data/mysql-test/mysql/ $i/$j #修正文件权限 chown 999:999 /data/mysql-test/mysql/ $i/$j #释放表空间 mysql -uroot -pPassword -S /data/mysql-test/mysql/mysql .sock -e "alter table ${i}.${Table_name} import tablespace;" done mv /data/mysql-test/bak/ $i /data/mysql-test/finish/ done |
56g左右恢复时间
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报