1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時(shí)間:8:30-17:00
      你可能遇到了下面的問(wèn)題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
      mysql閃回工具binlog2sql的安裝使用過(guò)程是怎樣的

      這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)MySQL閃回工具binlog2sql的安裝使用過(guò)程是怎樣的,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

      成都創(chuàng)新互聯(lián)公司長(zhǎng)期為近千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為七星關(guān)區(qū)企業(yè)提供專業(yè)的網(wǎng)站制作、成都做網(wǎng)站,七星關(guān)區(qū)網(wǎng)站改版等技術(shù)服務(wù)。擁有10多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。

      軟件包下載地址:鏈接:https://pan.baidu.com/s/15dDeGufVWOgVrfATGWBzaA 密碼:gnz8

      DBA或開(kāi)發(fā)人員,有時(shí)會(huì)誤刪或者誤更新數(shù)據(jù),如果是線上環(huán)境會(huì)影響較大,這就需要能快速回滾;而MySQL閃回(flashback)利用binlog能直接進(jìn)行回滾,并且能快速恢復(fù)數(shù)據(jù)(MySQL閃回現(xiàn)在只支持DML語(yǔ)句進(jìn)行閃回)。

      利用binlog閃回需要的條件:

      Mysql參數(shù)設(shè)置:

      log_bin = /目錄/mysql-bin.log(開(kāi)啟)

      binlog_format = row

      binlog_row_image = full(默認(rèn)是full)

      工作原理主要是對(duì)于delete操作,從binlog取出delete信息,生成insert的回滾語(yǔ)句。對(duì)于insert操作,回滾SQL是delete。對(duì)于update操作,回滾sql應(yīng)該交換SET和WHERE的值。

      安裝:

      環(huán)境準(zhǔn)備安裝各種依賴的工具包列表

      將python換成python3.6版本 (python版本升級(jí)參考博客:https://blog.csdn.net/wwwdaan5com/article/details/78218277)

      python-pip ,

      PyMySQL ,

      python-mysql-replication,

      wheel argparse

      1、binlog2sql下載

      https://github.com/danfengcao/binlog2sql

      2、binlog2sql依賴包安裝

      (1)PyMySQL-0.8.0安裝

      https://pypi.python.org/pypi/PyMySQL/

      [root@node1 binlogsql]# tar -xzvf PyMySQL-0.8.0.tar.gz 

      [root@node1 binlogsql]# cd PyMySQL-0.8.0

      [root@node1 PyMySQL-0.8.0]# python setup.py install

      (2)wheel-0.31.0安裝

      https://pypi.python.org/pypi/wheel/

      [root@node1 binlogsql]# tar -xzvf wheel-0.31.0.tar.gz 

      [root@node1 binlogsql]# cd wheel-0.31.0

      [root@node1 wheel-0.31.0]# python setup.py install

      (3)python-mysql-replication安裝

      https://github.com/noplay/python-mysql-replication

      [root@node1 binlogsql]# unzip python-mysql-replication-master.zip 

      [root@node1 binlogsql]# cd python-mysql-replication-master

      [root@node1 python-mysql-replication-master]# python setup.py  install

      (4)可以通過(guò)pip安裝相應(yīng)的依賴包

      https://pypi.python.org/pypi/pip

      [root@node1 tools]# tar -xzvf pip-10.0.1.tar.gz 

      [root@node1 tools]# cd pip-10.0.1

      [root@node1 pip-10.0.1]# python setup.py install

      [root@node1 binlog2sql-master]# pip install  -r requirements.txt 

      可能會(huì)出錯(cuò)誤。

      FileNotFoundError: [Errno 2] No such file or directory: '/usr/local/lib/python3.6/site-packages/mysql_replication-0.18-py3.6.egg'

      依賴包版本問(wèn)題。

      執(zhí)行。。pip install mysql-replication

      再執(zhí)行 pip install  -r requirements.txt

      mysql閃回工具binlog2sql的安裝使用過(guò)程是怎樣的

      顯示都已安裝完成。

      實(shí)戰(zhàn)演練:

      1.查看測(cè)試數(shù)據(jù):

      MariaDB [test]> select * from t;

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

      | id | name         |

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

      |  1 | ga           |

      | 31 | ga           |

      | 38 | ga           |

      | 45 | ga           |

      | 52 | hg           |

      | 59 | hh           |

      | 61 | 規(guī)劃如果     |

      | 68 | 干點(diǎn)啥       |

      | 73 | ww           |

      | 80 | ww           |

      | 87 | gg           |

      | 94 | gg           |

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

      12 rows in set (0.00 sec)

      2.刪除部分?jǐn)?shù)據(jù):

      MariaDB [test]> delete from t where id > 50;

      Query OK, 8 rows affected (0.18 sec)

      MariaDB [test]> select * from t;

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

      | id | name |

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

      |  1 | ga   |

      | 31 | ga   |

      | 38 | ga   |

      | 45 | ga   |

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

      4 rows in set (0.00 sec)

      刪了8條記錄。

      3.查看master的日志位置。

      MariaDB [test]> show master status;

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

      | File             | Position  | Binlog_Do_DB | Binlog_Ignore_DB |

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

      | mysql-bin.000029 | 468829331 |              |                  |

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

      1 row in set (0.01 sec)

      4.根據(jù)誤操作的大概時(shí)間找出相應(yīng)的誤操作語(yǔ)句

      [root@localhost binlog2sql]# python binlog2sql.py -h272.168.1.201 -P3306 -uroot -p123456 -dtest -tt --start-file='mysql-bin.000029' --start-datetime='2018-05-10 11:00:00' --stop-datetime='2018-05-10 11:10:00' > a.sql

      [root@localhost binlog2sql]# cat a.sql

      DELETE FROM `test`.`t` WHERE `id`=52 AND `name`='hg' LIMIT 1; #start 468829113 end 468829304 time 2018-05-10 11:06:52

      DELETE FROM `test`.`t` WHERE `id`=59 AND `name`='hh' LIMIT 1; #start 468829113 end 468829304 time 2018-05-10 11:06:52

      DELETE FROM `test`.`t` WHERE `id`=61 AND `name`='規(guī)劃如果' LIMIT 1; #start 468829113 end 468829304 time 2018-05-10 11:06:52

      DELETE FROM `test`.`t` WHERE `id`=68 AND `name`='干點(diǎn)啥' LIMIT 1; #start 468829113 end 468829304 time 2018-05-10 11:06:52

      DELETE FROM `test`.`t` WHERE `id`=73 AND `name`='ww' LIMIT 1; #start 468829113 end 468829304 time 2018-05-10 11:06:52

      DELETE FROM `test`.`t` WHERE `id`=80 AND `name`='ww' LIMIT 1; #start 468829113 end 468829304 time 2018-05-10 11:06:52

      DELETE FROM `test`.`t` WHERE `id`=87 AND `name`='gg' LIMIT 1; #start 468829113 end 468829304 time 2018-05-10 11:06:52

      DELETE FROM `test`.`t` WHERE `id`=94 AND `name`='gg' LIMIT 1; #start 468829113 end 468829304 time 2018-05-10 11:06:52

      從a.sql中可以查到這個(gè)事物在binlog中的start和end(binlog2sql對(duì)于同一個(gè)事務(wù)會(huì)輸出同樣的start position)

      5.根據(jù)上一步中的位置點(diǎn)生成相應(yīng)的insert恢復(fù)語(yǔ)句

      使用 -B 選項(xiàng)生成回滾sql,檢查回滾sql是否正確。(注:真實(shí)場(chǎng)景下,生成的回滾SQL經(jīng)常會(huì)需要進(jìn)一步篩選,查看里面是否有別的表的dml語(yǔ)句以及本表的非delete操作的語(yǔ)句,結(jié)合grep、編輯器等)

      [root@localhost binlog2sql]# python binlog2sql.py -h272.168.1.201 -P3306 -uroot -p123456 -dtest -tt --start-file='mysql-bin.000029' --start-position=468829113 --stop-position=468829304 -B > b.sql

      [root@localhost binlog2sql]# cat b.sql

      INSERT INTO `test`.`t`(`id`, `name`) VALUES (94, 'gg'); #start 468829113 end 468829304 time 2018-05-10 11:06:52

      INSERT INTO `test`.`t`(`id`, `name`) VALUES (87, 'gg'); #start 468829113 end 468829304 time 2018-05-10 11:06:52

      INSERT INTO `test`.`t`(`id`, `name`) VALUES (80, 'ww'); #start 468829113 end 468829304 time 2018-05-10 11:06:52

      INSERT INTO `test`.`t`(`id`, `name`) VALUES (73, 'ww'); #start 468829113 end 468829304 time 2018-05-10 11:06:52

      INSERT INTO `test`.`t`(`id`, `name`) VALUES (68, '干點(diǎn)啥'); #start 468829113 end 468829304 time 2018-05-10 11:06:52

      INSERT INTO `test`.`t`(`id`, `name`) VALUES (61, '規(guī)劃如果'); #start 468829113 end 468829304 time 2018-05-10 11:06:52

      INSERT INTO `test`.`t`(`id`, `name`) VALUES (59, 'hh'); #start 468829113 end 468829304 time 2018-05-10 11:06:52

      INSERT INTO `test`.`t`(`id`, `name`) VALUES (52, 'hg'); #start 468829113 end 468829304 time 2018-05-10 11:06:52

      和刪除語(yǔ)句進(jìn)行對(duì)比  剛好8條。

      6、與開(kāi)發(fā)確認(rèn)回滾sql沒(méi)問(wèn)題后,執(zhí)行回滾語(yǔ)句并確認(rèn)回滾成功。

      MariaDB [test]> source /home/binlog2sql-master/binlog2sql/b.sql

      Query OK, 1 row affected (0.06 sec)

      Query OK, 1 row affected (0.06 sec)

      Query OK, 1 row affected (0.09 sec)

      Query OK, 1 row affected (0.05 sec)

      Query OK, 1 row affected (0.05 sec)

      Query OK, 1 row affected (0.05 sec)

      Query OK, 1 row affected (0.05 sec)

      Query OK, 1 row affected (0.05 sec)

      MariaDB [test]> select * from t;

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

      | id | name         |

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

      |  1 | ga           |

      | 31 | ga           |

      | 38 | ga           |

      | 45 | ga           |

      | 52 | hg           |

      | 59 | hh           |

      | 61 | 規(guī)劃如果     |

      | 68 | 干點(diǎn)啥       |

      | 73 | ww           |

      | 80 | ww           |

      | 87 | gg           |

      | 94 | gg           |

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

      12 rows in set (0.00 sec)

      7。

      (1)閃回的關(guān)鍵是快速篩選出真正需要回滾的SQL。

      (2)先根據(jù)庫(kù)、表、時(shí)間做一次過(guò)濾,再根據(jù)位置做更準(zhǔn)確的過(guò)濾。

      (3)由于數(shù)據(jù)一直在寫(xiě)入,要確保回滾sql中不包含其他數(shù)據(jù)。可根據(jù)是否是同一事務(wù)、誤操作行數(shù)、字段值的特征等等來(lái)幫助判斷。

      (4)執(zhí)行回滾sql時(shí)如有報(bào)錯(cuò),需要查實(shí)具體原因,一般是因?yàn)閷?duì)應(yīng)的數(shù)據(jù)已發(fā)生變化。由于是嚴(yán)格的行模式,只要有唯一鍵(包括主鍵)存在,就只會(huì)報(bào)某條數(shù)據(jù)不存在的錯(cuò),不必?fù)?dān)心會(huì)更新不該操作的數(shù)據(jù)。

      (5)如果待回滾的表與其他表有關(guān)聯(lián),要與開(kāi)發(fā)說(shuō)明回滾和不回滾各自的副作用,再確定方案。

      (6)最重要的兩點(diǎn):篩選出正確SQL!與開(kāi)發(fā)溝通清楚!

      上述就是小編為大家分享的mysql閃回工具binlog2sql的安裝使用過(guò)程是怎樣的了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


      當(dāng)前題目:mysql閃回工具binlog2sql的安裝使用過(guò)程是怎樣的
      路徑分享:http://www.ef60e0e.cn/article/jheegi.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        横峰县| 金沙县| 长宁县| 黄梅县| 阜南县| 常山县| 娄烦县| 佛坪县| 漯河市| 蓬莱市| 贵港市| 眉山市| 微博| 胶州市| 九台市| 江安县| 卢湾区| 乌鲁木齐县| 依安县| 翼城县| 通州市| 营山县| 汉中市| 谷城县| 两当县| 宜君县| 涞水县| 读书| 南宁市| 竹山县| 曲松县| 阳东县| 搜索| 泉州市| 年辖:市辖区| 鄂伦春自治旗| 鹰潭市| 日照市| 盐津县| 中宁县| 云梦县|