欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

mysql如何根據(jù).frm和.ibd文件恢復(fù)數(shù)據(jù)表

 更新時間:2023年07月28日 08:27:26   作者:peachyy  
這篇文章主要介紹了mysql根據(jù).frm和.ibd文件恢復(fù)數(shù)據(jù)表的操作方法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

忠人之事受人之托 起因是因為一位朋友的數(shù)據(jù)庫服務(wù)器被重裝了,只剩下一個zbp_post.frm和zbp_post.ibd文件。咨詢我能不能恢復(fù),確實我只用過mysqldump這種工具導(dǎo)出數(shù)據(jù) 然后進行恢復(fù)到數(shù)據(jù)庫。這種直接備份物理存儲文件還沒有嘗試過。

前提是需要歷史ibd文件的所屬數(shù)據(jù)庫版本 需要和還原新庫數(shù)據(jù)庫版本保持一致,這樣才能少踩坑。

創(chuàng)建表結(jié)構(gòu)

要想恢復(fù)數(shù)據(jù),表結(jié)構(gòu)需要和.ibd里面的結(jié)構(gòu)保持一致,如果不一致將恢復(fù)不成功 可能會報如下錯誤?;蛘咂渌惓?。

[ERROR] InnoDB: Trying to access page number 426442752 in space 24, space name test1/zbp_post, which is outside the tablespace bounds. Byte offset 0, len 16384, i/o type read. If you get this error at mysqld startup, please check that your my.cnf matches the ibdata files that you have in the MySQL server.

獲取表結(jié)構(gòu)

如果明確知道表結(jié)構(gòu) 這一步可跳過。不知道表結(jié)構(gòu)可從這一步操作中獲取到表結(jié)構(gòu)。

借助了mysql utilities工具來查看表結(jié)構(gòu)。

安裝mysql utilities

這里我適用window 其他系統(tǒng)也是類似的操作 下載后安裝好。

https://downloads.mysql.com/archives/get/p/30/file/mysql-utilities-1.6.5-winx64.msi

其他系統(tǒng)下載地址 https://downloads.mysql.com/archives/

進入zbp_post.frm目錄中執(zhí)行獲取表結(jié)構(gòu)命令。

cd zbp_post
mysqlfrm --diagnostic ./zbp_post.frm

執(zhí)行完mysqlfrm命令后 輸出如下表結(jié)構(gòu)

CREATE TABLE `zbp_post` (
  `log_ID` int(11) NOT NULL AUTO_INCREMENT,
  `log_CateID` int(11) NOT NULL,
  `log_AuthorID` int(11) NOT NULL,
  `log_Tag` varchar(1000) NOT NULL,
  `log_Status` tinyint(4) NOT NULL,
  `log_Type` int(11) NOT NULL,
  `log_Alias` varchar(1000) NOT NULL,
  `log_IsTop` tinyint(4) NOT NULL,
  `log_IsLock` tinyint(4) NOT NULL,
  `log_Title` varchar(1000) NOT NULL,
  `log_Intro` text,
  `log_Content` longtext,
  `log_CreateTime` int(11) NOT NULL,
  `log_PostTime` int(11) NOT NULL,
  `log_UpdateTime` int(11) NOT NULL,
  `log_CommNums` int(11) NOT NULL,
  `log_ViewNums` int(11) NOT NULL,
  `log_Template` varchar(1000) NOT NULL,
  `log_Meta` longtext,
  `log_BdPush` int(11) NOT NULL,
PRIMARY KEY `PRIMARY` (`log_ID`),
KEY `zbp_log_TPISC` (`log_Type`,`log_PostTime`,`log_IsTop`,`log_Status`,`log_CateID`),
KEY `log_CateID` (`log_CateID`),
KEY `log_AuthorID` (`log_AuthorID`),
KEY `log_PostTime` (`log_PostTime`),
KEY `log_CommNums` (`log_CommNums`),
KEY `log_ViewNums` (`log_ViewNums`),
KEY `log_Title` (`log_Title`)
) ENGINE=InnoDB;

數(shù)據(jù)庫配置修改

編輯MySQL的配置文件,通常是my.cnf或my.ini文件,在[mysqld]部分添加以下行:

這將確保每個表有單獨的.ibd文件。

[mysqld]
innodb_file_per_table=1
wait_timeout=600 #600秒(10分鐘)

wait_timeout=600 這個配置可以不加 訪問還原數(shù)據(jù)比較大。執(zhí)行超時的情況。需要根據(jù)場景酌情配置。

開始恢復(fù)數(shù)據(jù)

創(chuàng)建新數(shù)據(jù)庫

創(chuàng)建一個數(shù)據(jù)庫 任意數(shù)據(jù)庫名。

create database test1;

創(chuàng)建表

進入到新創(chuàng)建的數(shù)據(jù)庫中(use test1),復(fù)制上一步中的表結(jié)構(gòu)SQL。執(zhí)行創(chuàng)建表結(jié)構(gòu)操作。

使用.ibd文件恢復(fù)數(shù)據(jù)到新表

卸載表空間 執(zhí)行此步會自動刪除新表對應(yīng)的.ibd文件

ALTER TABLE zbp_post DISCARD TABLESPACE;

拷貝備份的.ibd文件到新創(chuàng)建數(shù)據(jù)庫對應(yīng)的目錄中。

一般目錄在mysql保存數(shù)據(jù)庫的目錄。如我當(dāng)前的服務(wù)器mysql數(shù)據(jù)保存的目錄在/usr/local/mysql/data,數(shù)據(jù)庫名 test1 ,表名 zbp_post。

那么拷貝.ibd文件的目錄為 /usr/local/mysql/data/zbp_post/test1中。

裝載表空間

ALTER TABLE zbp_post IMPORT TABLESPACE;

完成以上步驟后,您應(yīng)該能夠成功還原.ibd文件。請注意,這種方法僅適用于InnoDB引擎的表。如果.ibd文件損壞或不匹配,可能需要使用MySQL的數(shù)據(jù)恢復(fù)工具來修復(fù)數(shù)據(jù)庫。

驗證

果然完美

mysql> select count(1) from zbp_post;
+----------+
| count(1) |
+----------+
|   785216 |
+----------+
1 row in set (0.15 sec)

到此這篇關(guān)于mysql根據(jù).frm和.ibd文件恢復(fù)數(shù)據(jù)表的文章就介紹到這了,更多相關(guān)mysql恢復(fù)數(shù)據(jù)表內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 關(guān)于mysql主備切換canal出現(xiàn)的問題解決

    關(guān)于mysql主備切換canal出現(xiàn)的問題解決

    這篇文章主要給大家介紹了關(guān)于mysql主備切換canal出現(xiàn)的一些問題,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • 分享MySQL的自動化安裝部署的方法

    分享MySQL的自動化安裝部署的方法

    線上的MySQL一般都采用源碼編譯,雖然MySQL的源碼編譯挺簡單的,但是試想一下,如果你有幾百臺服務(wù)器同時要安裝MySQL,難道你還一臺臺去手動編譯、編寫配置文件嗎?這顯然太低效了,本文討論MySQL的自動化安裝部署。
    2014-07-07
  • mysql連接查詢、聯(lián)合查詢、子查詢原理與用法實例詳解

    mysql連接查詢、聯(lián)合查詢、子查詢原理與用法實例詳解

    這篇文章主要介紹了mysql連接查詢、聯(lián)合查詢、子查詢原理與用法,結(jié)合實例形式詳細分析了mysql連接查詢、聯(lián)合查詢、子查詢的基本概念、功能、原理、用法及操作注意事項,需要的朋友可以參考下
    2020-04-04
  • MySQL大小寫敏感導(dǎo)致的問題分析

    MySQL大小寫敏感導(dǎo)致的問題分析

    在本篇內(nèi)容里小編給大家整理了關(guān)于MySQL大小寫敏感導(dǎo)致的問題的詳細分析,有興趣的朋友們可以學(xué)習(xí)參考下。
    2019-06-06
  • mysql下修改engine引擎的方法

    mysql下修改engine引擎的方法

    修改mysql的引擎為INNODB,可以使用外鍵,事務(wù)等功能,性能高。
    2011-08-08
  • MySQL死鎖解析與解決方法

    MySQL死鎖解析與解決方法

    在數(shù)據(jù)庫管理中,死鎖是一種常見而又棘手的問題,當(dāng)多個事務(wù)相互等待對方釋放鎖資源時,死鎖就會發(fā)生,本文將介紹MySQL中死鎖產(chǎn)生的原因、如何查詢死鎖,以及解決死鎖的方法,需要的朋友可以參考下
    2024-01-01
  • MySQL服務(wù)器的啟動和關(guān)閉

    MySQL服務(wù)器的啟動和關(guān)閉

    作為MySQL管理員,一個普通的目標(biāo)就是確保服務(wù)器盡可能地處于運行狀態(tài),使得客戶機能夠隨時訪問它。但是,有時最好關(guān)閉服務(wù)器(例如,如果正在進行數(shù)據(jù)庫的重定位,不希望服務(wù)器在該數(shù)據(jù)庫中更新表)。保持服務(wù)器運行和偶爾關(guān)閉它的需求關(guān)系不是本書所解 決的。但是我們至少可以討論如何使服務(wù)器啟動和停止,以便您具備進行這兩個操作的能力。
    2008-04-04
  • 一文搞懂MySQL索引特性(清晰明了)

    一文搞懂MySQL索引特性(清晰明了)

    索引可以提高數(shù)據(jù)庫的性能,提高一個海量數(shù)據(jù)的檢索速度,但是插入,更新,刪除的速度相應(yīng)會降低,下面這篇文章主要給大家介紹了關(guān)于MySQL索引特性的相關(guān)資料,需要的朋友可以參考下
    2023-04-04
  • MySQL定時刪除XX天數(shù)據(jù)示例代碼

    MySQL定時刪除XX天數(shù)據(jù)示例代碼

    通過使用MySQL的事件調(diào)度器,我們可以方便地創(chuàng)建定時任務(wù)來定期清理數(shù)據(jù)庫中的過期數(shù)據(jù),本文介紹了如何創(chuàng)建定時任務(wù)以及如何刪除3個月前的數(shù)據(jù)作為示例,感興趣的朋友跟隨小編一起看看吧
    2023-09-09
  • mysql 行列轉(zhuǎn)換的示例代碼

    mysql 行列轉(zhuǎn)換的示例代碼

    這篇文章主要介紹了mysql 行列轉(zhuǎn)換的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03

最新評論