国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

MySQL數據誤刪除恢復

IT那活兒 / 613人閱讀
MySQL數據誤刪除恢復

點擊上方“IT那活兒”公眾號,關注后了解更多內容,不管IT什么活兒,干就完了!!!





事件背景


開發反饋誤刪除了部分業務數據,需要恢復數據。 
這里采用binlog2sql工具進行數據回滾。
環境:
CentOS Linux release 7.4.1708 (Core)
mysql  Ver 8.0.21 for Linux on x86_64 (MySQL Community Server - GPL)
數據庫開啟binlog。
因為數據庫server端服務器沒有root權限,為了方便安裝, 所以在網絡打通且有root權限的測試服務器上安裝工具恢復數據。





下載及安裝



1. 安裝包下載

由于環境無法連接互聯網,所有采用下載安裝包的方式進行安裝。
  • 下載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 ./
常用參數:
  • 可選參數
    --stop-never
    -K, --no-primary-key
    -B, --flashback
    --back-interval
  • 連接參數
    -h -u -p -P
  • 日志過濾參數
    --start-file --stop-file --start-position --stop-position --start-datetime --stop-datetime
  • 對象過濾參數
    -d DATABASES2 DATABASES2 -t TABLE1 TABLE2
  • 類型過濾參數
    --only-dml --sql-type INSERT UPDATE DELETE




數據恢復



同開發確認誤操作的時間以及表名。根據binlog的時間確定采用哪個binlog進行數據恢復。
執行命令:可以查看恢復前執行的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
執行命令:生成回滾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
最終執行回滾SQL重新插入數據即成功恢復數據。
mysql>source insert.txt



END




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

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

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/129441.html

相關文章

  • Web開發經驗(1)防止MySQL數據更新/刪除

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

    keke 評論0 收藏0

發表評論

0條評論

IT那活兒

|高級講師

TA的文章

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