Backup adalah nyawa data akuntansi. Sayangnya, cara backup otomatis bawaan FINA punya satu kelemahan yang sering baru disadari saat sudah terlambat: file backup-nya menimpa dirinya sendiri setiap bulan. Artikel ini menunjukkan cara membuat backup FINA yang otomatis, bertanggal, dan cepat menggunakan file CMD (batch) yang dijalankan lewat Windows Task Scheduler.

Masalahnya: backup bulanan yang saling menimpa

Backup otomatis FINA membuat satu file per bulan. Misalnya database Anda bernama NamaDatabase.fdb (ganti dengan nama database FINA Anda), maka backup pada bulan Agustus akan menghasilkan satu file seperti NamaDatabase Aug.fbk.

Masalahnya, selama bulan itu file tersebut terus ditimpa. Jadi kalau Anda backup pada tanggal 1 Agustus, lalu backup lagi pada tanggal 15 Agustus, file tanggal 1 sudah hilang. Kalau tiba-tiba ada kesalahan input dan Anda ingin kembali ke kondisi tanggal 1 sampai 14, datanya sudah tidak ada.

Padahal justru kemampuan kembali ke satu titik waktu tertentu itulah yang sering menyelamatkan bisnis: salah posting, data terhapus, atau sekadar ingin mengecek "dulu angkanya berapa". Solusinya: buat backup sendiri yang namanya selalu unik per tanggal, sehingga tidak pernah saling menimpa.

Solusinya: satu file batch (.bat) sederhana

FINA menyimpan data di database Firebird, dan Firebird punya alat backup resmi bernama gbak. Kita panggil gbak dari sebuah file .bat, lalu jadwalkan lewat Task Scheduler agar jalan otomatis, misalnya tiap malam.

Sebelum mulai, siapkan tiga hal:

  1. Lokasi gbak.exe (ada di folder bin instalasi Firebird milik FINA).
  2. Path file database FINA Anda (file .fdb).
  3. User dan password database (umumnya default SYSDBA / masterkey, sesuaikan dengan instalasi Anda).

Buat file, misalnya D:\FINA\Backup.bat, dengan isi berikut. Ganti bagian konfigurasi sesuai kondisi Anda:

@echo off
setlocal enabledelayedexpansion

REM ================= KONFIGURASI (sesuaikan) =================
set "GBAK=C:\Program Files\Firebird\Firebird_2_5\bin\gbak.exe"
set "DBHOST=localhost"
set "DBPATH=C:\FINA\Data\NamaDatabase.fdb"
set "DBUSER=SYSDBA"
set "DBPASS=masterkey"
set "BACKUPDIR=D:\FINA\Backup"
set "KEEPDAYS=60"
REM ==========================================================

REM Timestamp stabil (tidak tergantung format tanggal Windows): tahun-bulan-hari_jammenit
for /f %%i in ('powershell -NoProfile -Command "Get-Date -Format yyyy-MM-dd_HHmm"') do set "STAMP=%%i"

REM Ambil nama database untuk jadi prefix nama file
for %%f in ("%DBPATH%") do set "DBNAME=%%~nf"

if not exist "%BACKUPDIR%" mkdir "%BACKUPDIR%"
set "OUT=%BACKUPDIR%\%DBNAME%_%STAMP%.fbk"
set "LOG=%BACKUPDIR%\backup-log.txt"

echo [%date% %time%] Mulai backup %DBNAME% ke %OUT% >> "%LOG%"

"%GBAK%" -b -v -user %DBUSER% -password %DBPASS% "%DBHOST%:%DBPATH%" "%OUT%" >> "%LOG%" 2>&1

if errorlevel 1 (
  echo [%date% %time%] GAGAL backup %DBNAME% >> "%LOG%"
) else (
  echo [%date% %time%] SUKSES: %OUT% >> "%LOG%"
  REM Hapus backup yang lebih tua dari KEEPDAYS hari, biar disk tidak penuh
  forfiles /p "%BACKUPDIR%" /m "%DBNAME%_*.fbk" /d -%KEEPDAYS% /c "cmd /c del @path" 2>nul
)

endlocal

Hasilnya, tiap kali dijalankan file akan bernama unik seperti NamaDatabase_2026-08-01_2200.fbk, NamaDatabase_2026-08-15_2200.fbk, dan seterusnya. Tidak ada lagi yang saling menimpa.

Menjadwalkan otomatis lewat Task Scheduler

Agar jalan sendiri tiap hari, daftarkan ke Windows Task Scheduler. Cara tercepat, buka Command Prompt sebagai Administrator lalu jalankan:

schtasks /Create /SC DAILY /TN "Backup FINA" /TR "D:\FINA\Backup.bat" /ST 22:00 /RL HIGHEST /F

Perintah di atas menjadwalkan backup tiap hari pukul 22:00. Anda juga bisa mengaturnya lewat tampilan Task Scheduler (Create Basic Task, pilih Daily, arahkan ke D:\FINA\Backup.bat). Pastikan PC menyala di jam tersebut.

Fungsi tambahan yang bisa Anda pasang

Script di atas sudah menyertakan beberapa hal berguna, dan bisa dikembangkan:

  • Penamaan bertanggal: setiap backup punya nama unik, aman dari saling menimpa.
  • Retensi otomatis: baris forfiles menghapus backup yang lebih tua dari 60 hari agar disk tidak penuh. Ubah angka KEEPDAYS sesuai kebutuhan.
  • Log: semua proses dicatat di backup-log.txt, jadi Anda bisa memastikan backup benar-benar berhasil.
  • Deteksi gagal: kalau gbak error, ditandai GAGAL di log dan file lama tidak ikut dihapus.
  • Salin ke lokasi lain (offsite): tambahkan baris untuk menyalin hasil backup ke hard disk eksternal atau folder cloud (OneDrive, Google Drive) agar aman kalau PC rusak. Contoh: robocopy "%BACKUPDIR%" "E:\BackupFINA" %DBNAME%_%STAMP%.fbk.
  • Banyak database: kalau punya lebih dari satu database, gandakan blok gbak untuk tiap file .fdb.

Manfaat lain, bukan sekadar cadangan

  • Restore ke titik waktu tertentu: punya backup harian berarti bisa kembali ke kondisi kemarin, minggu lalu, atau tanggal spesifik saat masalah terjadi.
  • Melacak dan mengaudit kasus: kalau ada selisih angka atau data mencurigakan, Anda bisa membandingkan kondisi data antar tanggal untuk menemukan kapan perubahannya terjadi.
  • Proses cepat dan tidak ganggu kerja: backup lewat gbak ringan dan bisa dijadwalkan tengah malam, jadi tidak mengganggu jam operasional.
  • Aman dari kerusakan hardware: dengan salinan offsite, data tetap selamat meski PC atau hard disk rusak.
  • Ketenangan pikiran: backup berjalan sendiri tiap hari tanpa harus diingat manual.

Catatan penting

  • Uji restore secara berkala. Backup yang tidak pernah dicoba di-restore belum tentu bisa dipakai. Sesekali coba restore ke database uji.
  • Jaga file backup dan kredensial. File .fbk berisi seluruh data keuangan Anda, simpan di lokasi yang aman.
  • Pastikan ruang disk cukup, terutama kalau database besar dan retensi panjang.

Kalau Anda ingin dibantu menyiapkan script ini sesuai lokasi database dan kebutuhan bisnis Anda, atau butuh bantuan restore dan penelusuran kasus di FINA, tim Btools siap membantu. Hubungi kami via WhatsApp di 0857-1008-9494.