ibdata 误删恢复 用linux 命令

这里写自定义目录标题

ibdata 误删恢复 用linux 命令

1:做这个实验首先备份 dump 然后ibdata 备份

2:rm -rf ib* 删除所有ib内容

3:若发现数据库正常工作 数据照样写入 切记 千万别把mysql进程杀死 否则无法挽救

4:找mysqlid 的进程pid
netstat -ntlp|grep mysqld
netstat -ntlp|grep mysqld
tcp6 0 0 :::3306 ::😗 LISTEN 1294/mysqld
这里是1294

5:这里关键一步 查找结果 可以看到自己删除的内容
ll /proc/1294/fd |egrep ‘ib_|ibdata’
lrwx------. 1 root root 64 Sep 29 07:05 10 -> /application/mysql-5.6.17/data/ib_logfile1
lrwx------. 1 root root 64 Sep 29 07:05 4 -> /application/mysql-5.6.17/data/ibdata1 (deleted)
lrwx------. 1 root root 64 Sep 29 07:05 9 -> /application/mysql-5.6.17/data/ib_logfile0
这里的4 是要恢复内容

6:登陆mysql 防止写入 方便恢复
mysql -uroot -proot
flush tables with read lock;
set global innodb_max_dirty_pages_pct=0; 让脏页尽快刷入磁盘
show master status;
±-----------------±---------±-------------±-----------------±------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
±-----------------±---------±-------------±-----------------±------------------+
| mysql-bin.000002 | 151 | | | |
±-----------------±---------±------

show engine innodb status;
观察 purge done for trx no<423232 n:o <0
确保后台purge 进程把undo log 全部清除掉 事物id 要一致

insert buffers 合并插入缓存等于1

log sequence
log flush
last checkpoint
确保3个值不在变化
buffer pool adn memory
modified db pages0
insert update delete reads/s
确保 插入 更新 和删除为0

7:查看恢复内容
ll /proc/1294/fd |egrep ‘ib_|ibdata’
lrwx------. 1 root root 64 Sep 29 07:05 10 -> /application/mysql-5.6.17/data/ib_logfile1
lrwx------. 1 root root 64 Sep 29 07:05 4 -> /application/mysql-5.6.17/data/ibdata1 (deleted)
lrwx------. 1 root root 64 Sep 29 07:05 9 -> /application/mysql-5.6.17/data/ib_logfile0

8:进入恢复目录 拷贝文件
cd /proc/1294/fd
ll 可以看到自己删除的内容

9:执行恢复操作
cp 4 /application/mysql-5.6.17/data/ibdata1

10:进入自己mysql工作目录查看 是否拷贝过来
cd /application/mysql/data/
ll

11:更改用户属性
chown -R mysql.mysql ibdata1

12:重启mysql
/etc/init.d/mysqld restart

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值