Perlindungan Data
{{ $health['label'] }}Pantau tiga lapis perlindungan dan kelola arsip pemulihan.
Backup terakhir berhasil
{{ $health['last_success_at']?->translatedFormat('d M Y H:i') ?? 'Belum pernah' }}
{{ $health['last_success_name'] ?? 'Tidak ada berkas' }}
Backup otomatis
{{ $health['automatic_enabled'] ? 'Aktif · '.$health['automatic_time'] : 'Belum diaktifkan' }}
{{ $health['automatic_enabled'] ? 'Dijalankan oleh scheduler hosting.' : 'Aktifkan scheduler di hosting.' }}
Salinan off-site
{{ $health['offsite_enabled'] ? 'Aktif · '.strtoupper($health['offsite_disk']) : 'Belum dikonfigurasi' }}
{{ $health['offsite_last_success_at'] ? 'Tersalin '.$health['offsite_last_success_at']->diffForHumans() : 'Belum ada salinan di luar server.' }}
Snapshot aktif: {{ $snapshotAktif['backup_name'] }} @if (!empty($snapshotAktif['backup_created_at'])) · data backup dibuat {{ \Illuminate\Support\Carbon::parse($snapshotAktif['backup_created_at'])->translatedFormat('d M Y H:i') }} @endif
Dipulihkan {{ \Illuminate\Support\Carbon::parse($snapshotAktif['restored_at'])->diffForHumans() }} @if (!empty($snapshotAktif['restored_by'])) oleh {{ $snapshotAktif['restored_by'] }} @endif. Transaksi baru masuk ke snapshot ini dan tidak otomatis digabungkan jika database dipulihkan ke backup lain.
Kesiapan mesin backup
{{ $kesiapan['siap'] ? 'Database utama dan layanan backup siap digunakan.' : $kesiapan['pesan'] }}
Database operasional
{{ $snapshotAktif ? 'Database aktif berasal dari hasil restore. Rincian dan tindakan pengamanan ditampilkan pada peringatan di atas.' : 'Database utama aktif dan tidak memiliki penanda hasil restore melalui aplikasi.' }}
Kesiapan backup
{{ $kesiapan['pesan'] }}
@if ($kesiapan['siap'])Driver {{ strtoupper($kesiapan['driver']) }} · {{ ($kesiapan['mode'] ?? 'pdo') === 'cli' ? 'MySQL CLI' : 'PHP/PDO' }}
@endifCakupan backup dan pemulihan
Backup mencakup database dan berkas privat. Restore mengembalikan database, sedangkan berkas privat tidak ditimpa.
Sebelum restore, sistem membuat backup pengaman, memeriksa versi struktur, lalu menjalankan migration yang tertinggal.
Pilih salinan yang sehat dan paling dekat dengan waktu kejadian.
| Nama berkas | Ukuran | Dibuat pada | Kompatibilitas | Tindakan |
|---|---|---|---|---|
{{ $backup['nama'] }} |
{{ $backup['ukuran_label'] }} | {{ $backup['dibuat_at']->translatedFormat('d M Y H:i') }} | @php $compat = $backup['kompatibilitas']; $compatClass = match ($compat['status']) { 'cocok' => 'bg-emerald-100 text-emerald-800', 'perlu_migrasi' => 'bg-blue-100 text-blue-800', 'legacy' => 'bg-amber-100 text-amber-800', default => 'bg-red-100 text-red-800', }; @endphp {{ $compat['label'] }} |
Unduh
|
|
|
||||
Tindakan ini akan mengganti seluruh data database saat ini dengan isi backup {{ $pulihkanNama }}.
Aplikasi akan masuk mode maintenance sementara selama proses berlangsung. Sebuah backup pengaman dari kondisi sekarang akan dibuat otomatis sebelum data diganti.
Maintenance
{{ $maintenanceAktif ? 'Aktif — restore diizinkan' : 'Belum aktif — restore diblokir' }}
@if (!$maintenanceAktif)Aktifkan maintenance@endif2FA Superadmin
{{ $twoFactorAktif ? 'Aktif — verifikasi diwajibkan' : 'Belum aktif — restore diblokir' }}
@if (!$twoFactorAktif)Aktifkan 2FA@endifSimulasi dampak restore
Backup dibuat {{ $dampakRestore['dibuat_at']->translatedFormat('d F Y H:i:s') }}. Ada {{ number_format($dampakRestore['jumlah_perubahan'], 0, ',', '.') }} catatan transaksi/pembayaran setelah waktu tersebut yang berpotensi hilang dari database aktif.
@if ($dampakRestore['rincian'])Waktu pembuatan backup lama tidak tersedia. Dampak transaksi setelah backup tidak dapat dihitung; perlakukan sebagai risiko tinggi.
@endif{{ $pulihkanKompatibilitas['pesan'] }}
@if (($pulihkanKompatibilitas['manifest']['application'] ?? null) !== null)Versi aplikasi backup: {{ $pulihkanKompatibilitas['manifest']['application']['version'] ?? 'tidak diketahui' }} · Commit: {{ $pulihkanKompatibilitas['manifest']['application']['commit'] ?? 'tidak diketahui' }}
@endifLengkapi ketiga verifikasi berikut menggunakan akun superadmin yang sedang aktif.