MyISAM
MyISAM tablosu mydb.mytable için üç dosyanız olmalıdır
\bin\mysql\mysql5.6.12\data\mydb\mytable.frm
\bin\mysql\mysql5.6.12\data\mydb\mytable.MYD
\bin\mysql\mysql5.6.12\data\mydb\mytable.MYI
Her dosya gerekli verileri, meta verileri ve dizin bilgilerini içerdiğinden, tablo olarak zaten erişilebilir olmalıdırlar. Toplu olarak, masayı oluştururlar. Erişilecek harici depolama motoru mecahnizmi yoktur.
InnoDB'nin
InnoDB'nin bu Resimli Temsiline bir göz atın
İbdata1'i .ibd
dosyalara iliştiren tek şey veri sözlüğüdür .
Göreviniz, kabul etmeye karar verirseniz, her tabloyu oluşturmak ve .ibd
Herhangi bir şey yapmadan önce "\ bin \ mysql \ mysql5.6.12 \ data" dosyasının tam bir kopyasını başka bir kopyaya oluşturun
İşte bir örnek
mydb
Tablo ile bir veritabanınız olduğunu varsayalım mytable
. Bu şu anlama gelir
- Klasöre sahipsiniz
\bin\mysql\mysql5.6.12\data\mydb
- Bu klasörün içinde,
İhtiyacınız var .frm
. Yazıma bakarsanız Tablo şemasını yalnızca .frm dosyasından nasıl ayıklayabilirsiniz? , tabloyu oluşturmak için gereken SQL'i oluşturabilen bir MySQL yardımcı programını indirebilirsiniz.
Şimdi aşağıdakileri yapmalısınız
- Şuraya taşı
mytable.ibd
:\bin\mysql\mysql5.6.12\data
- InnoDB tablosu oluşturmak için SQL'i çalıştırın
- Mysql oturumu açın ve çalıştırın
ALTER TABLE mydb.mytable DISCARD TABLESPACE;
(Bu silinir \bin\mysql\mysql5.6.12\data\mydb\mytable.ibd
)
- Kopya
\bin\mysql\mysql5.6.12\data\mytable.ibd
içine\bin\mysql\mysql5.6.12\data\mydb
- MySQL giriş ve
ALTER TABLE mydb.mytable IMPORT TABLESPACE;
(Bu \bin\mysql\mysql5.6.12\data\mydb\mytable.ibd
veri sözlüğüne kayıt olacak )
Bundan sonra, masa mydb.mytable
tamamen erişilebilir olmalıdır. Bu erişilebilirliği basitçe çalıştırarak test edebilirsiniz:
SELECT * FROM mydb.mytable LIMIT 10;
Bir şans ver !!!
DRINK (Veri Kurtarma Gerekli Bilgiyi İçerir) Sorumlu