3月 11, 2025

Google Cloud 災難復原

最後處理方式:手動重建 instance

前幾天突然想到 GCP 上跑的機台很舊了(Debian9, 2018),嘗試升級 Debian 10 後就炸了!無法遠端連線(SSH)而且資料庫主程式損毀無法動啟,幸好有留下資料庫檔(.frm/.ibd)。

1. 先到「GCP Compute Engine / 磁碟」複製一份原本的磁碟檔,避免破壞既有資料

2. 建立新的執行個體,主系統選 Debian12 並且額外連接現有磁碟(上述複製碟)

3. 開機掛載分割區,安裝與置換 MariaDB 資料夾
# 新機台安裝資料庫系統並嘗試匯出資料
# apt-get install mariadb-server
# lsblk
# mount /dev/sdb1 /mnt/rescue
# /etc/init.d/mariadb stop
# mv /var/lib/mysql /var/lib/_mysql
# cp -R /mnt/rescue/var/lib/mysql /var/lib/ -R
# chown -R mysql:mysql mysql 
# /etc/init.d/mariadb start
#
# 匯出資料庫檔案
# mysqldump -u db_user -p --default-character-set=utf8 mydb > mydb_backup.sql
4. 維持使用 Debian9 系統 --
「Compute Engine / 映像檔」顯示已淘汰的映像檔,可選擇過期映像檔(debian-9-stretch-v20220621)並建立執行個體

5. 最初掛載 Debian12 到原本 instance 時顯示錯誤訊息 UEFI setting must be the same for the instance and the boot disk. 所以最後只能停留在舊的 Debian9 映像檔;使用 GCP 好處就是 instance 與 disk 是分開的,可以隨意配接取出資料。

沒有留言:

張貼留言