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:
- Lokasi
gbak.exe(ada di folderbininstalasi Firebird milik FINA). - Path file database FINA Anda (file
.fdb). - 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
forfilesmenghapus backup yang lebih tua dari 60 hari agar disk tidak penuh. Ubah angkaKEEPDAYSsesuai kebutuhan. - Log: semua proses dicatat di
backup-log.txt, jadi Anda bisa memastikan backup benar-benar berhasil. - Deteksi gagal: kalau
gbakerror, 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
gbakuntuk 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
gbakringan 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
.fbkberisi 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.