Cara Backup Otomatis Database OtomaX dan Sinkron ke Komputer Lain

  1. Software  
  2. 4 hari yang lalu

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