23. InnoDB 物理文件恢复数据 (1) 通过 page_parser 将页按结构解出(红色为 INDEX ID ) #./page_parser -5 -f /data/mysqldata/mydata/plx/a.ibd Opening file: /data/mysqldata/mydata/plx/a.ibd Read data from fn=3... …… Read page #3.. saving it to pages-1301329232/ 0-751 /3-00000003.page Read page #0.. saving it to pages-1301329232/ 0-0 /4-00000000.page Read page #0.. saving it to pages-1301329232/ 0-0 /5-00000000.page
24. InnoDB 物理文件恢复数据 (2) CREATE TABLE innodb_table_monitor (id int) ENGINE=InnoDB; 打开 Monitor 查看 INDEX ID 。 例子中, INDEX ID 为 0-751 ,则解出的页在 0-751 目录。 TABLE: name plx/a, id 0 246, columns 5, indexes 1, appr.rows 5 COLUMNS: id: DATA_INT DATA_UNSIGNED DATA_BINARY_TYPE DATA_NOT_NULL len 4; info: DATA_BLOB len 10; DB_ROW_ID: DATA_SYS prtype 256 len 6; DB_TRX_ID: DATA_SYS prtype 257 len 6; DB_ROLL_PTR: DATA_SYS prtype 258 len 7; INDEX: name PRIMARY, id 0 751 , fields 1/4, uniq 1, type 3 root page 3, appr.key vals 5, leaf pages 1, size pages 1 FIELDS: id DB_TRX_ID DB_ROLL_PTR info
26. InnoDB 物理文件恢复数据 (4) 根据表结构重新 make 然后导出数据。 #./constraints_parser -5 -f pages-1301316207/0-751/3-00000003.page a 1 "a" a 2 "b" a 3 "c" a 4 "d" a 5 "e" a 6 "f" ./constraints_parser -5 -D -f pages-1301316207/0-751/3-00000003.page ( 只导出被删除的 ) a 1 "a"