欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

MySQL中如何使用undrop來恢復drop的表-創(chuàng)新互聯(lián)

小編給大家分享一下MySQL中如何使用undrop來恢復drop的表,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

專業(yè)成都網(wǎng)站建設(shè)公司,做排名好的好網(wǎng)站,排在同行前面,為您帶來客戶和效益!創(chuàng)新互聯(lián)為您提供成都網(wǎng)站建設(shè),五站合一網(wǎng)站設(shè)計制作,服務好的網(wǎng)站設(shè)計公司,網(wǎng)站制作、成都網(wǎng)站制作負責任的成都網(wǎng)站制作公司!

MySQL中可以使用編程語言(比如Python)來解析binlog中DML的逆操作來達到閃回的效果,如果數(shù)據(jù)不多,手工解析也可以。這也是現(xiàn)在大家碰到的很多DML Flashback的一個基本原理。而如果是DDL,比如DROP,那就得嘆聲氣了。

GitHub上有一個很不錯的項目是undrop,基于InnoDB,也就意味著如果你所在的環(huán)境有了drop操作還是存在恢復的可能了,當然這個過程需要謹慎,建議大家在測試環(huán)境先練習測試論證后再做決定,當然我們希望這個工具永遠不要排上用場。

這個項目貌似現(xiàn)在關(guān)注的人還不太多,最近看阿里的內(nèi)核月報中也做了解讀。http://mysql.taobao.org/monthly/2017/11/01/,所以引起了我的注意,帶著好奇心,自己也測試一把。

MySQL中如何使用undrop來恢復drop的表

安裝部署很簡單。

gitclone https://github.com/twindb/undrop-for-innodb.git

make

這里需要注意的是,你的環(huán)境很可能沒有flex包,可以在make之前安裝一下。

yum install flex

然后我們來嘗試編譯一個文件sys_parser.c,先配置basedir

basedir=/usr/local/mysql_5.7

gcc `$basedir/bin/mysql_config --cflags` `$basedir/bin/mysql_config --libs` -o sys_parser sys_parser.c

這個工具的一個基本原理就是解析ibdata,從里面解析出我們需要的頁的信息,即對應的數(shù)據(jù)字典。

mysql> show tables like '%SYS%';

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

| Tables_in_information_schema (%SYS%) |

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

| INNODB_SYS_DATAFILES |

| INNODB_SYS_VIRTUAL |

| INNODB_SYS_INDEXES |

| INNODB_SYS_TABLES |

| INNODB_SYS_FIELDS |

| INNODB_SYS_TABLESPACES |

| INNODB_SYS_FOREIGN_COLS |

| INNODB_SYS_COLUMNS |

| INNODB_SYS_FOREIGN |

| INNODB_SYS_TABLESTATS |

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

10 rows in set (0.00 sec)

其中這4個數(shù)據(jù)字典是需要重點關(guān)注的。

SYS_COLUMNS| SYS_FIELDS | SYS_INDEXES | SYS_TABLES

這個工具功能蠻豐富,在目錄下有個sakila的文件夾,是一些示例的腳本,我們可以創(chuàng)建一些看起來和業(yè)務相關(guān)的表,不過實際上我們可以做個減法,只創(chuàng)建一個我們需要重點關(guān)注的表,然后導入數(shù)據(jù)即可。

-rw-r--r--. 1 jeanron jeanron 3231472 Dec 16 2011 sakila-data.sql

-rw-r--r--. 1 jeanron jeanron 50019 Dec 16 2011 sakila.mwb

-rw-r--r--. 1 jeanron jeanron 23099 Dec 16 2011 sakila-schema.sql

否則,這一套表結(jié)構(gòu)還算是比較復雜的,存在外鍵關(guān)聯(lián),處理起來需要花些額外的時間。

整個初始化的工作,我們以表actor為例,手工摘取出actor的建表語句,然后運行sakila-data.sql腳本即可。

mysql> checksum table actor;

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

| Table | Checksum |

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

| sakila.actor | 1702520518 |

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

1 row in set (0.00 sec)

查詢一下表actor的數(shù)據(jù)量。

mysql> select count(*)from actor;

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

| count(*) |

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

| 200 |

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

1 row in set (0.00 sec)

要解析ibdata,可以使用stream_parser來做。我們指定ibdata的路徑。

# ./stream_parser -f /U01/mysql_5.7_test/n1/ibdata1

Opening file: /U01/mysql_5.7_test/n1/ibdata1

File information:

ID of device containing file: 64512

inode number: 152382

protection: 100640 (regular file)

number of hard links: 1

user ID of owner: 501

group ID of owner: 501

device ID (if special file): 0

blocksize for filesystem I/O: 4096

number of blocks allocated: 155648

time of last access: 1509475823 Wed Nov 1 02:50:23 2017

time of last modification: 1509476206 Wed Nov 1 02:56:46 2017

time of last status change: 1509476206 Wed Nov 1 02:56:46 2017

total size, in bytes: 79691776 (76.000 MiB)

Size to process: 79691776 (76.000 MiB)

All workers finished in 1 sec

整個操作很快,會在當前目錄下生成一個pages-ibdata1的文件夾,下面包含兩個文件夾。

drwxr-xr-x. 2 root root 4096 Nov 1 02:57 FIL_PAGE_INDEX

drwxr-xr-x. 2 root root 4096 Nov 1 02:57 FIL_PAGE_TYPE_BLOB

比如INDEX目錄下,存在大量的頁,比如下面的輸出。

-rw-r--r--. 1 root root 32768 Nov 1 02:57 0000000000000001.page

-rw-r--r--. 1 root root 32768 Nov 1 02:57 0000000000000002.page

-rw-r--r--. 1 root root 32768 Nov 1 02:57 0000000000000003.page

-rw-r--r--. 1 root root 32768 Nov 1 02:57 0000000000000004.page

-rw-r--r--. 1 root root 32768 Nov 1 02:57 0000000000000005.page

-rw-r--r--. 1 root root 16384 Nov 1 02:57 0000000000000011.page

-rw-r--r--. 1 root root 16384 Nov 1 02:57 0000000000000012.page

-rw-r--r--. 1 root root 16384 Nov 1 02:57 0000000000000013.page

-rw-r--r--. 1 root root 16384 Nov 1 02:57 0000000000000014.page

-rw-r--r--. 1 root root 32768 Nov 1 02:57 0000000000000015.page

-rw-r--r--. 1 root root 32768 Nov 1 02:57 0000000000000016.page

-rw-r--r--. 1 root root 16384 Nov 1 02:57 0000000000000017.page

-rw-r--r--. 1 root root 16384 Nov 1 02:57 0000000000000032.page

-rw-r--r--. 1 root root 32768 Nov 1 02:57 0000000000000033.page

-rw-r--r--. 1 root root 16384 Nov 1 02:57 18446744069414584320.page

要解析里面的內(nèi)容,我們可以使用另外一個命令c_parser,根據(jù)關(guān)鍵字sakila/actor來過濾。

./c_parser -4Df pages-ibdata1/FIL_PAGE_INDEX/0000000000000001.page -t dictionary/SYS_TABLES.sql | grep 'sakila/actor'

其中參數(shù)4DF,代表文件格式(4代表文件格式是 REDUNDANT),D(D 表示只恢復被刪除的記錄),f生成文件

然后依次使用c_parser來解析頁得到其他幾個數(shù)據(jù)字典的信息,比如(SYS_INDEXES,SYS_COLUMNS,SYS_FIELDS)

以上是“MySQL中如何使用undrop來恢復drop的表”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道!

當前文章:MySQL中如何使用undrop來恢復drop的表-創(chuàng)新互聯(lián)
地址分享:http://aaarwkj.com/article28/iccjp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機網(wǎng)站建設(shè)、虛擬主機網(wǎng)站建設(shè)、品牌網(wǎng)站制作ChatGPT、網(wǎng)站維護

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)
女同伦理视频在线观看| 中文字幕在线感觉av| 国产毛毛片一区二区三区| 国产亚洲精品国产福利久久| 日本人妻在线一区二区三区| 国产aaa级日本一区二区三区| 中文字幕女同系列av厨房| 日本丝袜福利在线观看| 欧美日韩国产一区二区三区在线观看| 日韩欧美亚洲自拍另类| 熟妇高潮一区二区三区| 欧美在线免费黄片视频| 97色伦综合在线欧美| 日韩欧美黄网站免费看| 日本大型午夜福利视频| 亚洲成人免费在线播放| 亚洲第一女人天堂av| 青青草原精品资源视频| 久久久这里只有精品99| 97资源在线公开视频| 国产一区二区视频在线| 最新国产不卡一区二区| 日本韩国三级视频在线观看| 丰满的熟妇女教师水多| 国产偷自一区二区三区| 国产在线精彩视频自拍| 一区二区三区毛片免费| 丰满少妇一级淫片在线播放| 大陆av剧情网站在线观看| 亚洲成人高清av在线| 日本一区二区最新免费| 国产视频一区二区麻豆| 四虎久久久最新网址| 成年人国产免费在线观看| 免费在线黄色生活大片| 在线精品91国产在线观看| 亚洲美腿丝袜综合在线| 亚洲欧美综合日韩综合久久久| 成人偷拍自拍在线视频| 尤物视频在线观看一下| 日本精品专区在线观看|