Mysql

僅使用 ibdata1 文件恢復數據庫

  • April 26, 2021

我需要分析客戶的數據,並且針對該要求,客戶只為我們提供了大小約為 150MB 的 ibdata1 文件。

到目前為止,我不知道表結構和表數。經過一些研究,我發現我需要 .frm 文件才能重新創建表。

我有以下問題:

  1. 有沒有辦法只用 ibdata1 文件恢復數據庫?
  2. 除了 .frm 文件和 ibdata1 文件之外,我還需要任何其他文件來恢復數據庫嗎?
  3. 假設我可以只使用 ibdata1 文件恢復數據庫,或者我以後獲得 .frm 文件,我是否需要安裝與客戶端 MySQL 版本匹配的版本?

謝謝!

如果您的客戶無法為您提供適當的數據庫轉儲,那麼他們要求您執行的任何任務都將花費更長的時間和成本,超出任何人都應該願意容忍的程度。

有沒有辦法只用 ibdata1 文件恢復數據庫?

⇢ 是的,但並非沒有大量工作。那些不想從訴訟中拯救價值數十億美元的公司的人永遠不必這樣做。

除了 .frm 文件和 ibdata1 文件之外,我還需要任何其他文件來恢復數據庫嗎?

.frm文件包含數據庫的定義。該ibdata1文件可以包含許多數據庫(取決於 MySQL 的配置方式)。如果必須僅使用ibdata1.frm文件恢復數據庫,則需要將所有文件都放在正確的目錄中。只要您的 MySQL版本與客戶端執行的版本完全相同或稍新,您就可以從那裡恢復。

請注意,從外部 MySQL 安裝恢復ibdata.frm文件將刪除您已經在接收電腦上配置的任何數據庫。

假設我可以只使用 ibdata1 文件恢復數據庫,或者我以後獲得 .frm 文件,我是否需要安裝與客戶端 MySQL 版本匹配的版本?

⇢ 這在上一位中已回答。雖然從早期版本的 MySQL 中獲取一個和隨附的文件併升級它們在技術上是可行的,但在跳轉大量版本時可能會出現問題。例如,從 MySQL 5.3.x 升級到 8.0.24 幾乎肯定會失敗,除非源數據庫的結構更像 CSV 而不是一系列關係表。ibdata1``.frm

如果您的客戶端能夠訪問 MySQL 伺服器,請讓他們使用 MySQLDump 創建適當的備份並將該文件提供給您。這樣您就不必擔心版本或其他任何事情。每個人都會節省時間和麻煩。

引用自:https://dba.stackexchange.com/questions/290475