當前位置:首頁 » 數據倉庫 » frm恢復資料庫
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

frm恢復資料庫

發布時間: 2022-06-07 00:08:11

Ⅰ 如何恢復資料庫表刪除數據 mysql

每個 DBA 是不是都有過刪庫的經歷?刪庫了沒有備份怎麼辦?備份恢復後無法啟動服務什麼情況?表定義損壞數據無法讀取怎麼辦?

我曾遇到某初創互聯網企業,因維護人員不規范的備份恢復操作,導致系統表空間文件被初始化,上萬張表無法讀取,花了數小時才搶救回來。

當你發現數據無法讀取時,也許並非數據丟失了,可能是 DBMS 找不到描述數據的信息。


背景

先來了解下幾張關鍵的 InnoDB 數據字典表,它們保存了部分表定義信息,在我們恢復表結構時需要用到。

SYS_TABLES 描述 InnoDB 表信息CREATE TABLE `SYS_TABLES` (`NAME` varchar(255) NOT NULL DEFAULT '', 表名`ID` bigint(20) unsigned NOT NULL DEFAULT '0', 表id`N_COLS` int(10) DEFAULT NULL,`TYPE` int(10) unsigned DEFAULT NULL,`MIX_ID` bigint(20) unsigned DEFAULT NULL,`MIX_LEN` int(10) unsigned DEFAULT NULL,`CLUSTER_NAME` varchar(255) DEFAULT NULL,`SPACE` int(10) unsigned DEFAULT NULL, 表空間idPRIMARY KEY (`NAME`)) ENGINE=InnoDB DEFAULT CHARSET=latin1;SYS_INDEXES 描述 InnoDB 索引信息CREATE TABLE `SYS_INDEXES` ( `TABLE_ID` bigint(20) unsigned NOT NULL DEFAULT '0', 與sys_tables的id對應 `ID` bigint(20) unsigned NOT NULL DEFAULT '0', 索引id `NAME` varchar(120) DEFAULT NULL, 索引名稱 `N_FIELDS` int(10) unsigned DEFAULT NULL, 索引包含欄位的個數 `TYPE` int(10) unsigned DEFAULT NULL, `SPACE` int(10) unsigned DEFAULT NULL, 存儲索引的表空間id `PAGE_NO` int(10) unsigned DEFAULT NULL, 索引的root page id PRIMARY KEY (`TABLE_ID`,`ID`)) ENGINE=InnoDB DEFAULT CHARSET=latin1;SYS_COLUMNS 描述 InnoDB 表的欄位信息CREATE TABLE `SYS_COLUMNS` ( `TABLE_ID` bigint(20) unsigned NOT NULL, 與sys_tables的id對應 `POS` int(10) unsigned NOT NULL, 欄位相對位置 `NAME` varchar(255) DEFAULT NULL, 欄位名稱 `MTYPE` int(10) unsigned DEFAULT NULL, 欄位編碼 `PRTYPE` int(10) unsigned DEFAULT NULL, 欄位校驗類型 `LEN` int(10) unsigned DEFAULT NULL, 欄位位元組長度 `PREC` int(10) unsigned DEFAULT NULL, 欄位精度 PRIMARY KEY (`TABLE_ID`,`POS`)) ENGINE=InnoDB DEFAULT CHARSET=latin1;SYS_FIELDS 描述全部索引的欄位列CREATE TABLE `SYS_FIELDS` ( `INDEX_ID` bigint(20) unsigned NOT NULL, `POS` int(10) unsigned NOT NULL, `COL_NAME` varchar(255) DEFAULT NULL, PRIMARY KEY (`INDEX_ID`,`POS`)) ENGINE=InnoDB DEFAULT CHARSET=latin1;./storage/innobase/include/dict0boot.h 文件定義了每個字典表的 index id,對應 id 的 page 中存儲著字典表的數據。

Ⅱ 如何恢復 MySQL 的 frm,myd,myi 資料庫文件

暈,mysql自帶有修復工具啊,myisamchk和mysqlcheck
。如果想恢復誤刪除的文件,那要使用easy
recover之類的軟體了

Ⅲ MYSQL 資料庫僅剩frm文件,如何恢復以前資料庫的結構呢

建議找找專業的數據恢復機構,這個是比較專業的問題了,建議找找專業的數據恢復機構咨詢一下吧,有個叫北亞數據恢復的地方是全國數一數二的專業權威的專業機構,很早就開始做數據恢復業務,是業界的元老了。