Coding4ever’s Blog

Just coding… coding… and coding… because coding should be fun :)

Backup Dan Restore Database Firebird

| Comments

Dalam pembuatan aplikasi biasanya kita (terutama saya :D) selalu menyepelekan fitur yang satu ini, biasanya klo ditanya tentang fitur yang satu ini jawaban kita lebih kurang “udah copas aja databasenya trus dicompress, gampangkan” :D.

Tapi.. akhirnya saya kena batunya juga :D, beberapa waktu lalu saya dapat klien yang ngotot banget untuk dibuatkan fitur ini dan untungnya firebird sudah menyediakan tool untuk menghandle masalah ini yaitu dengan menggunakan tool gbak.

Pada artikel pertama ini kita akan bahas dulu penggunaan tool ini via command prompt, dan pada artikel berikutnya (insya Allah klo saya sempat :D) kita akan bahas penggunaannya langsung dari aplikasi.

Oke langsung aja aktifkan command promptnya, kemudian masuk ke folder “C:\Program Files\Firebird\Firebird_2_1\bin”

Untuk contoh disini kita akan membackup database yang ada di folder d:\database, adapun nama databasenya misal DBSIS.FDB.

Di Firebird ekstensi hasil backup biasanya menggunakan “FBK” misal DBSIS.FBK

1. Backup Database

Perintah yang digunakan yaitu : gbak.exe -v -user -password <nama_db.fdb> <nama_db_backup.fbk>. Contoh :

1
gbak -v -user SYSDBA -password masterkey d:\database\dbsis.fdb d:\database\backup\dbsis.fbk

jika proses backup berhasil/selesai akan mendapatkan tampilan seperti berikut :

Kalo databasenya ada di komputer lain gimana? Apakah tetap bisa menggunakan tool ini ? Ya jelas bisa kita tinggal tambahkan aja alamat komputernya didepan penulisan nama databasenya. Contoh :

1
gbak -v -user SYSDBA -password masterkey 192.168.0.1:d:\database\dbsis.fdb d:\database_lokal\backup\dbsis.fbk

Dengan asumsi 192.168.0.1 adalah nama komputer target, yang perlu diperhatikan disini adalah penulisan nama folder jika menggunakan spasi harus diapit tanda petik dua (“). Contoh :

1
gbak -v -user SYSDBA -password masterkey "d:\database sekolah\dbsis.fdb" d:\database\backup\dbsis.fbk

atau

1
gbak -v -user SYSDBA -password masterkey 192.168.0.1:"d:\database sekolah\dbsis.fdb" d:\database_lokal\backup\dbsis.fbk

2. Restore Database

Untuk proses restore perintah yang digunakan yaitu : gbak.exe -v -c -r -rep -user -password <nama_db_backup.fbk> <nama_db_restore.fdb>. Contoh :

1
gbak.exe -v -c -r -rep -user SYSDBA -password masterkey d:\database\backup\dbsis.fbk d:\database\dbsis.fdb

Perintah diatas akan mereplace database lama (untuk contoh disini DBSIS.FDB) dengan syarat tidak ada koneksi aktif ke database tersebut.

Saya kira klo udah nyampe disini sudah selesai ternyata belum, kebetulan klien saya ini maniak MySQL jadi dia pengen hasil backupnya dalam bentuk file *.sql yang biasanya berisi struktur database plus datanya, pokoknya sama persislah seperti hasil backupannya MySQL.

Nah untuk mengekstrak struktur database firebird kita akan menggunakan tool lainnya yaitu isql.

Adapun perintah yang digunakan yaitu : isql -ex <nama_db.fdb> -d <nama_db.fdb> -o <nama_file_backup.sql> -user -pass , contoh :

1
isql -ex d:\database\dbsis.fdb -d d:\database\dbsis.fdb -o d:\database\backup\dbsis.sql -user SYSDBA -pass masterkey

jika berhasil kita akan mendapatkan file dbsis.sql di folder d:\database\backup, yang bersisi struktur lengkap database dbsis.fdb

Tapi isql masih mempunyai kekurangan yaitu hanya mengekstrak struktur databasenya saja, untuk datanya akan kita ekstrak secara manual dari aplikasi yang insya Allah kita bahas pada artikel berikutnya.

Referensi :

Selamat mencoba :)

firebird

Tentang Penulis

Software developer yang fokus mengembangkan aplikasi di atas platform .NET (Desktop, ASP.NET MVC, Web Service) dan Android. Senang mempelajari teknologi baru terutama di bidang OOP, Design Pattern, ORM, Database dan Continuous Integration & Deployment.
Saat ini bekerja sebagai staf IT di salah satu PTS di Yogyakarta sebagai senior software developer. Di waktu luang insya Alloh akan terus berbagi pengalaman di blog ini :)

« Coding4Ever Advanced TextBox Menambahkan form input pada saat instalasi (inno setup) »

Comments