Mysql

可以通過刪除目錄來刪除 MariaDB (MySQL) InnoDB 數據庫嗎?

  • March 6, 2018

我正在尋找啟動新從屬伺服器的最快方法,它只需要我們的一些數據庫。基本計劃是:

  • 停止現有的從站
  • 拍攝 LVM 快照並重新啟動從屬設備(以便它可以返回處理流量)
  • 掛載快照
  • 刪除快照中不需要的數據庫目錄
  • 製作整個mysql目錄的tarball,不包括我不想轉移的數據庫目錄,並轉移到新的slave
  • 換出新從站上的 mysql 目錄。在那裡啟動 mysql 並更新使用者表和授權,然後刷新權限。
  • 更新主伺服器的權限以允許從新的從 IP 複製使用者。

我不確定只是刪除數據庫目錄是否可行,或者我是否會遇到元數據不匹配的問題。如有必要,我可以將快照掛載到實際的 mysql 位置,並啟動 CLI 會話​​以正確方式刪除數據庫,但這會更費力並且需要更長的時間,而且會在源伺服器上增加更多負載,所以如果我可以刪除理想的目錄。也許在新的從屬伺服器上刪除目錄並清理適當的 information_schema 表?

所有這一切的目的是,我計劃能夠在出現意外流量高峰時快速做出反應,因此優先級是啟動新從屬的速度,以及最大限度地減少現有從屬的增加負載和停機時間,因為在這種情況下它將處於高負載狀態。

這不是一個好主意。InnoDB 保存有關表的資訊,以及駐留在 ibdata1 中的字典中的欄位。如果您刪除數據庫目錄,則客戶端將看不到數據庫。但是會有副作用。例如,您將無法創建具有相同名稱的表。

引用自:https://serverfault.com/questions/900168