最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Mysql如何通過ibd文件恢復(fù)數(shù)據(jù)

 更新時間:2023年08月26日 09:55:34   作者:Smile_微笑  
這篇文章主要介紹了Mysql如何通過ibd文件恢復(fù)數(shù)據(jù)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

Mysql ibd文件恢復(fù)問題

恢復(fù)步驟

1、創(chuàng)建數(shù)據(jù)庫(隨意創(chuàng)建)

2、創(chuàng)建數(shù)據(jù)表(備注:表結(jié)構(gòu)要和要恢復(fù)的表結(jié)構(gòu)一致,row_format要和ibd文件的row_format一致,否則,會提示兩者不一致。 當前row_format=dynamic)

3、表的屬性查看

我們使用:show table status like ‘matlab’\G,查看表的屬性

備注:創(chuàng)建表時候的row_format和表屬性的不一致,基于innodb是,要把row_format設(shè)置成dynamic時,需要修改mysql的全局配置,直接在myql命令中修改:set global innodb_file_format=Barracuda;

4、表錯誤信息查看 show warnings

5、說明我們在恢復(fù)表的時候,要保證row_format和ibd文件的一致,如果ibd文件是compact的話,需要建表的時候,設(shè)置成row_format=compact,在恢復(fù)的時候,自行解決,從第6步開始,重點說明如何去恢復(fù)。

6、恢復(fù)第一步:移除表空間

 **alter table matlab DISCARD TABLESPACE;**

7、恢復(fù)第二步:將備份的ibd文件,放到mysql->data->創(chuàng)建的數(shù)據(jù)庫名稱->,將ibd拷貝到此目錄下,如下所示具體路徑查看

-- 使用sql查詢數(shù)據(jù)目錄
**show global variables like '%datadir%';**

8、恢復(fù)第三步:重新導(dǎo)入表空間

 **alter table matlab IMPORT TABLESPACE;**

9、當執(zhí)行到上一步完成后,我們發(fā)現(xiàn)數(shù)據(jù)庫中的數(shù)據(jù)已經(jīng)完全恢復(fù)過來了

10、數(shù)據(jù)表的結(jié)構(gòu)一定要和恢復(fù)前的數(shù)據(jù)表結(jié)構(gòu)一致,否則恢復(fù)失敗,導(dǎo)致mysql進程重啟,詳細情況需要查看mysql的error日志進行分析,另外,mysql的CE工具提供了便捷的mysql參數(shù)配置修改功能

mysql基于idb文件恢復(fù)數(shù)據(jù)問題 

適用于mysql8.0+,mysql5版本沒測試過

數(shù)據(jù)庫因為磁盤損壞起不來了,好在data目錄下的idb文件還在,可以基于idb文件恢復(fù)數(shù)據(jù)

步驟:

  • 創(chuàng)建schem和表
  • 將新建表關(guān)聯(lián)
  • 復(fù)制idb文件
  • import表

注意執(zhí)行順序

創(chuàng)建shcema

需要找一個同版本的mysql數(shù)據(jù)庫,創(chuàng)建一個空的schema

create database test;

然后創(chuàng)建一個相同結(jié)構(gòu)的表結(jié)構(gòu)

//測試環(huán)境數(shù)據(jù)庫損壞,我登錄開發(fā)環(huán)境切換到對應(yīng)db下,查看對應(yīng)的表結(jié)構(gòu)
//如果有備份的庫也可以,導(dǎo)入一個schmea查看表結(jié)構(gòu)。或者從開發(fā)人員那里索要表結(jié)構(gòu)
show create table dev;
//這里是我在開發(fā)環(huán)境上看到的表結(jié)構(gòu)
CREATE TABLE `match_rules` (
? `id` bigint NOT NULL AUTO_INCREMENT,
? `app_id` varchar(32) DEFAULT NULL,
? `rule_id` varchar(32) DEFAULT NULL,
? `rule_type` int DEFAULT NULL,
? `conditions` json DEFAULT NULL,
? `results` json DEFAULT NULL,
? `show_data` json DEFAULT NULL,
? `create_time` datetime DEFAULT NULL,
? `update_time` datetime DEFAULT NULL,
? `valid` int DEFAULT NULL,
? `version_number` int DEFAULT NULL,
? PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=149 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
//粘貼上面的表結(jié)構(gòu),到新建的庫下執(zhí)行,注意切換到對應(yīng)的schema上

將新建表關(guān)聯(lián)

上面我們把表結(jié)構(gòu)創(chuàng)建好了,接下來需要將表關(guān)聯(lián)

ALTER TABLE your_table DISCARD TABLESPACE;

復(fù)制idb文件

首先,將 .ibd 文件復(fù)制到 MySQL 數(shù)據(jù)目錄中,例如 /var/lib/mysql/your_database/ 目錄。

請確保文件具有正確的權(quán)限,并且 MySQL 用戶可以訪問該文件

import表

//執(zhí)行完后我們可以切換到對應(yīng)的表下面,可以看到數(shù)據(jù)了
ALTER TABLE your_table IMPORT TABLESPACE;

//如果是給開發(fā)人員使用,記得授權(quán)

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

化德县| 通榆县| 武陟县| 名山县| 仲巴县| 桃园市| 莱阳市| 南华县| 方城县| 家居| 犍为县| 高唐县| 开江县| 永和县| 鱼台县| 屯昌县| 墨竹工卡县| 门头沟区| 县级市| 灌阳县| 兴安县| 伊吾县| 白城市| 星子县| 遂平县| 礼泉县| 安陆市| 吉水县| 公主岭市| 通山县| 临朐县| 东辽县| 西城区| 砀山县| 博客| 黔西| 工布江达县| 台中市| 阿瓦提县| 贵州省| 萍乡市|