2021-05-12 14:32:11
生產誤操作mv根分割區恢復資料過程
誤操作恢復記錄(如何掛在其他硬碟的lvm捲)
生產環境 CentOS7
誤操作過程
執行mv * /mysql_back命令,因為要講mysql自動備份的資料庫檔案挪到對應資料夾下。但是執行該命令時所在路徑為/ 根目錄,導致將系統所有檔案都挪到/mysqlbak 資料夾下,系統基本崩潰,除了bash的內建命令cd還能去ls 等/usr/bin系統命令都已經找不到。
恢復思路
- 硬碟上的虛擬機器系統重新啟動已經無法啟動
- 硬碟上的資料只是被mv到/mysqlbak 資料夾下,應該還沒有被刪除
- 需要通過媒介(光碟或者u盤)中的linux系統啟動(非救援模式,救援也無法重新整理整個作業系統的檔案結構了,還有可能導致資料丟失)
- 將硬碟掛在到光碟啟動的微型Linux系統上,通過網路拷貝出去
設定光碟內的linux環境
-
通過光碟啟動,選擇安裝Centos7
-
選擇語言後,進入安裝設定介面,不要設定硬碟,只設定網路(方便通過網路將資料拷出)
設定ip地址確保能夠存取到接收資料的機器
檢查舊硬碟上的檔案系統,預設都是LVM
按下Ctrl+Alt+Win+ F2切換到安裝光碟的Linux的後台終端介面
通過檢視/dev /dev/mapper 及mount命令可以看到,光碟的linux系統並沒有自動將硬碟的lvm識別,並載入,/dev/mapper 只有live-開頭的光碟的lvm邏輯卷。
通過pvscan lvscan vgscan 命令可以看到實際上能夠檢索出lvm卷組,但是當前狀態是inactive,需要啟用 參考文章:Moving a volume group to another system
上圖不清楚貼一個 虛擬機器模擬環境截圖
執行命令啟用lvm卷組,並通過lvscan檢視邏輯卷已經active,檢視/dev/多了一個centos目錄,並且舊硬碟的邏輯卷root也出現了
生產上的截圖可以看出出現在了/dev/mapper 下
掛載舊硬碟的lvm卷組
帶上 -o ro 引數,已唯讀模式存取硬碟資料,避免損失資料
檢查舊資料完整性,遷移舊資料
可以看到mv命令把大部分資料都移到/mysqlbak 目錄下,還有一部分因為許可權或者關機的原因沒有移動完,因此有可能資料檔案沒有丟失,但會有損壞
檢查需要拷貝的資料檔案,通過scp或者sftp等方式轉移到新的環境,並匯入新機器,啟動測試資料是否完整。
遷移舊的mysql資料庫檔案到新的機器上去
參考MySQL資料庫遷移
/var/lib/mysql 下所有檔案(除了ib_logfile* 和 *.err)到新的機器下的/var/lib/mysql/資料夾下
注意修改許可權 否則啟動時會失敗
chown -R mysql:mysql /var/lib/mysql/*
本文永久更新連結地址:http://www.linuxidc.com/Linux/2016-06/132492.htm
相關文章