資料庫 從刪除到修復

2021-07-31 14:57:26 字數 2036 閱讀 4535

前言:

資料庫 刪除後,恢復流程記錄:

首先:進入 -> #cd /etc/my.cnf 檔案裡 檢視 是否新增了 「log-bin=mysql-bin」

log

-bin

=mysql-bin

//查詢這句,很重要。沒有這句,就不能用binlog 來修復了

資料庫恢復流程:1.開始之前 先備份檔案:

mysql/data/

這個備份到其他目錄下

cp /mysql/data /home       // 拷貝 /mysql/目錄下的 data 檔案 到/home目錄下
(記住每次操作都需要備份一下,免得出錯後。沒地方哭~ ╮(╯▽╰)╭)

如果是在外部拷貝: /alidata/server/mysql 下

cp data /home/data123   // cp 是拷貝命令,後面需拷貝檔案, 最後面引數是路徑 "data123" 重新命名檔案
最好是重新命名,不要跟之前備份的檔案衝突

2.binlog 日誌恢復法:

nysqlbinlog mysql-bin.000002 > tmp.sql  // 把 mysql-bin.000002 這個日誌 匯出到tmp.sql 檔案
drop

database

`***x` // 直接刪除這句

我這裡是這樣顯示的:

sz + 檔名
mysql backup // 把操作匯入資料庫 -- 我試了,在我這裡沒有備份,用不了backup
4.然後我是嘗試這樣做的:

在本地開啟 tmp.sql 檔案 (選擇合適的編輯器,我是用vs code 開啟的)

找到關於建立你已刪除資料庫的地方(drop database ***), 先把這句給刪除了。

然後是在最上面找到你開始建立這個資料庫的地方(create database ***), (從這裡開始)

再找到 你建立另乙個資料庫的地方(create database ***123),(到這裡結束,不需要這一行)

// 從這裡開始

create database *** // 你刪除的資料庫

......

......

// 到這裡結束

create database ***123 // 另乙個資料庫 建立的位置

複製這兩行資料之間的這段**,並儲存到另乙個檔案(可以直接儲存為 你的資料庫名.txt,或者***.sql檔案)

然後是,進入到資料庫,再匯入你儲存的這個檔案 就可以了。就相當於重新建立了乙個資料庫(誤刪的資料庫)

(這過程可能會有出錯的地方導致恢復的資料不完全,但起碼恢復了部分資料了)

我是在phpmyadmin 裡匯入資料庫檔案的,可以修復部分檔案.(百分百修復回來 一般是很難的, 將就一下吧!)

更新:

恢復的資料少了乙個表,導致**連線不了資料庫,打不開**。然後我參考 從binlog 匯出的資料檔案,找到相應的 建立該錶名的地方,重新建乙個表, 可能還需要重新匯入資料,參考建立該表面下面的**,找到 insert into ***(缺少的表名) ,一步步重新新增 資料即可。

後記:

如果可以拿到阿里雲服務賬號的話,可以直接從雲服務上嘗試能不能修復(一般來說雲服務上是有備份的),當然如果你平時在伺服器上有做資料備份的話,就更好了,直接從從備份資料上修復就好了。(⊙o⊙)~

備註:資料庫裡的東西,操作千萬要謹慎!!!在做各種操作之前,最好做個備份!!!

參考資料:

(這個比較有用,對我而言~)

資料庫修復

sql2008資料庫 檢測資料庫 dbcc checkdb 單使用者和多使用者模式切換 alter database dbname資料庫 set single user 單使用者 alter database dbname資料庫 set multi user 多使用者 修復dbcc checktab...

SQL資料庫修復 資料庫置疑修復

sql資料庫修復的三大核心技術 1 磁碟陣列分析重組技術 2 資料庫恢復與修復技術 3 scsi盤物理故障開盤技術。至今已經成功恢復數百台伺服器的sql資料庫,使用者覆蓋全國。導致sql資料庫丟失的原因 1 各種原因 誤刪除 誤格式化 斷電等造成的ms sql server資料庫檔案破壞。2 ms ...

從資料庫匯出資料到word excel txt

獲得資料集dataset 用於除錯 dataset 把資料檔案匯入到.xls檔案 public void exporttoexcel dataset ds catch 讓生成的excel檔案可見 myexcel.visible true catch exception e else 把資料匯入到.d...