誤操作恢復記錄(如何掛在其他硬碟的lvm捲)生產環境 centos7 誤操作過程執行mv * /mysql_back命令,因為要講mysql自動備份的資料庫文件挪到對應文件夾下。但是執行該命令時所在路徑為/ 根目錄,導致將系統所有文件都挪到/mysqlbak 文件夾下,系統基本崩潰,除了bash的內... ...
誤操作恢復記錄(如何掛在其他硬碟的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/*