Ringkasan pencadangan

Dokumen ini memberikan ringkasan tentang pencadangan Spanner dan jadwal pencadangan.

Spanner memungkinkan Anda membuat cadangan penuh database sesuai permintaan dan cadangan penuh atau inkremental menggunakan jadwal pencadangan. Pencadangan penuh menyimpan seluruh data database, sedangkan pencadangan inkremental hanya berisi data yang telah berubah sejak pencadangan sebelumnya.

Anda dapat memulihkan cadangan saat error operator atau aplikasi menyebabkan kerusakan data logis.

Cadangan memiliki ketersediaan tinggi, dienkripsi, dan dapat dipertahankan hingga satu tahun sejak dibuat. Saat Anda membuat cadangan, cadangan tersebut berada di instance, region, dan project yang sama dengan database sumbernya. Jika Anda perlu memulihkan cadangan di region atau project lain karena alasan kepatuhan atau kelangsungan bisnis, Anda dapat menyalin cadangan ke instance di region atau project terpisah.

Setiap cadangan memiliki createTime dan versionTime terkait. createTime adalah stempel waktu saat Spanner mulai membuat cadangan. versionTime adalah stempel waktu saat konten database diambil dalam cadangan. Cadangan berisi tampilan database yang konsisten pada versionTime.

Untuk pencadangan sesuai permintaan, createTime dan versionTime sama secara default. Jika perlu, Anda dapat menentukan versionTime yang lebih lama saat membuat backup sesuai permintaan jika berada dalam periode retensi versi database.

Untuk pencadangan terjadwal, versionTime adalah waktu yang Anda pilih saat membuat jadwal pencadangan. Spanner mulai membuat cadangan dalam waktu empat jam setelah versionTime, sehingga createTime berada dalam periode empat jam ini. Hal ini berbeda dengan pencadangan on-demand, di mana Spanner mulai membuat cadangan saat menerima permintaan.

Misalnya, Anda membuat jadwal pencadangan dengan frekuensi 0 7 * * * UTC atau setiap hari pada pukul 07.00 UTC. Artinya, untuk setiap pencadangan, versionTime ditetapkan ke 07.00 UTC dan createTime adalah stempel waktu dalam periode empat jam antara 07.00 UTC dan 11.00 UTC.

Untuk mengetahui informasi selengkapnya tentang penggunaan createTime dan versionTime menggunakan API, lihat Referensi API Backup.

Fitur utama

  • Konsistensi data: Cadangan database Spanner bersifat konsisten secara transaksi dan eksternal pada versionTime cadangan.

  • Replikasi: Cadangan berada di instance yang sama dengan database sumbernya dan direplikasi di lokasi geografis yang sama. Untuk instance regional, cadangan disimpan di setiap tiga zona baca-tulis. Untuk instance dual-region dan multi-regional, cadangan disimpan di semua zona yang berisi replika baca-tulis atau hanya baca. Jika Anda perlu menyimpan cadangan database di region atau project lain, Anda dapat menyalin cadangan yang telah selesai dari instance sumber ke instance tujuan yang berada di region atau project lain. Untuk mengetahui informasi selengkapnya, lihat menyalin cadangan.

  • Masa berlaku otomatis: Semua cadangan memiliki tanggal habis masa berlaku yang ditentukan pengguna yang menentukan kapan cadangan tersebut dihapus secara otomatis. Spanner menghapus cadangan yang sudah habis masa berlakunya secara asinkron, sehingga mungkin ada jeda waktu antara saat cadangan habis masa berlakunya dan saat cadangan benar-benar dihapus.

Pembuatan cadangan

Saat Anda membuat cadangan, cadangan tersebut berada di instance, region, dan project yang sama dengan database sumbernya.

Cadangan berisi informasi berikut dari database pada versionTime cadangan:

  • Cadangan penuh berisi semua data. Cadangan inkremental hanya berisi data yang telah berubah sejak pencadangan sebelumnya.
  • Informasi skema, termasuk nama tabel, kolom, jenis data, indeks sekunder, aliran perubahan, dan hubungan antara entitas ini.
  • Semua opsi database yang ditetapkan dengan perintah ALTER DATABASE SET OPTIONS.

Cadangan Spanner tidak mencakup informasi berikut:

  • Setiap modifikasi pada data atau skema setelah versionTime.
  • Kebijakan Identity and Access Management (IAM).
  • Mengubah kumpulan data streaming. Meskipun skema aliran perubahan disimpan, data aliran perubahan dimaksudkan untuk dialirkan dan digunakan hampir secara bersamaan dengan perubahan yang dijelaskannya.

Untuk membantu memastikan konsistensi eksternal cadangan, Spanner menyematkan konten database pada versionTime. Tindakan ini mencegah sistem pengumpulan sampah menghapus nilai data yang relevan selama operasi pencadangan. Kemudian, setiap zona baca-tulis dan hanya baca di instance mulai menyalin data secara paralel. Jika ada zona yang tidak tersedia untuk sementara, pencadangan tidak akan selesai hingga zona tersebut kembali online. Cadangan dapat dipulihkan segera setelah operasi selesai. Untuk instance multi-region, semua zona baca-tulis dan hanya baca di semua region harus menyelesaikan replika cadangannya sebelum cadangan ditandai sebagai dapat dipulihkan.

Jadwal pencadangan

Spanner memungkinkan Anda menjadwalkan pencadangan penuh atau inkremental untuk database. Pencadangan inkremental hanya berisi data yang telah berubah sejak pencadangan sebelumnya, sedangkan pencadangan penuh menyimpan seluruh isi database. Anda dapat menentukan jenis jadwal pencadangan (penuh atau inkremental) dan frekuensi agar Spanner membuat cadangan.

Jadwal pencadangan penuh dapat membuat cadangan setiap 12 jam atau lebih. Jadwal pencadangan inkremental dapat membuat cadangan setiap 4 jam atau lebih.

Spanner menawarkan pencadangan inkremental untuk database Anda melalui jadwal pencadangan. Anda tidak dapat membuat cadangan inkremental sesuai permintaan.

Pembuatan cadangan dimulai dalam periode empat jam dari waktu yang dijadwalkan. Anda dapat memiliki maksimum empat jadwal pencadangan per database.

Cadangan inkremental

Pencadangan inkremental membentuk rantai di antara pencadangan penuh. Pencadangan pertama yang dibuat oleh jadwal pencadangan inkremental adalah pencadangan penuh. Pencadangan berurutan yang dibuat dalam rantai adalah pencadangan inkremental, yang masing-masing hanya berisi data yang telah berubah sejak pencadangan sebelumnya dalam rantai.

Spanner mengizinkan hingga 13 pencadangan inkremental per rantai, selain pencadangan penuh awal. Rantai diidentifikasi oleh nilai incrementalBackupChainId yang sesuai. Saat rantai mencapai panjang maksimumnya, Spanner akan membuat rantai baru, dimulai dengan pencadangan penuh awal.

Dalam beberapa skenario, Spanner dapat membuat rantai baru sebelum panjang rantai maksimum terjadi. Berikut beberapa skenarionya:

  • Cadangan penuh terlama diambil 28 hari atau lebih yang lalu.
  • Cadangan terbaru dalam rantai akan dihapus.
  • Jadwal pencadangan inkremental diubah.

Berikut beberapa faktor yang dapat membantu Anda membuat keputusan tentang penggunaan pencadangan inkremental:

  • Enkripsi: Pencadangan inkremental mendukung enkripsi menggunakan Google-owned and Google-managed encryption keys saja, meskipun database dienkripsi oleh kunci enkripsi yang dikelola pelanggan (CMEK).

  • Pemulihan: Memulihkan cadangan inkremental mungkin memerlukan waktu lebih lama daripada memulihkan cadangan penuh yang berisi data yang sama.

  • Penghapusan: Jika Anda menghapus cadangan dalam rantai atau cadangan tersebut berakhir masa berlakunya, Spanner mungkin masih menyimpan cadangan tersebut untuk mendukung cadangan yang lebih baru dalam rantai, jika ada. Spanner memerlukan semua cadangan lama dalam rantai untuk memulihkan cadangan inkremental. Untuk menghapus semua data dalam rangkaian cadangan, termasuk cadangan yang telah habis masa berlakunya atau dihapus, hapus semua cadangan dalam rangkaian.

  • Retensi: Setiap jadwal pencadangan memiliki persyaratan berikut yang menawarkan informasi tentang jadwal:

    • creation_interval: merepresentasikan frekuensi jadwal yang ditentukan untuk jadwal pencadangan.
    • retention_duration: menunjukkan berapa lama cadangan yang dibuat oleh jadwal dipertahankan. Untuk rantai tertentu, cadangan penuh terlama dipertahankan setelah tanggal habis masa berlakunya yang semula jika diperlukan untuk mendukung cadangan yang lebih baru dalam rantai. Total durasi retensi untuk cadangan penuh paling banyak adalah nilai yang lebih rendah dari nilai berikut:
      • retention_duration + 28 hari
      • retention_duration + (creation_interval*14)
  • Salinan cadangan: Saat Anda menyalin cadangan inkremental, Spanner juga menyalin semua cadangan lama dalam rantai yang diperlukan untuk memulihkan cadangan yang disalin. Jika instance tujuan sudah berisi rantai cadangan yang diakhiri dengan cadangan lama yang disalin dari rantai sumber yang sama, Spanner akan menghindari pembuatan salinan cadangan yang berlebihan. Sebagai gantinya, Spanner hanya menyalin cadangan inkremental dan cadangan lama yang tidak ada di rangkaian tujuan, dan menambahkan cadangan ini ke rangkaian yang ada. Spanner menagih Anda berdasarkan total penyimpanan yang digunakan.

    Misalnya, jika Anda menyiapkan jadwal pencadangan inkremental harian dan menyalin cadangan terbaru setiap hari, instance tujuan akan mempertahankan rantai cadangan yang mencerminkan rantai sumber. Spanner tidak menduplikasi cadangan yang sebelumnya disalin dalam rantai selama operasi penyalinan berikutnya.

    Meskipun Spanner berupaya menghindari salinan yang berlebihan, dalam situasi yang jarang terjadi, Spanner mungkin perlu menyalin semua cadangan lama dalam rantai, meskipun cadangan yang sebelumnya disalin sudah ada di instance tujuan.

Untuk mengetahui informasi selengkapnya tentang cara membuat cadangan inkremental, lihat Membuat dan mengelola jadwal pencadangan.

Jadwal pencadangan default

Saat membuat instance Spanner baru, Anda dapat menentukan apakah Anda ingin Spanner membuat jadwal pencadangan default untuk setiap database baru di instance tersebut. Jadwal pencadangan default membuat pencadangan penuh setiap 24 jam. Cadangan ini memiliki periode retensi 7 hari. Anda dapat mengedit atau menghapus jadwal pencadangan default setelah dibuat.

Jadwal pencadangan default diaktifkan secara otomatis untuk semua instance baru. Anda dapat mengaktifkan atau menonaktifkan jadwal pencadangan default dalam instance saat membuat instance atau dengan mengedit instance nanti.

Anda dapat mengaktifkan jadwal pencadangan default untuk instance yang ada. Namun, jadwal pencadangan default tidak berlaku untuk database yang ada di instance. Jadwal pencadangan default hanya berlaku untuk database baru di instance.

Jadwal pencadangan default memerlukan waktu 24 jam untuk menjadi aktif dan mulai membuat pencadangan.

Anda harus menghapus semua cadangan di instance sebelum menghapus instance. Jika Anda membuat dan menghapus instance untuk tujuan pengujian, Anda dapat menghapus instance baru dalam waktu 24 jam untuk menghindari penghapusan cadangannya secara manual.

Untuk mengetahui petunjuk cara mengaktifkan atau menonaktifkan jadwal pencadangan default, lihat Mengedit jenis jadwal pencadangan default.

Biaya penyimpanan untuk pencadangan penuh dan inkremental

Setiap cadangan Spanner memiliki kolom berikut yang menawarkan informasi tentang konsumsi penyimpanan:

  • exclusiveSizeBytes: menampilkan jumlah byte yang diperlukan oleh cadangan. Ukuran ini mewakili ukuran pencadangan yang dapat ditagih.
  • freeableSizeBytes: menampilkan jumlah byte yang dilepaskan jika Anda menghapus cadangan.
  • oldestVersionTime: menampilkan versionTime dari cadangan penuh terlama dalam rantai, meskipun cadangan tersebut telah berakhir. Anda dapat menggunakan kolom ini untuk memahami data mana yang sedang disimpan.

Pencadangan inkremental dapat menghemat biaya penyimpanan Anda. Cadangan inkremental mungkin memiliki kolom exclusiveSizeBytes yang jauh lebih kecil daripada cadangan penuh karena cadangan inkremental hanya perlu menyimpan perubahan sejak cadangan sebelumnya dalam rantai. Menambahkan nilai kolom ini untuk setiap cadangan dalam rantai mencerminkan jumlah total byte yang digunakan oleh cadangan dalam rantai.

Pencadangan inkremental bergantung pada semua pencadangan lama dalam rantai yang sama untuk pemulihan. Artinya, jika ada pencadangan inkremental yang lebih baru, data semua pencadangan yang lebih lama dalam rantai tidak dapat dihapus dari sistem dan kolom freeableSizeBytes untuk semua pencadangan yang lebih lama dalam rantai yang sama adalah nol.

Misalkan Anda membuat jadwal pencadangan penuh dan jadwal pencadangan inkremental untuk database yang berukuran 100 GB dan bertambah 10 GB setiap hari. Tabel berikut menunjukkan kemungkinan biaya penyimpanan untuk jadwal pencadangan ini:

Hari Ukuran cadangan jadwal penuh Ukuran cadangan jadwal inkremental
1 100 GB 100 GB
2 110 GB 10 GB
3 120 GB 10 GB
4 130 GB 10 GB
5 140 GB 10 GB

Selama 5 hari, jadwal pencadangan penuh menggunakan penyimpanan 600 GB, sedangkan jadwal pencadangan inkremental menggunakan penyimpanan sekitar 140 GB. Untuk jadwal pencadangan inkremental, ukuran pencadangan penuh adalah jumlah ukuran semua pencadangan dalam rantai, hingga pencadangan tersebut dan tercermin dalam kolom sizeBytes.

Cara kerja penyalinan cadangan

Spanner memungkinkan Anda menyalin cadangan database Spanner dari satu instance ke instance lain di region atau project yang berbeda, untuk memberikan kemampuan perlindungan dan kepatuhan data tambahan.

Anda tidak dapat menyalin cadangan jika region target atau sumber Google Cloud tidak aktif. Untuk melindungi data Anda jika terjadi pemadaman listrik di suatu region, Anda perlu menyalin cadangan Anda secara berkala ke lokasi di luar region yang terpengaruh.

Cadangan yang disalin memiliki fitur utama yang sama dengan cadangan asli. Selain itu, Anda dapat memulihkan cadangan yang disalin di instance yang sama dengan cadangan yang disalin untuk mendukung kasus penggunaan pencadangan dan pemulihan lintas region dan lintas project.

Tempat penyimpanan cadangan Spanner

Cadangan adalah resource di Spanner. Setiap resource cadangan disusun di instance yang sama dengan database sumbernya dalam hierarki resource dan memiliki jalur resource yang menggunakan format berikut:

projects/PROJECT_ID/instances/INSTANCE_ID/backups/BACKUP_NAME

Ganti kode berikut:

  • PROJECT_ID: project ID.
  • INSTANCE_ID: ID instance.
  • BACKUP_NAME: nama cadangan.

Cadangan akan terus ada meskipun setelah database sumbernya dihapus, tetapi tidak dapat bertahan lebih lama dari instance induknya. Untuk mencegah penghapusan cadangan yang tidak disengaja, Anda tidak dapat menghapus instance Spanner jika instance tersebut memiliki cadangan. Jika Anda ingin menghapus instance, sebaiknya pulihkan cadangan, lalu ekspor database yang dipulihkan, sebelum menghapus cadangan dan instance.

Enkripsi

Pencadangan Spanner, seperti database, dienkripsi oleh Google-owned and Google-managed encryption keys atau oleh kunci enkripsi yang dikelola pelanggan (CMEK). Secara default, cadangan menggunakan konfigurasi enkripsi yang sama dengan databasenya, tetapi Anda dapat mengganti perilaku ini dengan menentukan konfigurasi enkripsi yang berbeda saat membuat cadangan. Jika cadangan mendukung CMEK, cadangan tersebut dienkripsi menggunakan versi utama kunci KMS pada saat pembuatan cadangan. Setelah cadangan dibuat, kunci dan versi kuncinya tidak dapat diubah, meskipun kunci KMS dirotasi. Untuk mengetahui informasi selengkapnya, lihat membuat cadangan yang mendukung CMEK.

Cadangan yang disalin menggunakan konfigurasi enkripsi yang sama, baik Google-owned and Google-managed encryption keys atau kunci enkripsi yang dikelola pelanggan (CMEK), dengan enkripsi cadangan sumbernya. Anda dapat mengganti perilaku ini dengan menentukan konfigurasi enkripsi yang berbeda saat menyalin cadangan. Jika Anda ingin cadangan yang disalin dienkripsi dengan CMEK saat menyalin di seluruh region, tentukan kunci Cloud KMS key yang sesuai dengan region tujuan.

Anda dapat menentukan konfigurasi enkripsi saat membuat atau mengubah jadwal pencadangan. Jika Anda ingin jadwal pencadangan membuat cadangan yang dienkripsi oleh kunci CMEK, Anda harus menentukan jalur kunci.

Cadangan inkremental mendukung enkripsi hanya menggunakan Google-owned and Google-managed encryption keys, meskipun database dienkripsi oleh kunci CMEK.

Performa

Bagian ini menjelaskan performa pencadangan yang optimal di Spanner.

Performa saat mencadangkan

Saat melakukan pencadangan, Spanner membuat tugas pencadangan untuk menyalin data langsung dari database ke penyimpanan cadangan, dan menentukan ukuran tugas ini berdasarkan ukuran database. Tugas pencadangan ini tidak menggunakan resource CPU yang dialokasikan ke instance database, sehingga tidak memengaruhi performa instance. Selain itu, beban komputasi pada instance database tidak memengaruhi kecepatan operasi pencadangan. Untuk melacak progres dan penyelesaian operasi pencadangan, lihat Menampilkan progres pencadangan.

Umumnya, sebagian besar pencadangan memerlukan waktu 1-4 jam. Beberapa pencadangan mungkin membutuhkan waktu lebih lama karena ukurannya atau karena ada antrean internal untuk sumber daya. Jika pencadangan memerlukan waktu lebih lama dari biasanya saat tidak ada faktor lain yang berubah, hal ini mungkin disebabkan oleh penundaan dalam penjadwalan tugas pencadangan di suatu zona. Proses ini terkadang memerlukan waktu hingga 30 menit. Sebaiknya jangan batalkan dan mulai ulang pencadangan, karena kemungkinan Anda akan mengalami penundaan penjadwalan yang sama dengan operasi pencadangan baru.

Performa saat menyalin cadangan

Waktu yang diperlukan untuk menyalin cadangan bergantung pada faktor-faktor seperti ukuran cadangan sumber dan region tujuan yang dipilih untuk cadangan yang disalin. Umumnya, sebagian besar salinan selesai dalam waktu 1-4 jam. Beberapa salinan mungkin memerlukan waktu lebih lama, bergantung pada ukuran cadangan dan region tujuan. Menyalin cadangan tidak memiliki implikasi performa pada instance atau database sumber. Anda dapat membuat beberapa salinan cadangan sumber secara bersamaan ke instance di region yang berbeda tanpa implikasi performa.

Saat Anda menyalin cadangan inkremental, Spanner juga menyalin semua cadangan lama dalam rantai yang diperlukan untuk memulihkan cadangan yang disalin. Untuk meningkatkan performa, Spanner menyalin semua cadangan secara bersamaan dan bukan secara berurutan. Spanner juga mencoba menghindari penyalinan cadangan lama dalam rantai yang sama jika memungkinkan. Untuk mengetahui informasi selengkapnya, lihat Pencadangan inkremental.

Menghapus cadangan

Saat menghapus cadangan inkremental, Anda mungkin tidak memulihkan penyimpanan jika ada cadangan inkremental yang lebih baru dalam rantai yang sama. Pencadangan inkremental yang lebih baru bergantung pada data yang ada dalam pencadangan inkremental yang dihapus dan pencadangan yang lebih lama dalam rantai. Spanner menyimpan data dan hanya melepaskan penyimpanan saat semua cadangan inkremental yang lebih baru berakhir masa berlakunya. Kolom freeableSizeBytes menunjukkan seberapa banyak ruang penyimpanan yang dapat Anda peroleh kembali jika Anda menghapus cadangan.

Harga

Anda akan ditagih berdasarkan jumlah penyimpanan yang digunakan oleh cadangan Anda per unit waktu. Penagihan dimulai setelah operasi pencadangan selesai dan berlanjut hingga pencadangan dihapus. Pencadangan yang selesai akan ditagih minimal 24 jam. Jika Anda membuat cadangan, lalu menghapusnya segera setelah selesai, Anda tetap ditagih selama 24 jam.

Salinan cadangan dikenai biaya penyimpanan yang sama dengan cadangan asli. Jika Anda membuat salinan antara dua instance yang berada di region yang berbeda, maka biaya transfer data keluar akan berlaku.

Misalnya, jika Anda menyalin database dari konfigurasi instance multi-region sumber nam7 ke konfigurasi instance multi-region tujuan nam-eur-asia3, biaya berikut akan berlaku:

  • Tidak ada biaya untuk wilayah us-central1 yang tumpang-tindih
  • Tidak ada biaya untuk wilayah us-central2 saksi
  • Biaya transfer data antarbenua berlaku dua kali: sekali untuk setiap benua baru (Eropa dan Asia)
  • Biaya transfer data antar-region dalam benua yang sama berlaku sekali untuk us-east1
  • Biaya transfer data antar-region dalam benua yang sama berlaku sekali di Eropa

Spanner mengoptimalkan proses penyalinan untuk meminimalkan jumlah transfer antar-region. Hal ini membantu meminimalkan biaya transfer data sekaligus memberikan pengalaman pencadangan salinan yang cepat.

Backup disimpan dan ditagih secara terpisah. Penyimpanan cadangan tidak memengaruhi penagihan untuk penyimpanan database atau batas penyimpanan database. Untuk informasi selengkapnya, lihat juga Metrik pemanfaatan penyimpanan.

Untuk informasi biaya pencadangan yang lebih lengkap, lihat Harga Spanner.

Langkah berikutnya