最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mysql利用mysqlbinlog命令恢復(fù)誤刪除數(shù)據(jù)的實(shí)現(xiàn)

 更新時(shí)間:2021年03月19日 10:33:30   作者:柴米油鹽醬醋0  
這篇文章主要介紹了mysql利用mysqlbinlog命令恢復(fù)誤刪除數(shù)據(jù)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

實(shí)驗(yàn)環(huán)境:

MYSQL 5.7.22 

開(kāi)啟二進(jìn)志日志

日志格式MIXED

實(shí)驗(yàn)過(guò)程:

1、執(zhí)行:FLUSH LOGS;

master-bin.000014 文件就是新生成的文件

刷新日志是為了實(shí)驗(yàn)內(nèi)容更直觀,更容易觀察到整個(gè)實(shí)驗(yàn)過(guò)程的內(nèi)容。

我看到網(wǎng)上許多文章有在用REST MASTER;而未說(shuō)明此命令的嚴(yán)重性

這條命令會(huì)刪除所有日志文件,并將文件名和記錄點(diǎn)進(jìn)行重置歸零,99%的情況下是用不到這條命令的

刪除日志可以用PURGE MASTER LOGS...這樣保險(xiǎn)一點(diǎn)

2、新日志文件已經(jīng)生成,先觀察一下內(nèi)容,有幾個(gè)點(diǎn)需要了解

 查看二進(jìn)日日志文件命令:mysqlbinlog master-bin.000014

# at 4
#180903 16:19:12 server id 1 end_log_pos 123 CRC32 0xe03659b3 Start: binlog v 4, server v 5.7.22-log created 180903 16:19:12

先看上邊兩個(gè)箭頭:

  • # at 4(事件開(kāi)始點(diǎn))
  • #180903 16:19:12 (代表的是時(shí)間)
  • server id 1(主備復(fù)制時(shí)需要為每個(gè)MYSQL數(shù)據(jù)庫(kù)指定唯一的SERVER ID,我的未配置,默認(rèn)是1)
  • end_log_pos 123(事件結(jié)束點(diǎn))

再看下邊兩個(gè)箭頭:

  • # at 123(事件開(kāi)始點(diǎn),和上邊的事件結(jié)束點(diǎn)是對(duì)應(yīng)的)
  • end_log_pos 154(事件結(jié)束點(diǎn))
  • at 4 和 at 123之間的內(nèi)容就是事件內(nèi)容

3、模擬業(yè)務(wù)場(chǎng)景,建表,插入數(shù)據(jù),最后將某個(gè)表刪除;為了真實(shí),我建了兩個(gè)庫(kù),同時(shí)向不同的庫(kù)寫入內(nèi)容,最后將其中一個(gè)庫(kù)中的某個(gè)表刪除。

mysql> FLUSH LOGS;
Query OK, 0 rows affected (0.01 sec)

mysql> create database t1;
Query OK, 1 row affected (0.03 sec)

mysql> create database t2;
Query OK, 1 row affected (0.00 sec)

mysql> use t1;
Database changed
mysql> create table t1 (id int);
Query OK, 0 rows affected (0.03 sec)

mysql> use t2;
Database changed
mysql> create table t2 (id int);
Query OK, 0 rows affected (0.03 sec)

mysql> insert into t2 values (3);
Query OK, 1 row affected (0.01 sec)

mysql> insert into t2 values (4);
Query OK, 1 row affected (0.01 sec)

mysql> use t1;
Database changed
mysql> insert into t1 values (1);
Query OK, 1 row affected (0.01 sec)

mysql> insert into t1 values (2);
Query OK, 1 row affected (0.01 sec)

mysql> use t2;
Database changed
mysql> insert into t2 values(20);
Query OK, 1 row affected (0.01 sec)

mysql> use t1;
Database changed
mysql> insert into t1 values(10);
Query OK, 1 row affected (0.01 sec)

mysql> drop table t1;
Query OK, 0 rows affected (0.02 sec)

mysql> use t2;
Database changed
mysql> insert into t2 values(222);
Query OK, 1 row affected (0.01 sec)

mysql>

建立T1、T2庫(kù),建立T1、T2表。

向T1插入數(shù)據(jù):1、2、10

向T2插入數(shù)據(jù):3、4、20、222

模擬場(chǎng)景,刪除T1表,T2庫(kù)T2表業(yè)務(wù)還在繼續(xù)運(yùn)行

現(xiàn)在將要通過(guò)日志將T1表進(jìn)行恢復(fù)。

首先要先找到那個(gè)刪除命令的日志點(diǎn):

mysqlbinlog master-bin.000014|grep -5a "DROP TABLE" 

看到#AT 2439 (記下這個(gè)數(shù)字)

在這個(gè)事件點(diǎn)執(zhí)行的DROP TABLE操作。

由于日志文件內(nèi)不只有T1庫(kù)的日志,還有T2庫(kù)的日志,一會(huì)只取T1數(shù)據(jù)庫(kù)的日志

而且還只取2439日志點(diǎn)之前的日志,再進(jìn)行重新應(yīng)用

如果把2439的日志取的話,再應(yīng)用時(shí)數(shù)據(jù)庫(kù)會(huì)重新建庫(kù)建表,插數(shù)據(jù), 還會(huì)執(zhí)行這條刪表語(yǔ)句。

 mysqlbinlog -d t1 --stop-position=2439  master-bin.000014>test.sql(執(zhí)行這條語(yǔ)句竟然報(bào)錯(cuò)了)

WARNING: The option --database has been used. It may filter parts of transactions, but will include the GTIDs in any case. If you want to exclude or include transactions, you should use the options --exclude-gtids or --include-gtids, respectively, instead.
暫時(shí)弄不清楚原因,百度了下修改成:

mysqlbinlog master-bin.000014 -d t1 --skip-gtids --stop-position=2439>test.sql

-d:參數(shù)是指定某個(gè)數(shù)據(jù)庫(kù)日志 

命令意思是將master-bin.000014日志文件內(nèi)的T1數(shù)據(jù)庫(kù)日志,事件點(diǎn)2439之前的日志,輸出到test.sql

# tail test.sql

看看文件最后幾行

登錄數(shù)據(jù)庫(kù):

mysql> use t1;
Database changed

mysql> source test.sql

中間報(bào)錯(cuò)了一次,因?yàn)槔镞叞◣?kù)T1語(yǔ)句。

再查看表內(nèi)容

這樣數(shù)據(jù)就回來(lái)了。

到此這篇關(guān)于mysql利用mysqlbinlog命令恢復(fù)誤刪除數(shù)據(jù)的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)mysql mysqlbinlog恢復(fù)誤刪除內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL中distinct語(yǔ)句去查詢重復(fù)記錄及相關(guān)的性能討論

    MySQL中distinct語(yǔ)句去查詢重復(fù)記錄及相關(guān)的性能討論

    這篇文章主要介紹了MySQL中distinct語(yǔ)句去查詢重復(fù)記錄及相關(guān)的性能討論,文中的觀點(diǎn)是在一定情況下避免在最高層查詢中使用distinct,需要的朋友可以參考下
    2016-01-01
  • MySQL綠色版(zip解壓版)的安裝圖文教程(mysql-5.6.22-win32.zip)

    MySQL綠色版(zip解壓版)的安裝圖文教程(mysql-5.6.22-win32.zip)

    由于工作需要最近要開(kāi)始研究MySQL了(看來(lái)學(xué)習(xí)都是逼出來(lái)的),本人對(duì)mysql沒(méi)有研究,可以說(shuō)一個(gè)小白。 下面就從安裝開(kāi)始吧,雖然網(wǎng)上關(guān)于這方面的東西很多,還是需要自己把操作過(guò)程寫下來(lái)
    2016-06-06
  • Mysql索引分類及其使用實(shí)例詳解

    Mysql索引分類及其使用實(shí)例詳解

    數(shù)據(jù)庫(kù)的索引就像一本書的目錄,能夠加快數(shù)據(jù)庫(kù)的查詢速度,MYSQL索引有四種PRIMARY、INDEX、UNIQUE、FULLTEXT,?其中PRIMARY、INDEX、UNIQUE是一類,F(xiàn)ULLTEXT是一類,本文給大家介紹Mysql索引分類及其使用實(shí)例,感興趣的朋友一起看看吧
    2022-07-07
  • Centos6.5編譯安裝mysql 5.7.14詳細(xì)教程

    Centos6.5編譯安裝mysql 5.7.14詳細(xì)教程

    這篇文章主要為大家分享了Centos6.5編譯安裝mysql 5.7.14 詳細(xì)教程,感興趣的小伙伴們可以參考一下
    2016-08-08
  • Mysql去重的幾種方式分步講解

    Mysql去重的幾種方式分步講解

    SQL去重是數(shù)據(jù)分析工作中比較常見(jiàn)的一個(gè)場(chǎng)景,下面這篇文章主要給大家介紹了關(guān)于SQL去重的3種實(shí)用方法的相關(guān)資料,文中通過(guò)圖文以及實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • MySQL 中 LIMIT 使用示例詳解

    MySQL 中 LIMIT 使用示例詳解

    limit關(guān)鍵字主要用于指定查詢結(jié)果從哪條記錄開(kāi)始顯示,一共顯示多少條記錄,這篇文章主要介紹了MySQL 中 LIMIT 使用詳解,需要的朋友可以參考下
    2024-08-08
  • MySQL中表鎖和行鎖機(jī)制淺析(源碼篇)

    MySQL中表鎖和行鎖機(jī)制淺析(源碼篇)

    在計(jì)算機(jī)科學(xué)中,鎖是在執(zhí)行多線程時(shí)用于強(qiáng)行限制資源訪問(wèn)的同步機(jī)制,即用于在并發(fā)控制中保證對(duì)互斥要求的滿足,下面這篇文章主要給大家介紹了MySQL中表鎖和行鎖機(jī)制淺析的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • 解決bash: mysql: command not found 的方法

    解決bash: mysql: command not found 的方法

    解決bash: mysql: command not found 的方法,需要的朋友可以參考一下
    2013-03-03
  • Mysql復(fù)制表結(jié)構(gòu)、表數(shù)據(jù)的方法

    Mysql復(fù)制表結(jié)構(gòu)、表數(shù)據(jù)的方法

    這篇文章主要介紹了Mysql復(fù)制表結(jié)構(gòu)、表數(shù)據(jù)的方法,需要的朋友可以參考下
    2015-10-10
  • Mysql服務(wù)器的啟動(dòng)與停止(一)

    Mysql服務(wù)器的啟動(dòng)與停止(一)

    Mysql服務(wù)器的啟動(dòng)與停止(一)...
    2006-11-11

最新評(píng)論

曲松县| 白山市| 确山县| 齐齐哈尔市| 互助| 佛冈县| 三江| 大余县| 孟村| 朝阳市| 郧西县| 台中市| 阿拉善左旗| 察哈| 青海省| 嵊泗县| 孟州市| 岑溪市| 佛坪县| 湛江市| 南丰县| 清水河县| 遂昌县| 鹿泉市| 犍为县| 安阳县| 吉安县| 乌鲁木齐县| 新河县| 格尔木市| 江油市| 北安市| 泸西县| 日照市| 怀柔区| 普宁市| 广河县| 龙岩市| 英吉沙县| 临武县| 务川|