中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mysql中delete誤刪除如何利用binlog回滾

發布時間:2021-10-27 17:01:05 來源:億速云 閱讀:411 作者:小新 欄目:MySQL數據庫

這篇文章主要介紹mysql中delete誤刪除如何利用binlog回滾,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

mysql> select * from tet3;
+----+-------------+
| id | dd          |
+----+-------------+
|  1 | XX          |
|  2 | YY          |
|  3 | aaa         |
|  4 | 5002301999X |
|  5 | 0000000X    |
|  6 | oi80        |
|  7 | 887         |
|  8 | 887         |
| 10 | jju         |
+----+-------------+
9 rows in set (0.03 sec)


mysql> delete from tet3 where id>3;
Query OK, 6 rows affected (0.03 sec)


mysql> select * from tet3;
+----+------+
| id | dd   |
+----+------+
|  1 | XX   |
|  2 | YY   |
|  3 | aaa  |
+----+------+
3 rows in set (0.00 sec)


[root@localhost data]# mysqlbinlog --no-defaults --base64-output=decode-rows -v -v db-bin.000016| sed -n '/### DELETE FROM `test`.`tet3`/,/COMMIT/p'> /root/delete.txt
[root@localhost data]# more /root/delete.txt
### DELETE FROM `test`.`tet3`
### WHERE
###   @1=4 /* INT meta=0 nullable=0 is_null=0 */
###   @2='5002301999X' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
### DELETE FROM `test`.`tet3`
### WHERE
###   @1=5 /* INT meta=0 nullable=0 is_null=0 */
###   @2='0000000X' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
### DELETE FROM `test`.`tet3`
### WHERE
###   @1=6 /* INT meta=0 nullable=0 is_null=0 */
###   @2='oi80' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
### DELETE FROM `test`.`tet3`
### WHERE
###   @1=7 /* INT meta=0 nullable=0 is_null=0 */
###   @2='887' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
### DELETE FROM `test`.`tet3`
### WHERE
###   @1=8 /* INT meta=0 nullable=0 is_null=0 */
###   @2='887' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
### DELETE FROM `test`.`tet3`
### WHERE
###   @1=10 /* INT meta=0 nullable=0 is_null=0 */
###   @2='jju' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
# at 3640
#150426 23:17:36 server id 199  end_log_pos 3671 CRC32 0xb946f7f5       Xid = 164
COMMIT/*!*/;


[root@localhost ~]# cat delete.txt | sed -n '/###/p' | sed 's/### //g;s/\/\*.*/,/g;s/DELETE FROM/INSERT INTO/g;s/WHERE/SELECT/g;' |sed -r 's/(@2.*),/\1;/g' | sed 's/@[1-9]=//g' >insert.sql
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# more insert.sql
INSERT INTO `test`.`tet3`
SELECT
  4 ,
  '5002301999X' ;
INSERT INTO `test`.`tet3`
SELECT
  5 ,
  '0000000X' ;
INSERT INTO `test`.`tet3`
SELECT
  6 ,
  'oi80' ;
INSERT INTO `test`.`tet3`
SELECT
  7 ,
  '887' ;
INSERT INTO `test`.`tet3`
SELECT
  8 ,
  '887' ;
INSERT INTO `test`.`tet3`
SELECT
  10 ,
  'jju' ;
以上就是我們需要的回滾sql了...執行就行了..




命令解釋:
mysqlbinlog --no-defaults --base64-output=decode-rows -v -v db-bin.000016| sed -n '/### DELETE FROM `test`.`tet3`/,/COMMIT/p'> /root/delete.txt
mysqlbinlog --no-defaults --base64-output=decode-rows -v -v db-bin.000016 
這屬于mysqlbinlog命令參數...
--no-defaults  阻止mysqlbinlog工具從任何配置文件讀取參數(保證密碼安全)
--base64-output=decode-rows  顯示出row模式帶來的sql變更
-v -v  采用二進制日志文件方式查看
sed -n '/### DELETE FROM `test`.`tet3`/,/COMMIT/p'
打印從'### DELETE FROm `test`.`tet3`'開始到'COMMIT'結束的內容...






cat delete.txt | sed -n '/###/p' | sed 's/### //g;s/\/\*.*/,/g;s/DELETE FROM/INSERT INTO/g;s/WHERE/SELECT/g;' |sed -r 's/(@2.*),/\1;/g' | sed 's/@[1-9]=//g' >insert.sql


sed -n '/###/p'
打印'###'開頭的行
sed 's/### //g;s/\/\*.*/,/g;s/DELETE FROM/INSERT INTO/g;s/WHERE/SELECT/g;'
分開解讀: s/### //g;s/\/\*.*/,/g;  這部分是把'### ' 和/*..*/去除掉;
         s/DELETE FROM/INSERT INTO/g;   這部分是吧delete from 換成insert into;
         s/WHERE/SELECT/g;  這部分是吧where換成select;
|sed -r 's/(@2.*),/\1;/g'
-r是正則表達式,意思是在@2開頭的一行末尾加一個分號.
sed 's/@[1-9]=//g'
這個就簡單了..就是將@1-@9的去除.當然本例中只有@1和@2.

以上是“mysql中delete誤刪除如何利用binlog回滾”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

东兰县| 沈丘县| 隆子县| 灌南县| 淅川县| 大洼县| 顺义区| 贞丰县| 二连浩特市| 内乡县| 三原县| 慈利县| 石嘴山市| 左贡县| 大丰市| 河北区| 宁化县| 民乐县| 舟曲县| 介休市| 崇义县| 马尔康县| 西城区| 乌拉特后旗| 永福县| 贵州省| 小金县| 饶平县| 腾冲县| 越西县| 海盐县| 资源县| 南昌县| 亳州市| 宜兰县| 徐闻县| 襄樊市| 汾阳市| 奎屯市| 濉溪县| 吉木乃县|