Hampir setiap orang yang pernah mengendalikan pelayan pernah mendengar atau mengalami kisah yang sama: satu arahan tersalah taip, satu pemadaman tanpa melihat direktori dengan teliti, satu skrip pemindahan yang menimpa pangkalan data produksi — dan bertahun-tahun data lenyap dalam beberapa saat. Yang benar-benar membezakan "sekadar terkejut" daripada "malapetaka" bukanlah nasib, tetapi ada atau tiadanya sandaran yang boleh digunakan.

Bezakan dahulu syot kilat dan sandaran

Ramai menyangka menghidupkan syot kilat sudah memadai, sedangkan kedua-duanya berlainan peranan:

  • Syot kilat (Snapshot): imej keseluruhan mesin pada satu ketika, pantas dipulihkan dan sesuai sebagai "butang buat asal" sebelum naik taraf sistem atau perubahan besar. Namun ia biasanya disimpan pada infrastruktur yang sama dengan instance, dan berbutir terlalu kasar untuk memulihkan satu fail sahaja.
  • Sandaran (Backup): salinan pada peringkat fail yang boleh disimpan di tempat lain dan menyokong beberapa versi sejarah — alat yang betul terhadap pemadaman tidak sengaja, kerosakan data dan perisian tebusan.

Kesimpulannya: anda perlukan kedua-duanya, dan satu tidak boleh menggantikan yang lain.

Peraturan 3-2-1 masih rangka kerja paling berguna

  • 3 salinan data: data produksi serta dua sandaran.
  • 2 jenis media atau lokasi: jangan simpan sandaran pada mesin atau cakera yang sama dengan sumbernya.
  • 1 salinan di luar tapak: sekurang-kurangnya satu pada penyedia atau wilayah berbeza, supaya satu kegagalan atau masalah akaun tidak memusnahkan segalanya.

Cara melaksanakannya

  • Sandarkan pangkalan data secara logik: menyalin direktori data sering menghasilkan keadaan tidak konsisten. Eksport dengan mysqldump, pg_dump atau setara, kemudian mampatkan arkibnya.
  • Gunakan alat sandaran tokokan: restic dan borg menyokong penyahduaan, tokokan dan penyulitan, jadi menyimpan banyak versi dalam jangka panjang memerlukan ruang jauh lebih kecil berbanding salinan penuh setiap hari.
  • Automasikan mengikut jadual: gunakan cron atau pemasa systemd yang berjalan setiap hari. Sandaran manual pasti akan terlupa.
  • Sulitkan sebelum menghantar ke luar tapak: sandaran selalunya mengandungi data pengguna dan bukti kelayakan, jadi sulitkan sebelum memuat naik ke storan objek.
  • Tetapkan dasar penyimpanan: contohnya tujuh sandaran harian, empat mingguan, enam bulanan — supaya storan tidak membengkak tanpa had.
  • Pantau sama ada sandaran berjaya: tugas berjadual yang gagal secara senyap lebih berbahaya daripada tiada sandaran langsung — kerana anda menyangka ia ada. Tetapkan amaran bagi kegagalan.

Langkah paling penting: latihan pemulihan berkala

Inilah bahagian yang paling kerap dilangkau, namun paling tidak sepatutnya dilangkau. Sandaran yang laluan pemulihannya tidak pernah diuji bukanlah sandaran. Sekali setiap suku tahun, luangkan setengah jam untuk memulihkan sandaran terkini sepenuhnya pada instance sementara: sahkan data lengkap, perkhidmatan boleh dihidupkan, dan anda masih ingat langkah-langkahnya. Pada hari ia benar-benar diperlukan, anda mahukan prosedur yang pernah dilatih, bukan timbunan arkib yang tidak pernah dibuka sesiapa.

SharkCloud menyokong syot kilat instance dan saiz sumber yang fleksibel, jadi anda boleh menghidupkan instance sementara untuk latihan pemulihan pada bila-bila masa — harga kecil untuk kepastian bahawa anda benar-benar boleh memulihkan data.