萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> mysql執行drop table 數據恢復方法

mysql執行drop table 數據恢復方法

mysql drop table表格通過是清除表中所有記錄了,這個刪除與delete來講更干淨快捷同時會初始化表的id了,下面我們來看mysql執行 drop table 數據恢復方法

對於MySQL數據庫的innodb引擎的數據庫中,由於誤操作刪除表,或者由於sqldump自動生成語句含drop table create table語句導致數據丟失,在沒有覆蓋的情況下,可以實現完美恢復
創建測試表

mysql> CREATE TABLE recover.`t_drop` (

    ->   `messageId` varchar(30) NOT NULL,

    ->   `msgContent` varchar(1000) default NULL,

    ->   `scheduleDate` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,

    ->   `deliverState` int(1) default NULL,

    ->   PRIMARY KEY  (`messageId`)

    -> ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Query OK, 0 rows affected (0.00 sec)

 

mysql> insert into recover.t_drop select messageId,msgContent,scheduleDate,deliverState from sms_send_record;

Query OK, 11 rows affected (0.00 sec)

Records: 11  Duplicates: 0  Warnings: 0

 

mysql> select * from recover.`t_drop`;

+--------------------+----------------------------------------------------------------------------------+---------------------+--------------+

| messageId          | msgContent                                                                       | scheduleDate        | deliverState |

+--------------------+----------------------------------------------------------------------------------+---------------------+--------------+

| 10235259536125650  | 尊敬的用戶您好:您的手機驗證碼為474851如非本人操作,請撥打奧斯卡客服:400-620-757    | 2010-01-01 00:00:00 |            0 | 

| 10235353811295807  | 尊敬的用戶您好:您的手機驗證碼為444632如非本人操作,請撥打奧斯卡客服:400-620-757    | 2010-01-01 00:00:00 |            0 | 

| 102354211240398235 | 尊敬的用戶您好:您的手機驗證碼為478503如非本人操作,請撥打奧斯卡客服:400-620-757    | 2010-01-01 00:00:00 |            0 | 

| 102354554052884567 | 尊敬的用戶您好:您的手機驗證碼為216825如非本人操作,請撥打奧斯卡客服:400-620-757    | 2010-01-01 00:00:00 |            0 | 

| 132213454294519126 | 尊敬的用戶您好:您的手機驗證碼為854812如非本人操作,請撥打奧斯卡客服:400-620-757    | 2010-01-01 00:00:00 |            0 | 

| 82329022242584577  | 尊敬的用戶您好:您的手機驗證碼為253127如非本人操作,請撥打奧斯卡客服:400-620-757    | 2010-01-01 00:00:00 |            0 | 

| 82329022242584581  | 尊敬的用戶您好:您的手機驗證碼為253127如非本人操作,請撥打奧斯卡客服:400-620-757    | 2010-01-01 00:00:00 |            0 | 

| 8233400415607376   | 尊敬的用戶您好:您的手機驗證碼為338470如非本人操作,請撥打奧斯卡客服:400-620-757    | 2010-01-01 00:00:00 |            0 | 

| 82334502212106951  | 尊敬的用戶您好:您的手機驗證碼為916515如非本人操作,請撥打奧斯卡客服:400-620-757    | 2010-01-01 00:00:00 |            0 | 

| 82339012756833423  | 尊敬的用戶您好:您的手機驗證碼為396108如非本人操作,請撥打奧斯卡客服:400-620-757    | 2010-01-01 00:00:00 |            0 | 

| 8234322198577796   | 尊敬的用戶您好:您的手機驗證碼為935297如非本人操作,請撥打奧斯卡客服:400-620-757    | 2010-01-01 00:00:00 |            0 | 

+--------------------+----------------------------------------------------------------------------------+---------------------+--------------+

11 rows in set (0.00 sec)

 

mysql> checksum table t_drop;

+-----------------+-----------+

| Table           | Checksum  |

+-----------------+-----------+

| recover.t_drop  | 920719058 | 

+-----------------+-----------+

1 row in set (0.00 sec)

刪除測試表,後續用來恢復

mysql> drop table recover.t_drop;

Query OK, 0 rows affected (0.00 sec)

解析ibdata文件

[root@web103 mysql_recovery]# ./stream_parser -f /var/lib/mysql/ibdata1 

Opening file: /var/lib/mysql/ibdata1

File information:

 

ID of device containing file:         2049

inode number:                      1344553

protection:                         100660 (regular file)

number of hard links:                    1

user ID of owner:                       27

group ID of owner:                      27

device ID (if special file):             0

blocksize for filesystem I/O:         4096

number of blocks allocated:         463312

time of last access:            1440825416 Sat Aug 29 13:16:56 2015

time of last modification:      1440855835 Sat Aug 29 21:43:55 2015

time of last status change:     1440855835 Sat Aug 29 21:43:55 2015

total size, in bytes:            236978176 (226.000 MiB)

 

Size to process:                 236978176 (226.000 MiB)

Opening file: /var/lib/mysql/ibdata1

File information:

 

ID of device containing file:         2049

inode number:                      1344553

protection:                         100660 (regular file)

number of hard links:                    1

user ID of owner:                       27

group ID of owner:                      27

device ID (if special file):             0

blocksize for filesystem I/O:         4096

number of blocks allocated:         463312

time of last access:            1440825416 Sat Aug 29 13:16:56 2015

time of last modification:      1440855835 Sat Aug 29 21:43:55 2015

time of last status change:     1440855835 Sat Aug 29 21:43:55 2015

total size, in bytes:            236978176 (226.000 MiB)

 

Size to process:                 236978176 (226.000 MiB)

Opening file: /var/lib/mysql/ibdata1

File information:

 

ID of device containing file:         2049

inode number:                      1344553

protection:                         100660 (regular file)

number of hard links:                    1

user ID of owner:                       27

group ID of owner:                      27

device ID (if special file):             0

blocksize for filesystem I/O:         4096

number of blocks allocated:         463312

time of last access:            1440825416 Sat Aug 29 13:16:56 2015

time of last modification:      1440855835 Sat Aug 29 21:43:55 2015

time of last status change:     1440855835 Sat Aug 29 21:43:55 2015

total size, in bytes:            236978176 (226.000 MiB)

 

Size to process:                 236978176 (226.000 MiB)

Opening file: /var/lib/mysql/ibdata1

File information:

 

ID of device containing file:         2049

inode number:                      1344553

protection:                         100660 (regular file)

number of hard links:                    1

user ID of owner:                       27

group ID of owner:                      27

device ID (if special file):             0

blocksize for filesystem I/O:         4096

number of blocks allocated:         463312

time of last access:            1440825416 Sat Aug 29 13:16:56 2015

time of last modification:      1440855835 Sat Aug 29 21:43:55 2015

time of last status change:     1440855835 Sat Aug 29 21:43:55 2015

total size, in bytes:            236978176 (226.000 MiB)

 

Size to process:                 236978176 (226.000 MiB)

Opening file: /var/lib/mysql/ibdata1

File information:

 

ID of device containing file:         2049

inode number:                      1344553

protection:                         100660 (regular file)

number of hard links:                    1

user ID of owner:                       27

group ID of owner:                      27

device ID (if special file):             0

blocksize for filesystem I/O:         4096

number of blocks allocated:         463312

time of last access:            1440825416 Sat Aug 29 13:16:56 2015

time of last modification:      1440855835 Sat Aug 29 21:43:55 2015

time of last status change:     1440855835 Sat Aug 29 21:43:55 2015

total size, in bytes:            236978176 (226.000 MiB)

 

Size to process:                 236978176 (226.000 MiB)

Opening file: /var/lib/mysql/ibdata1

File information:

 

ID of device containing file:         2049

inode number:                      1344553

protection:                         100660 (regular file)

number of hard links:                    1

user ID of owner:                       27

group ID of owner:                      27

device ID (if special file):             0

blocksize for filesystem I/O:         4096

number of blocks allocated:         463312

time of last access:            1440825416 Sat Aug 29 13:16:56 2015

time of last modification:      1440855835 Sat Aug 29 21:43:55 2015

time of last status change:     1440855835 Sat Aug 29 21:43:55 2015

total size, in bytes:            236978176 (226.000 MiB)

 

Size to process:                 236978176 (226.000 MiB)

Opening file: /var/lib/mysql/ibdata1

File information:

 

ID of device containing file:         2049

inode number:                      1344553

protection:                         100660 (regular file)

number of hard links:                    1

user ID of owner:                       27

group ID of owner:                      27

device ID (if special file):             0

blocksize for filesystem I/O:         4096

number of blocks allocated:         463312

time of last access:            1440855928 Sat Aug 29 21:45:28 2015

time of last modification:      1440855835 Sat Aug 29 21:43:55 2015

time of last status change:     1440855835 Sat Aug 29 21:43:55 2015

total size, in bytes:            236978176 (226.000 MiB)

 

Size to process:                 236978176 (226.000 MiB)

Opening file: /var/lib/mysql/ibdata1

File information:

 

ID of device containing file:         2049

inode number:                      1344553

protection:                         100660 (regular file)

number of hard links:                    1

user ID of owner:                       27

group ID of owner:                      27

device ID (if special file):             0

blocksize for filesystem I/O:         4096

number of blocks allocated:         463312

time of last access:            1440855928 Sat Aug 29 21:45:28 2015

time of last modification:      1440855835 Sat Aug 29 21:43:55 2015

time of last status change:     1440855835 Sat Aug 29 21:43:55 2015

total size, in bytes:            236978176 (226.000 MiB)

 

Size to process:                 236978176 (226.000 MiB)

Worker(1): 56.64% done. 2015-08-29 21:45:30 ETA(in 00:00:01). Processing speed: 8.000 MiB/sec

Worker(0): 56.64% done. 2015-08-29 21:45:30 ETA(in 00:00:01). Processing speed: 8.000 MiB/sec

Worker(4): 56.64% done. 2015-08-29 21:45:30 ETA(in 00:00:01). Processing speed: 8.000 MiB/sec

Worker(3): 56.64% done. 2015-08-29 21:45:30 ETA(in 00:00:01). Processing speed: 8.000 MiB/sec

Worker(2): 56.64% done. 2015-08-29 21:45:30 ETA(in 00:00:01). Processing speed: 8.000 MiB/sec

Worker(7): 56.64% done. 2015-08-29 21:45:30 ETA(in 00:00:01). Processing speed: 8.000 MiB/sec

Worker(5): 56.64% done. 2015-08-29 21:45:30 ETA(in 00:00:01). Processing speed: 8.000 MiB/sec

Worker(6): 56.64% done. 2015-08-29 21:45:30 ETA(in 00:00:01). Processing speed: 8.000 MiB/sec

All workers finished in 1 sec

恢復mysql字典

[root@web103 mysql_recovery]# ./recover_dictionary.sh 

Generating dictionary tables dumps... OK

Creating test database ... OK

Creating dictionary tables in database test:

SYS_TABLES ... OK

SYS_COLUMNS ... OK

SYS_INDEXES ... OK

SYS_FIELDS ... OK

All OK

Loading dictionary tables data:

SYS_TABLES ... 162 recs OK

SYS_COLUMNS ... 1247 recs OK

SYS_INDEXES ... 216 recs OK

SYS_FIELDS ... 411 recs OK

All OK

[root@web103 mysql_recovery]# mysql test

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

 

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 10162

Server version: 5.0.95 Source distribution

 

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

 

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

 

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

 

mysql> select * from SYS_TABLES WHERE name like 'recover%';

+-------------------------+-----+--------+------+--------+---------+--------------+-------+

| NAME                    | ID  | N_COLS | TYPE | MIX_ID | MIX_LEN | CLUSTER_NAME | SPACE |

+-------------------------+-----+--------+------+--------+---------+--------------+-------+

| recover/#sql-64a9_1f6d  | 120 |      8 |    1 |      0 |       0 |              |     0 | 

| recover/#sql2-64a9-1f6d | 115 |      8 |    1 |      0 |       0 |              |     0 | 

| recover/t_delete        |  74 |      2 |    1 |      0 |       0 |              |     0 | 

| recover/t_delete1       |  84 |      2 |    1 |      0 |       0 |              |     0 | 

| recover/t_drop          | 125 |      4 |    1 |      0 |       0 |              |     0 | 

| recover/t_truncate      | 120 |      8 |    1 |      0 |       0 |              |     0 | 

| recover/t_xifenfei      |  75 |      2 |    1 |      0 |       0 |              |     0 | 

| recover/zx_users        |  89 |     85 |    1 |      0 |       0 |              |     0 | 

+-------------------------+-----+--------+------+--------+---------+--------------+-------+

8 rows in set (0.00 sec)

 

mysql> select * from SYS_INDEXES WHERE TABLE_ID=125;

+----------+-----+---------+----------+------+-------+------------+

| TABLE_ID | ID  | NAME    | N_FIELDS | TYPE | SPACE | PAGE_NO    |

+----------+-----+---------+----------+------+-------+------------+

|      125 | 142 | PRIMARY |        1 |    3 |     0 | 4294967295 | 

+----------+-----+---------+----------+------+-------+------------+

1 row in set (0.00 sec)

恢復被刪除表記錄

[root@web103 mysql_recovery]# ./c_parser -5f pages-ibdata1/FIL_PAGE_INDEX/0000000000000142.page  -t dictionary/t_drop.sql >dumps/default/t_drop 2>2.sql

[root@web103 mysql_recovery]# more dumps/default/t_drop

-- Page id: 9860, Format: COMPACT, Records list: Valid, Expected records: (11 11)

00000099F9F2    80000026800110  t_drop  "10235259536125650"     "尊敬的用戶您好:您的手機驗證碼為474851如非本人操作,請撥打奧斯卡客服:400-620-7575。"  "2010-01-01 00:00:00"   0

00000099F9F2    80000026800129  t_drop  "10235353811295807"     "尊敬的用戶您好:您的手機驗證碼為444632如非本人操作,請撥打奧斯卡客服:400-620-7575。"  "2010-01-01 00:00:00"   0

00000099F9F2    80000026800142  t_drop  "102354211240398235"    "尊敬的用戶您好:您的手機驗證碼為478503如非本人操作,請撥打奧斯卡客服:400-620-7575。"  "2010-01-01 00:00:00"   0

00000099F9F2    8000002680015C  t_drop  "102354554052884567"    "尊敬的用戶您好:您的手機驗證碼為216825如非本人操作,請撥打奧斯卡客服:400-620-7575。"  "2010-01-01 00:00:00"   0

00000099F9F2    80000026800176  t_drop  "132213454294519126"    "尊敬的用戶您好:您的手機驗證碼為854812如非本人操作,請撥打奧斯卡客服:400-620-7575。"  "2010-01-01 00:00:00"   0

00000099F9F2    80000026800190  t_drop  "82329022242584577"     "尊敬的用戶您好:您的手機驗證碼為253127如非本人操作,請撥打奧斯卡客服:400-620-7575。"  "2010-01-01 00:00:00"   0

00000099F9F2    800000268001A9  t_drop  "82329022242584581"     "尊敬的用戶您好:您的手機驗證碼為253127如非本人操作,請撥打奧斯卡客服:400-620-7575。"  "2010-01-01 00:00:00"   0

00000099F9F2    800000268001C2  t_drop  "8233400415607376"      "尊敬的用戶您好:您的手機驗證碼為338470如非本人操作,請撥打奧斯卡客服:400-620-7575。"  "2010-01-01 00:00:00"   0

00000099F9F2    800000268001DA  t_drop  "82334502212106951"     "尊敬的用戶您好:您的手機驗證碼為916515如非本人操作,請撥打奧斯卡客服:400-620-7575。"  "2010-01-01 00:00:00"   0

00000099F9F2    800000268001F3  t_drop  "82339012756833423"     "尊敬的用戶您好:您的手機驗證碼為396108如非本人操作,請撥打奧斯卡客服:400-620-7575。"  "2010-01-01 00:00:00"   0

00000099F9F2    8000002680020C  t_drop  "8234322198577796"      "尊敬的用戶您好:您的手機驗證碼為935297如非本人操作,請撥打奧斯卡客服:400-620-7575。"  "2010-01-01 00:00:00"   0

-- Page id: 9860, Found records: 11, Lost records: NO, Leaf page: YES

恢復數據入庫

mysql> source dictionary/t_drop.sql

Query OK, 0 rows affected (0.00 sec)

 

mysql> source 2.sql

Query OK, 0 rows affected (0.00 sec)

 

Query OK, 11 rows affected (0.00 sec)

Records: 11  Deleted: 0  Skipped: 0  Warnings: 0

 

mysql> checksum table t_drop;

+-----------------+-----------+

| Table           | Checksum  |

+-----------------+-----------+

| recover.t_drop  | 920719058 | 

+-----------------+-----------+

1 row in set (0.00 sec)

至此實現刪除數據完美恢復

copyright © 萬盛學電腦網 all rights reserved