Extract table dari file Full Backup

  Hi semua, jumpa lagi. Sudah lama rasanya tidak update blog ini lagi. Kali ini saya akan berbagi pengalaman saya beberapa hari terakhir ini. Salah seorang rekan team di tempat saya, sering kali meminta untuk di restore-kan data dari tabel tertentu yang telah di backup hari sebelumnya. Problemnya adalah, file backup saya adalah full-backup dalam bentuk file *.sql.

Step untuk restore tersebut adalah sebagai berikut :

  • Siapkan file backup yang akan di restore salah satu tabelnya
  • Buka file tersebut dengan text editor, misalnya notepad, wordpad, gedit, vi dan lain lain
  • Cari awal dari tabel yang akan di restore, bisa dengan search nama tabel
  • Copy blok data insert yang paling awal dari tabel tersebut, hingga yang paling akhir
  • dan paste di file text yang baru
  • Simpan file test tersebut dalam format *.sql.
  • Eksekusi / restore file tersebut di database tujuan.

Nah ternyata step tersebut menjadi rumit untuk saya laksanakan, mengapa?
Karena file full backup yang saya miliki ukurannya sangat besar , 3 GB. Ini akan mengakibatkan text editor yang saya pergunakan tidak mampu untuk membaca file tersebut. Saya mempergunakan gedit, dan programnya tidak kuat, hang.

Akhirnya saya harus mencari fungsi file text di linux untuk melakukan pemotongan data itu. Berikut adalah step yang saya lakukan :

  • Siapkan file backup yang akan di restore salah satu tabelnya
  • Saya masuk ke console linux.
  • Saya pakai fungsi fgrep di linux untuk mencari awal tabel yang akan saya copy.
    • $> fgrep -n “nama_tabel” nama_file_backup.sql | more
  • Jika sudah muncul datanya, saya cari baris yang paling awal menampilkan perintah insert terhadap tabel yang saya cari. Saya catat nomor baris nya.
  • Kemudian, saya cari baris yang paling akhir menampilkan perintah insert terhadap tabel yang saya cari. Saya catat nomor baris nya.
  • Jika sudah mencatat baris awal dan akhirnya, sekarang saatnya kita copy data dari awal baris itu ke akhir barisnya, ke file yang lain. Saya pakai perintah sed.
    • sed -n ‘81484141,81498477’p nama_file_backup.sql > file_restore.sql
  • Eksekusi / restore file tersebut di database tujuan.

Nah selesai sudah, dengan ini, berapapun ukuran file backup yang saya miliki, saya tetap bisa melakukan restore. Bagaimana dengan rekan rekan yang lain ? apakah ada alternatif yang lainnya ?

Author: Nareswara

Ordinary People with eye glasses

Leave a Reply

Your email address will not be published. Required fields are marked *