亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

MySQL數(shù)據(jù)誤刪除恢復(fù)

IT那活兒 / 687人閱讀
MySQL數(shù)據(jù)誤刪除恢復(fù)

點(diǎn)擊上方“IT那活兒”公眾號(hào),關(guān)注后了解更多內(nèi)容,不管IT什么活兒,干就完了!??!





事件背景


開(kāi)發(fā)反饋誤刪除了部分業(yè)務(wù)數(shù)據(jù),需要恢復(fù)數(shù)據(jù)。 
這里采用binlog2sql工具進(jìn)行數(shù)據(jù)回滾。
環(huán)境:
CentOS Linux release 7.4.1708 (Core)
mysql  Ver 8.0.21 for Linux on x86_64 (MySQL Community Server - GPL)
數(shù)據(jù)庫(kù)開(kāi)啟binlog。
因?yàn)閿?shù)據(jù)庫(kù)server端服務(wù)器沒(méi)有root權(quán)限,為了方便安裝, 所以在網(wǎng)絡(luò)打通且有root權(quán)限的測(cè)試服務(wù)器上安裝工具恢復(fù)數(shù)據(jù)。





下載及安裝



1. 安裝包下載

由于環(huán)境無(wú)法連接互聯(lián)網(wǎng),所有采用下載安裝包的方式進(jìn)行安裝。
  • 下載Python-3.8.2
    https://www.python.org/ftp/python/3.8.2/Python-3.8.2.tar.xz
  • 下載Binlog2sql

     https://codeload.github.com/danfengcao/binlog2sql/zip/master

  • 下載PyMySQL-0.9.3

    https://codeload.github.com/PyMySQL/PyMySQL/tar.gz/v0.9.3

  • 下載mysql-replication-0.21
    https://files.pythonhosted.org/packages/e3/54/8c496e300d610299bf168e2068dc10a64b66b299cbe596a27aac5d5b3e7b/mysql-replication-0.21.tar.gz

2. pip安裝

#yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc libffi-devel
#tar -xvf Python-3.8.2.tar.xz
#cd Python-3.8.2
./configure --prefix=/usr --with-ensurepip --with-system-ffi
make && make install
root@localhost.localdomain:[/root/soft]python3 --version
Python 3.8.2
root@localhost.localdomain:[/root/soft]pip3 --version
pip 19.2.3 from /usr/lib/python3.8/site-packages/pip (python 3.8)

3. PyMySQL&mysql-replication安裝

#pip3 install PyMySQL-0.9.3.tar.gz
#pip3 install mysql-replication-0.21.tar.gz
root@localhost.localdomain:[/root/soft]pip3 list
Package Version
----------------- -------
mysql-replication 0.21
pip 19.2.3
PyMySQL 0.9.3
setuptools 41.2.0

4. 解壓binlog2sql

#unzip binlog2sql-master.zip
#mv binlog2sql-master/binlog2sql ./
常用參數(shù):
  • 可選參數(shù)
    --stop-never
    -K, --no-primary-key
    -B, --flashback
    --back-interval
  • 連接參數(shù)
    -h -u -p -P
  • 日志過(guò)濾參數(shù)
    --start-file --stop-file --start-position --stop-position --start-datetime --stop-datetime
  • 對(duì)象過(guò)濾參數(shù)
    -d DATABASES2 DATABASES2 -t TABLE1 TABLE2
  • 類(lèi)型過(guò)濾參數(shù)
    --only-dml --sql-type INSERT UPDATE DELETE




數(shù)據(jù)恢復(fù)



同開(kāi)發(fā)確認(rèn)誤操作的時(shí)間以及表名。根據(jù)binlog的時(shí)間確定采用哪個(gè)binlog進(jìn)行數(shù)據(jù)恢復(fù)。
執(zhí)行命令:可以查看恢復(fù)前執(zhí)行的SQL。
python binlog2sql/binlog2sql.py -utestuser -pxxx-dtestdb -t test --start-file=mysql-bin.000013 --start-datetime=2022-
03-01 14:30:00  --stop-datetime=2022-03-01 15:30:00  --only-dml –sql-type= DELETE >delete.txt
執(zhí)行命令:生成回滾SQL。
python binlog2sql/binlog2sql.py  -B -utestuser -pxxx-dtestdb -t test --start-file=mysql-bin.000013 --start-
datetime=2022-03-01 14:30:00  --stop-datetime=2022-03-01 15:30:00  --only-dml –sql-type= DELETE >insert.txt
最終執(zhí)行回滾SQL重新插入數(shù)據(jù)即成功恢復(fù)數(shù)據(jù)。
mysql>source insert.txt



END




本文作者:吳 昊(上海新炬王翦團(tuán)隊(duì))

本文來(lái)源:“IT那活兒”公眾號(hào)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/129441.html

相關(guān)文章

  • Web開(kāi)發(fā)經(jīng)驗(yàn)(1)防止MySQL數(shù)據(jù)庫(kù)更新/刪除

    摘要:引言數(shù)據(jù)庫(kù)一直是個(gè)大問(wèn)題。那么如果做到防止數(shù)據(jù)庫(kù)誤刪或者是誤更新,可以參考下以下幾點(diǎn),下面總結(jié)的都是業(yè)務(wù)層面,和一些配置層面。軟刪除的好處也很明顯,如果是業(yè)務(wù)發(fā)現(xiàn)誤刪,還能有回旋的余地。賬號(hào)在非必須情況下,盡量不要參與日常運(yùn)維,維護(hù)的工作。 引言 ??數(shù)據(jù)庫(kù)一直是個(gè)大問(wèn)題。如果沒(méi)有做數(shù)據(jù)備份,或者是開(kāi)啟binlog,那真得就是沒(méi)了就是沒(méi)了,全表更新就是真的回不去了,就算開(kāi)啟了備份,也很...

    keke 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<