成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

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

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

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





事件背景


開發(fā)反饋誤刪除了部分業(yè)務(wù)數(shù)據(jù),需要恢復(fù)數(shù)據(jù)。 
這里采用binlog2sql工具進行數(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ù)庫開啟binlog。
因為數(shù)據(jù)庫server端服務(wù)器沒有root權(quán)限,為了方便安裝, 所以在網(wǎng)絡(luò)打通且有root權(quán)限的測試服務(wù)器上安裝工具恢復(fù)數(shù)據(jù)。





下載及安裝



1. 安裝包下載

由于環(huán)境無法連接互聯(lián)網(wǎng),所有采用下載安裝包的方式進行安裝。
  • 下載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
[email protected]:[/root/soft]python3 --version
Python 3.8.2
[email protected]:[/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
  • 日志過濾參數(shù)
    --start-file --stop-file --start-position --stop-position --start-datetime --stop-datetime
  • 對象過濾參數(shù)
    -d DATABASES2 DATABASES2 -t TABLE1 TABLE2
  • 類型過濾參數(shù)
    --only-dml --sql-type INSERT UPDATE DELETE




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



同開發(fā)確認誤操作的時間以及表名。根據(jù)binlog的時間確定采用哪個binlog進行數(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




本文作者:吳 昊(上海新炬王翦團隊)

本文來源:“IT那活兒”公眾號

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

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/129441.html

相關(guān)文章

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

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

    keke 評論0 收藏0

發(fā)表評論

0條評論

IT那活兒

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<