Cara Backup Otomatis Database OtomaX dan Sinkron ke Komputer Lain

  1. Software  
  2. sebulan yanglalu

Cara Backup Otomatis Database OtomaX dan Sinkron ke Komputer Lain

πŸ“Œ Ringkasan

Panduan ini mencakup solusi backup 3 lapis untuk database OtomaX berbasis SQL Server:

  • βœ… Backup FULL harian (.bak)
  • βœ… Backup LOG transaksi per menit (.trn)
  • βœ… Sinkronisasi otomatis ke komputer lain via network drive (Z:)
  • βœ… Pembersihan file backup > 3 hari

πŸ—‚οΈ Struktur Folder Backup

LokasiKontenKomputer
D:\backup\fullBackup FULL harian OtomaXUtama
D:\backup\logsBackup LOG transaksi per menitUtama
Z:\backup\fullMirror dari D:\backup\fullCadangan
Z:\backup\logsMirror dari D:\backup\logsCadangan

πŸ’‘ Catatan:

  • Z: adalah network drive yang terhubung ke komputer cadangan
  • Backup disimpan dalam format terkompresi (COMPRESSION)

πŸ› οΈ Langkah Implementasi

πŸ”§ Step 0: Mapping Network Drive (Z:)

Pada Komputer Cadangan:

New-Item -Path "C:\backup" -ItemType Directory
New-SmbShare -Name "backup" -Path "C:\backup" -FullAccess "Everyone"

Pada Komputer Utama:

net use Z: \\NAMA_KOMPUTER_CADANGAN\backup /persistent:yes

Ganti NAMA_KOMPUTER_CADANGAN dengan hostname atau IP komputer tujuan.


πŸ’Ύ Step 1: Backup FULL Harian (Jam 00:01)

SQL Server Agent Job:

DECLARE @fileName NVARCHAR(255) = CONCAT('D:\backup\full\OtomaX_FULL_', FORMAT(GETDATE(), 'yyyyMMdd'), '.bak');

BACKUP DATABASE [OtomaX] 
TO DISK = @fileName 
WITH INIT, COMPRESSION, STATS = 10;

⏱️ Step 2: Backup LOG Transaksi per Menit

SQL Agent Job setiap 1 menit:

DECLARE @fileName NVARCHAR(255) = CONCAT('D:\backup\logs\OtomaX_', FORMAT(GETDATE(), 'yyyyMMdd_HHmmss'), '.trn');

BACKUP LOG [OtomaX] 
TO DISK = @fileName 
WITH INIT, COMPRESSION;

πŸ”„ Step 3: Sinkronisasi ke Komputer Cadangan

Buat script PowerShell: sync-otomax.ps1

Start-Process -WindowStyle Hidden -FilePath "powershell.exe" -ArgumentList {
    while ($true) {
        robocopy "D:\backup\full" "Z:\backup\full" *.bak /MIR /NP /NDL /NFL /R:1 /W:1
        robocopy "D:\backup\logs" "Z:\backup\logs" *.trn /MIR /NP /NDL /NFL /R:1 /W:1
        Start-Sleep -Seconds 60
    }
}

Auto-start: Tambahkan ke Task Scheduler dengan trigger β€œAt Startup”.
Atau jalankan manual via powershell administrator:

powershell -ExecutionPolicy Bypass -File "C:\backupZ\sync-backup.ps1"

πŸ—‘οΈ Step 4: Pembersihan File Lama (> 3 Hari)

PowerShell script untuk SQL Agent Job:

# Hapus backup FULL lama
Get-ChildItem "D:\backup\full\*.bak" |
Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-3) } |
Remove-Item -Force

# Hapus backup LOG lama
Get-ChildItem "D:\backup\logs\*.trn" |
Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-3) } |
Remove-Item -Force

πŸ“Š Estimasi Penyimpanan

Jenis BackupFrekuensiRata-rata UkuranTotal 3 Hari
FULL1x/hari~6 GB~18 GB
LOG1x/menit~10 MB/jam~4.3 GB
Total~22.3 GB

πŸ”§ Troubleshooting

Gagal mapping Z::

  • Pastikan firewall membuka port 445
  • Verifikasi credential sharing folder

Robocopy error:

  • Tambahkan opsi /ZB untuk retry dengan mode backup

SQL Agent gagal:

  • Pastikan account menjalankan job punya izin sysadmin

🎯 Keunggulan

  • βœ… 3-Layer Protection: FULL + LOG + Mirror
  • βœ… Minimal Storage: Kompresi + Auto-cleanup
  • βœ… Zero Cost: Fitur native Windows + SQL Server
  • βœ… Point-in-Time Recovery hingga ke detik terakhir

πŸ”’ Backup yang baik = Auto-pilot + Redundansi + Retention Policy

Apakah sistem ini hanya untuk database OtomaX?

Secara default panduan ini memang dikhususkan untuk OtomaX, namun dengan beberapa penyesuaian kecil, sistem ini bisa diaplikasikan untuk:

  • Semua database SQL Server (MySQL/MariaDB membutuhkan modifikasi script)
  • Aplikasi ERP berbasis SQL seperti Accurate, Zahir, atau DacEasy
  • Database custom dengan kebutuhan backup real-time

πŸ’‘ Tips: Ganti nama database di script BACKUP DATABASE dan sesuaikan path folder backup.

Apa keunggulan sinkronisasi ke drive Z?

Implementasi network drive (Z:) memberikan 3 lapis proteksi:

  1. Redundansi fisik - Backup tersimpan di 2 lokasi berbeda
  2. Auto-failover - Jika komputer utama down, data tetap aman
  3. Efisiensi bandwidth - Robocopy hanya transfer perubahan (delta sync)
⚠️ Pastikan koneksi jaringan stabil dengan latency <100ms untuk sinkronisasi optimal.
Bagaimana monitoring robocopy yang berjalan terus-menerus?

Untuk memantau proses sinkronisasi:

Get-Process robocopy | Format-Table -AutoSize
    

Atau buat log aktivitas dengan menambahkan parameter:

robocopy ... /LOG+:D:\backup\log\sync_history.txt
    

Frekuensi sync bisa disesuaikan di parameter Start-Sleep (dalam detik).

Bagaimana jika SQL Server Agent tidak tersedia?

Alternatif solusi tanpa SQL Agent:

MetodeImplementasi
Windows Task SchedulerJalankan script SQL via sqlcmd.exe
PowerShell ScriptGunakan Invoke-Sqlcmd dengan trigger waktu

Catatan: Beberapa fitur seperti backup LOG mungkin membutuhkan konfigurasi tambahan.

Bagaimana mengatur retention policy lebih dari 3 hari?

Modifikasi script pembersihan dengan:

# Untuk 7 hari retention
Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-7) }

Untuk 30 hari dengan pembatasan kuota

Get-ChildItem … | Sort LastWriteTime | Select -Skip 30 | Remove-Item

ℹ️
Best Practice: Sesuaikan retention period dengan:
1. Kapasitas storage
2. Kebijakan compliance perusahaan
3. Frekuensi backup

OtomaX Backup Otomatis SQL Server PowerShell Sinkronisasi Data