Dokumen ini memberikan ringkasan tentang pencadangan Spanner dan jadwal pencadangan.
Spanner memungkinkan Anda membuat cadangan lengkap database sesuai permintaan dan cadangan lengkap 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 pencadangan saat error operator atau aplikasi menyebabkan kerusakan data logis.
Cadangan sangat tersedia, dienkripsi, dan dapat disimpan hingga satu tahun sejak dibuat. Saat Anda membuat cadangan, cadangan tersebut akan berada di instance, region, dan project yang sama dengan database sumbernya. Jika 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.
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-region, pencadangan disimpan di semua zona yang berisi replika baca-tulis atau hanya baca. Jika perlu menyimpan cadangan database di region atau project yang berbeda, Anda dapat menyalin cadangan yang telah selesai dari instance sumber ke instance tujuan yang berada di region atau project yang berbeda. Untuk informasi selengkapnya, lihat menyalin cadangan.
Masa berlaku otomatis: Semua cadangan memiliki tanggal habis masa berlaku yang ditentukan pengguna yang menentukan kapan cadangan akan otomatis dihapus. Spanner menghapus cadangan yang sudah tidak berlaku 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 akan berada di instance,
region, dan project yang sama dengan database sumbernya. Cadangan berisi informasi
berikut dari database di
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 entity ini.
- Semua opsi database yang ditetapkan dengan perintah
ALTER DATABASE SET OPTIONS
.
Cadangan Spanner tidak menyertakan 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 di-streaming dan digunakan secara hampir bersamaan dengan perubahan yang dijelaskannya.
Untuk membantu memastikan konsistensi eksternal cadangan, Spanner menyematkan
konten database di
versionTime
.
Tindakan ini mencegah sistem pembersihan
sampah menghapus nilai data yang relevan selama durasi operasi
pencadangan. Kemudian, setiap zona baca-tulis dan hanya baca di instance mulai
menyalin data secara paralel. Jika zona tidak tersedia untuk sementara, pencadangan
tidak akan selesai hingga zona kembali online. Pencadangan 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 lengkap atau inkremental untuk database. Cadangan inkremental hanya berisi data yang telah berubah sejak pencadangan sebelumnya, sedangkan pencadangan penuh menyimpan seluruh konten database. Anda dapat menentukan jenis jadwal pencadangan (penuh atau inkremental) dan frekuensi untuk 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 pencadangan dimulai dalam periode empat jam dari waktu yang dijadwalkan. Anda dapat memiliki maksimal empat jadwal pencadangan per database.
Cadangan inkremental
Cadangan inkremental membentuk rantai di antara pencadangan penuh. Pencadangan pertama yang dibuat oleh jadwal pencadangan inkremental adalah pencadangan penuh. Pencadangan berturut-turut yang dibuat dalam rantai adalah pencadangan inkremental, dan 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 mungkin membuat rantai baru sebelum panjang rantai maksimum terjadi. Berikut adalah beberapa skenarionya:
- Cadangan penuh terlama diambil 28 hari yang lalu atau lebih.
- 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 hanya mendukung enkripsi menggunakan kunci yang dikelola Google, meskipun database dienkripsi oleh kunci enkripsi yang dikelola pelanggan (CMEK).
Pemulihan: Pemulihan cadangan inkremental mungkin memerlukan waktu lebih lama daripada pemulihan cadangan penuh yang berisi data yang sama.
Penghapusan: Jika Anda menghapus cadangan dalam rantai atau masa berlakunya habis, Spanner mungkin masih menyimpan cadangan untuk mendukung cadangan yang lebih baru dalam rantai, jika ada. Spanner memerlukan semua pencadangan lama dalam rantai untuk memulihkan pencadangan inkremental. Untuk menghapus semua data dalam rantai cadangan, termasuk cadangan yang sudah tidak berlaku atau dihapus, hapus semua cadangan dalam rantai.
Retensi: Setiap jadwal pencadangan memiliki istilah berikut yang menawarkan informasi tentang jadwal:
creation_interval
: mewakili frekuensi jadwal yang ditentukan untuk jadwal pencadangan.retention_duration
: menunjukkan berapa lama cadangan yang dibuat oleh jadwal disimpan. Untuk rantai tertentu, cadangan penuh terlama akan dipertahankan setelah tanggal habis masa berlakunya asli jika diperlukan untuk mendukung cadangan yang lebih baru dalam rantai. Total durasi retensi untuk pencadangan penuh paling banyak adalah nilai yang lebih rendah dari nilai berikut:retention_duration
+ 28 hariretention_duration
+ (creation_interval
*14)
Salinan cadangan: Saat Anda menyalin cadangan inkremental, Spanner akan menyalin rantai cadangan, mulai dari pencadangan penuh awal dan berakhir dengan pencadangan inkremental tertentu yang ingin Anda salin. Spanner akan menagih Anda berdasarkan total penyimpanan yang digunakan.
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 dalam instance. 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 di 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 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 tentang 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 cadangan yang dapat ditagih.freeableSizeBytes
: menampilkan jumlah byte yang dirilis jika Anda menghapus cadangan.oldestVersionTime
: menampilkanversionTime
cadangan lengkap terlama dalam rantai, meskipun masa berlaku cadangan tersebut telah berakhir. Anda dapat menggunakan kolom ini untuk memahami data mana yang 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.
Cadangan inkremental bergantung pada semua cadangan lama dalam rantai yang sama
untuk pemulihan.
Artinya, jika ada pencadangan inkremental yang lebih baru, data semua cadangan
lama dalam rantai tidak dapat dihapus dari sistem dan kolom freeableSizeBytes
untuk semua cadangan lama dalam rantai yang sama adalah nol.
Misalnya, Anda membuat jadwal pencadangan penuh dan jadwal pencadangan inkremental untuk database yang berukuran 100 GB dan bertambah sebesar 10 GB setiap hari. Tabel berikut menunjukkan kemungkinan biaya penyimpanan untuk jadwal pencadangan ini:
Hari | Ukuran pencadangan jadwal penuh | Ukuran pencadangan 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 sebesar 600 GB, sedangkan
jadwal pencadangan inkremental menggunakan penyimpanan sekitar 140 GB.
Untuk jadwal pencadangan inkremental, ukuran cadangan penuh adalah jumlah ukuran
semua cadangan dalam rantai, hingga cadangan tersebut dan tercermin dalam
kolom sizeBytes
.
Cara kerja penyalinan cadangan
Pencadangan dan pemulihan Spanner memungkinkan Anda menyalin cadangan database Spanner dari satu instance ke instance lain di region atau project yang berbeda, untuk memberikan kemampuan kepatuhan dan perlindungan data tambahan. Cadangan yang disalin memiliki fitur utama yang sama dengan cadangan asli. Selain itu, Anda dapat restore cadangan yang disalin di instance yang sama dengan cadangan yang disalin untuk mendukung kasus penggunaan cadangan dan pemulihan lintas region dan lintas project.
Tempat penyimpanan cadangan Spanner
Cadangan adalah resource di Spanner. Setiap resource cadangan diatur di bawah 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 tetap ada meskipun database sumbernya telah dihapus, tetapi cadangan tidak dapat bertahan lebih lama dari instance induknya. Untuk mencegah penghapusan cadangan secara tidak sengaja, Anda tidak dapat menghapus instance Spanner jika 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 kunci enkripsi yang dikelola Google atau kunci enkripsi yang dikelola pelanggan (CMEK). Secara default, cadangan menggunakan konfigurasi enkripsi yang sama dengan database-nya, tetapi Anda dapat mengganti perilaku ini dengan menentukan konfigurasi enkripsi yang berbeda saat membuat cadangan. Jika cadangan mengaktifkan CMEK, cadangan tersebut akan dienkripsi menggunakan kunci KMS versi utama pada saat pembuatan cadangan. Setelah cadangan dibuat, kunci dan versi kuncinya tidak dapat diubah, meskipun kunci KMS dirotasi. Untuk informasi selengkapnya, lihat membuat cadangan yang mendukung CMEK.
Cadangan yang disalin menggunakan konfigurasi enkripsi yang sama, baik yang dikelola Google maupun yang dikelola pelanggan (CMEK), sebagai 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 kunci Cloud KMS 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.
Pencadangan inkremental mendukung enkripsi hanya menggunakan kunci yang dikelola Google, 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 memerlukan waktu lebih lama karena ukurannya atau karena ada antrean internal untuk resource. Jika pencadangan memerlukan waktu lebih lama dari biasanya tanpa ada faktor lain yang berubah, hal ini mungkin disebabkan oleh penundaan penjadwalan tugas pencadangan di zona. Proses ini terkadang memerlukan waktu hingga 30 menit. Sebaiknya jangan batalkan dan mulai ulang pencadangan, karena Anda mungkin akan mengalami penundaan penjadwalan yang sama dengan operasi pencadangan baru.
Performa saat menyalin cadangan
Waktu yang diperlukan untuk menyalin cadangan bergantung pada 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 akan memengaruhi performa pada instance atau database sumber. Anda dapat membuat beberapa salinan cadangan sumber secara serentak ke instance di region yang berbeda tanpa masalah implikasi performa.
Saat Anda menyalin cadangan inkremental, Spanner juga akan menyalin semua cadangan lama dalam rantai. Daripada menyalin rantai pencadangan satu per satu, Spanner menyalin semua pencadangan secara bersamaan untuk meningkatkan performa.
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 mempertahankan
data dan hanya melepaskan penyimpanan saat semua cadangan inkremental yang lebih baru habis masa berlakunya.
Kolom freeableSizeBytes
menunjukkan jumlah ruang penyimpanan yang dapat Anda peroleh kembali jika
menghapus cadangan.
Harga
Anda ditagih berdasarkan jumlah penyimpanan yang digunakan oleh cadangan per unit waktu. Penagihan dimulai setelah operasi pencadangan selesai dan berlanjut hingga pencadangan dihapus. Pencadangan yang telah selesai akan ditagih minimal 24 jam. Jika Anda membuat cadangan, lalu segera menghapusnya setelah selesai, Anda tetap akan ditagih selama 24 jam.
Salinan cadangan dikenai biaya penyimpanan yang sama seperti cadangan asli. Jika Anda membuat salinan antara dua instance yang menempati region yang berbeda, 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
, tarif berikut akan berlaku:
- Tidak ada biaya untuk region
us-central1
yang tumpang-tindih - Tidak ada biaya untuk region saksi
us-central2
- 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 lintas wilayah. Hal ini membantu meminimalkan biaya transfer data sekaligus memberikan pengalaman pencadangan salinan yang cepat.
Pencadangan disimpan dan ditagih secara terpisah. Penyimpanan cadangan tidak memengaruhi penagihan untuk penyimpanan database atau batas penyimpanan database. Untuk informasi selengkapnya, lihat juga Metrik penggunaan penyimpanan.
Untuk informasi biaya pencadangan yang lebih lengkap, lihat Harga Spanner.
Langkah selanjutnya
Untuk membuat cadangan, lihat Membuat cadangan.
Untuk mengelola pencadangan, lihat Mengelola pencadangan.