2.利用進程pid查看對應的文件描述符 [mysql@mvxl0782 binlog]$ ll /proc/18401/fd|egrep 'ib_|ibdata' lrwx------ 1 mysql mysql 64 8月 11 10:33 10 -> /mysql/server/data/ib_logfile1 lrwx------ 1 mysql mysql 64 8月 11 10:33 11 -> /mysql/server/data/ib_logfile2 lrwx------ 1 mysql mysql 64 8月 11 10:33 4 -> /mysql/server/data/ibdata1 lrwx------ 1 mysql mysql 64 8月 11 10:33 9 -> /mysql/server/data/ib_logfile0
上面的10、11、4和9就是我們要恢復的文件
3、關閉前端業務或執行flush tables with read lock; 不讓有數據寫入
4、驗證有沒有數據寫入
a.先輸入下面命令,讓臟頁盡快寫入到磁盤里 set global innodb_max_dirty_pages_ptc=0; b.查看binlog日志寫入情況,確保file和position沒有變化 show master status; c.最后查看innodb狀態信息,確保臟頁已刷入到磁盤中 show engine inndodb status/G
LOG Log sequence number xxxx Log flushed up to xxxx Last checkpoint at xxx ##確保這3個值不在變化
5.恢復操作
[mysql@mvxl0782 binlog]$ ll /proc/18401/fd|egrep 'ib_|ibdata' lrwx------ 1 mysql mysql 64 8月 11 10:33 10 -> /mysql/server/data/ib_logfile1 lrwx------ 1 mysql mysql 64 8月 11 10:33 11 -> /mysql/server/data/ib_logfile2 lrwx------ 1 mysql mysql 64 8月 11 10:33 4 -> /mysql/server/data/ibdata1 lrwx------ 1 mysql mysql 64 8月 11 10:33 9 -> /mysql/server/data/ib_logfile0