mysql數(shù)據(jù)庫navicat數(shù)據(jù)同步時誤刪除部分?jǐn)?shù)據(jù)的解決
背景介紹
聽說過刪庫跑路被抓的,今天就碰到升級服務(wù)器(Alibaba Cloud Linux ----> Ubuntu)原因是taos3.2不支持Alibaba Cloud Linux系統(tǒng)!
為了保險起見把現(xiàn)在這個數(shù)據(jù)庫里的數(shù)據(jù)都備份一份,為了不耽誤同事們繼續(xù)開發(fā)所以需要將需要升級的數(shù)據(jù)庫在另一個服義務(wù)器中再跑一份出來!
有navicat幫忙數(shù)據(jù)遷移很方便!
但是犯錯就在圖方便上了!
因為遷移的這兩個數(shù)據(jù)庫中有幾個名字相同的庫!然后再數(shù)據(jù)同步時直接把原表中的數(shù)據(jù)刪除了!
我的天呢尤其是 bas_file表,這里面存的都是minio里的文件!
任務(wù)需求
現(xiàn)在無論如何都要把數(shù)據(jù)恢復(fù)回來!要不然工作不保!
有好多方法:
一.數(shù)據(jù)恢復(fù)備份(這個我我嘗試了,需要實現(xiàn)開啟備份)
就是這個東西!誰沒事會保存這個?。ㄎ揖捅4媪耍?/p>
這個恢復(fù)很簡單,我要講的不是這個簡單的!
二.利用bin_log日志來完成
查看有沒有開啟bin_log
現(xiàn)在服務(wù)器中進(jìn)入到mysql服務(wù)
mysql -u root -p
show variables like 'log_%'
可以看得到 log_bin是開啟狀態(tài)(其實不用太過關(guān)心,一般大家都是開啟的,尤其是安裝liunx版本的mysql時,如果真的沒開 再去看其他博客吧)
開啟了bin_log日之后,就會有binlog文件生成咱們現(xiàn)在過去找
show master logs;
可以看得到文件名與大小都被打印出來,現(xiàn)在就去找這兩個文件(先退出mysql模式:exit)
find / -name binlog.000004
找到了他的位置
找到他們了
然后根據(jù)時間確定 是哪binlog
可以看得到000004后綴的這個時4月28 11:55 到 4月29 9:56,我是4月28 下午1:30左右刪除的數(shù)據(jù),所以咱們把重點放在binlog.000004上就行了。
這個文件將會救回你的數(shù)據(jù)
復(fù)制一份到你想要的位置 cp binlog.000004 /you/ (位置自己選)
然后 cd /you/ (別忘記換成自己的路徑)
使用
mysqlbinlog --no-defaults --base64-output=DECODE-ROWS -v -d crmeb /mysqldb/binlog.000004 > data.sql
上面這個語句多半你會遇到問題!
大概報錯是mysqlbinlog 找不到
在你這個目錄不用動 使用軟連接鏈接過來一個就行了
ln -s /www/server/mysql/bin/mysqlbinlog mysqlbinlog
能用就行了。
先用這個生成一個事件日志文件
日志大概樣子:
根據(jù)咱們要找的時間咱們找到他對一個的開始id和結(jié)束id
我大概是1:30左右刪除的 這里我就選擇這個
然后使用下面這個語句生成時間段內(nèi)對數(shù)據(jù)進(jìn)行的操作語句
mysqlbinlog --no-defaults --base64-output=DECODE-ROWS --start-position=3367047 --stop-position=3747440 -v binlog.000004 > insertdata.sql
會生成一個 insertdata.sql文件大概樣子如下:
可以看得到,每步的操作都會被打印出來
往下翻找到咱們誤刪除的地方:
這就得到了當(dāng)時刪除數(shù)據(jù)的詳細(xì)信息,根據(jù)這些信息就看別寫insert語句再插入進(jìn)去就行了。
總結(jié)
操作數(shù)據(jù)庫時 要有留備份的習(xí)慣!
找到binlog.000004文件后可以復(fù)制到本地,用本地的mysqlbinlog操作效果是一樣的。
最后的 delete轉(zhuǎn)insert可以借助excel實現(xiàn),這里就不贅述了
到此這篇關(guān)于mysql數(shù)據(jù)庫navicat數(shù)據(jù)同步時誤刪除部分?jǐn)?shù)據(jù)的解決的文章就介紹到這了,更多相關(guān)mysql navicat 誤刪數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL實現(xiàn)列轉(zhuǎn)行與行轉(zhuǎn)列的操作代碼
在處理數(shù)據(jù)時,我們常常會遇到需要將表中的列(字段)轉(zhuǎn)換為行,或?qū)⑿修D(zhuǎn)換為列的情況,這種操作通常被稱為“列轉(zhuǎn)行”(Pivoting)和“行轉(zhuǎn)列”(Unpivoting),本文將向您介紹如何使用 CASE 語句、聚合函數(shù)以及 GROUP BY 子句來完成列轉(zhuǎn)行和行轉(zhuǎn)列的操作2024-09-09MySQL8.0移除傳統(tǒng)的.frm文件原因及解讀
MySQL 8.0移除傳統(tǒng)的.frm文件,采用基于InnoDB的事務(wù)型數(shù)據(jù)字典,主要解決了元數(shù)據(jù)不一致、性能優(yōu)化、架構(gòu)簡化、增強(qiáng)功能支持、兼容性與升級問題,這一變革提高了數(shù)據(jù)庫的可靠性和性能,為未來的高級功能奠定了基礎(chǔ)2025-03-03詳解mysql 獲取某個時間段每一天、每一個小時的統(tǒng)計數(shù)據(jù)
這篇文章主要介紹了mysql 獲取某個時間段每一天、每一個小時的統(tǒng)計數(shù)據(jù),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04clickhouse復(fù)雜時間格式的轉(zhuǎn)換方式
這篇文章主要介紹了clickhouse復(fù)雜時間格式的轉(zhuǎn)換方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12