資料庫ibd
1. 資料庫恢復的基本原理是利用什麼重建資料庫
重建資料庫時壓測環境沒有備份,但是另一套測試環境的表結構與壓測環境一致,只是數據有所差異,所以,獲取表結構比較容易。導入表結構沒有什麼好說明的地方,注意導入 sql 的許可權和字元集。 重建表空間註:此小節對應恢復步驟的 。由於是整庫恢復,資料庫和表較多,所以使用腳本處理。大概的處理流程是,兩層循環,外層循環資料庫列表,內層循環對應資料庫表列表。然後依次 DISCARD TABLESPACE、拷貝對應庫對應表的 ibd 文件到對應目錄並更改許可權、IMPORT TABLESPACE。之前分析過,由於新舊的 ibd 文件表空間 id 不一致,導致不能正確導入。在 MySQL 錯誤日誌中記錄了表名、新舊表空間 id,接下來我們看看怎麼分解。 分析 MySQL 錯誤日誌註:此小節對應恢復步驟的和 。這一步很有意思。所有的資料庫表累計,不可能使用人工處理,我們得想點取巧的辦法。我們發現 MySQL 錯誤日誌記錄的表名、新舊表空間 id 很有規律,我們只需要依次取出這些值,問題就解決一大半了。
2. mysql資料庫被破壞,只剩下ibd文件時如何恢復
在使用獨立表空間的情況下,如果不慎使得innodb存儲引擎的元數據文件ibdata損壞,我們還可以挽救寶貴的數據.因為在innodb使用獨立表空間的情況下,ibdata文件會記錄每個innodb表的id,只要使得ibd中的表id和ibdata文件中記錄的表id相同,就能夠打開表,讀取到數據.
#創建表
CREATETABLE`ibdtest`(`id`int(11)NOTNULLAUTO_INCREMENT,`fid`int(11)NOTNULLCOMMENT'表b中的id',`content`char(255)NOTNULLCOMMENT'操作內容,系統生成',`mark`char(255)NOTNULLCOMMENT'備注',PRIMARYKEY(`id`))ENGINE=InnoDBDEFAULTCHARSET=utf8
3. 資料庫主要數據文件的擴展名是
不同的資料庫擴展名不同,
sql的就是mdf
access資料庫的擴展名是.mdb
mssql資料庫的擴展名是.mdf
paradox資料庫的擴展名是.db
oracle資料庫的擴展名是.dbf
dbase資料庫的擴展名是.dbf
foxpro資料庫的擴展名是.dbf
ms
works資料庫的擴展名是.wdb