Cara Recovery MYSQL INNODB Table dengan file IBDATA1 terhapus

Cara Recovery data MYSQL dengan file ibdata1 terhapus – Pernahkah anda mengalami peristiwa di mana file ibdata1 terhapus pada mysql? Jika Anda menggunakan MySQL DBMS (DataBase Management System), itu bisa terjadi kehilangan atau secara tidak sengaja anda menghapus  file ibdata1 yang terletak di  folder data MySQL.

Sebenarnya File ini sangat penting, karena menampung tablespace sistem dari semua tabel INNODB. Dengan mengaktifkan opsi innodb_file_per_table  , Anda dapat menyimpan data dan mengindeks halaman di luar file ibdata1, membuat file .ibd tunggal untuk setiap tabel, juga disarankan karena file ibdata1 terus bertambah seiring waktu.

Jadi, jika sebenarnya kita beruntung dan kita mengaktifkan opsi seperti itu di masa lalu, kita dapat memulihkan data kita seperti semula.

Cara Recovery data MYSQL dengan file ibdata1 terhapus

Dengan demikian, Anda dapat memulihkan semuanya jika berada dalam skenario berikut:

  • file ibdata1 tidak ada
  • Anda memiliki semua file * .frm e * .ibd database dalam folder cadangan, ditambah file db.opt

Mari kita lihat apa yang harus dilakukan. 

  1. Asumsikan database Anda bernama nullalo  dan Anda memiliki backup copy  di folder / backup/data/nullalo 
  2. Hal pertama yang perlu Anda lakukan adalah membuat database baru dengan nama yang sama di MySQL. Basis data ini akan digunakan sebagai target untuk pemulihan tabel.
  3. Setelah membuat database kosong, Anda perlu membuat ulang tabel DB yang rusak/hilang . Untuk melakukan ini, pertama-tama kita harus mengekstrak skema tabel dari file * .frm , dengan menggunakan alat Oracle,  MySQL Utilities (versi saat ini 1.5.6) yang dapat diunduh di sini: http://dev.mysql.com/downloads/utilities/. Atau bebas menggunakan apa saja yang bisa digunakan dalam hal ini menggunakan command prompt
  4.  Setelah mengunduh dan menginstal alat ini, tersedia untuk semua platform, kami akan dapat menggunakan  perintah mysqlfrm , yang harus diluncurkan dari folder yang berisi file * .frm  (/backup/data/nullalo dalam contoh) dengan sintaks berikut:
    mysqlfrm --server=root:rootpassword@localhost namadatabase:namatabel.frm --port=3307

    Mari kita jelaskan bagaimana cara membangun perintah:
    – root adalah nama user database anda
    – rootpassword  adalah kata sandi pengguna root Anda untuk mengakses DBMS dengan semua hak istimewa,
    – mydb  adalah nama database tempat tabel yang akan dipulihkan berada,
    – mytable.frm  adalah nama tabel spesifik yang ingin Anda ekstrak skema dan
    – 3307  adalah port untuk server spawned yang dimulai oleh perintah – port ini harus berbeda dari yang digunakan oleh instance MySQL Anda (biasanya 3306).

  5. Pada bagian ini, perintah akan mengembalikan pernyataan CREATE TABLE, yang diperlukan untuk membuat ulang tabel, yang harus dijalankan di MySQL pada database nullalo kosong yang  sebelumnya dibuat (saya sarankan menggunakan klien seperti  MySQL Workbench , SQirreL o HeidiSQL, SQLYOG ). Contoh output perintah adalah sebagai berikut:
    C:\backup\data\nullalo>mysqlfrm --server=root:rootpassword@localhost nullalo:kalender.frm --port=3307

    # Source on localhost: … connected.
    # Starting the spawned server on port 3307 … done.
    # Reading .frm files
    #
    # Reading the user.frm file.
    #
    # CREATE statement for user.frm:
    #

    CREATE TABLE `nullalo`.`kalender` (
    `tanggal` date DEFAULT NULL,
    `hari` varchar(100) DEFAULT NULL,
    `ket` varchar(160) DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1

    #…done.

  6. Langkah selanjutnya adalah menjalankan perintah create table diatas dengan cara copy dan pastekan di aplikasi mysql client, dalam hal ini saya menggunakan sqlyog
  7.  Sekarang Anda memiliki tabel Anda kembali, tetapi masih belum ada data, karena terletak di file .ibd. Untuk mengembalikan data tabel, kita akan menjalankan langkah-langkah berikut pada sqlyog:
  1. jalankan perintah
    ALTER TABLE mydb.mytable DISCARD TABLESPACE;
  2. copykan  file mytable.ibd ( mytable  harus diganti dengan nama tabel Anda) dari folder backupan ke folder basis data (mis. C: \xamp\ mysql \ data \ nullalo)
  3. kemudian jalankan perintah
    ALTER TABLE mydb.mytable IMPORT TABLESPACE;

Sekarang meja Anda sudah pulih sepenuhnya

Catatan:

Ulangi langkah-langkah untuk semua tabel INNODB Anda sampai selesai secara satu per satu. Mungkin cara ini terlihat sangat merepotkan namun hanya cara inilah yang saya tau dan efektif mengembalikan semua data yang ada pada tabel seperti semula.

Demikianlah sedikit artikel yang menjelaskan tentang Cara Recovery MYSQL INNODB Table dengan file IBDATA1 terhapus. Semoga bisa bermanfaat dan bisa menuntun anda dalam mengembalikan data pada tabel yang file ibdata1 nya terhapus atau hilang. Sekian dan terima kasih.


how to recover innodb mysql table data from ibdata and .frm files


Pencarian paling banyak dicari:

  • how to recover innodb mysql table data from ibdata and .frm files
  • restore mysql database from ibdata and .frm files
  • ibdata1 recovery tool
  • extract data from mysql ibdata1 data file
  • recover innodb database
  • what is frm and ibd files in mysql
  • ibdata1 corrupt
  • innodb_force_recovery

Leave a Comment