Anda dapat membuat cadangan database Spanner apa pun. Pencadangan ini
lengkap, artinya berisi semua data dalam database
(termasuk skema dan indeks sekunder) di version_time
cadangan. Setiap perubahan pada data atau skema setelah version_time
tidak disertakan dalam pencadangan. Pencadangan mencakup semua opsi database yang ditetapkan dengan perintah ALTER DATABASE SET OPTIONS
, tetapi tidak menyertakan kebijakan Identity and Access Management (IAM). Saat Anda membuat cadangan, cadangan berada dalam instance, region, dan project yang sama dengan database sumbernya.
Anda dapat membuat cadangan dengan cara berikut:
- Di Konsol Google Cloud
- Menggunakan Google Cloud CLI
- Menggunakan library klien
- Menggunakan REST atau RPC API
Untuk ringkasan mengenai pencadangan dan pemulihan, lihat Tentang pencadangan dan pemulihan.
Cara kerja pembuatan cadangan
Saat membuat cadangan, Anda harus menentukan database sumber, nama untuk resource cadangan, dan tanggal habis masa berlaku (hingga 1 tahun dari waktu pembuatan cadangan). Secara opsional, Anda juga dapat menentukan
version_time
, yang memungkinkan Anda mencadangkan
database ke waktu sebelumnya. Kolom version_time
biasanya digunakan untuk menyinkronkan cadangan beberapa database atau memulihkan data menggunakan pemulihan point-in-time. Jika version_time
tidak
ditentukan, maka nilai ini akan disetel ke create_time
cadangan. Sistem membuat
resource pencadangan dan
operasi pencadangan yang berjalan lama untuk melacak
progres pencadangan. Cadangan yang baru dibuat berada di instance, region, dan project yang sama dengan database sumbernya.
Untuk memastikan konsistensi eksternal cadangan, Spanner menyematkan
konten database di create_time
. Hal ini mencegah sistem pembersihan sampah memori
menghapus nilai data yang relevan selama durasi operasi
pencadangan. Kemudian, setiap zona baca-tulis dan hanya-baca dalam instance akan mulai menyalin data secara paralel. Jika ada zona yang tidak tersedia untuk sementara, pencadangan tidak akan selesai hingga zona tersebut kembali online dan selesai. Cadangan dapat dipulihkan segera setelah operasi selesai. Untuk instance multi-region, semua zona baca-tulis dan hanya baca di semua region harus menyelesaikan replika pencadangannya sebelum pencadangan ditandai sebagai dapat dipulihkan.
Cadangan juga mencakup skema aliran data perubahan database, tetapi bukan catatan perubahan yang sudah ada. Data aliran data perubahan ditujukan untuk di-streaming dan digunakan secara bersamaan dengan perubahan yang dijelaskannya. Oleh karena itu, Spanner mengecualikan data ini dari cadangan.
Enkripsi
Cadangan Spanner, seperti database, dienkripsi oleh enkripsi yang dikelola Google atau dikelola pelanggan. 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 akan 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.
Hierarki resource
Cadangan merupakan resource di Spanner. Setiap resource cadangan
diatur dalam instance yang sama dengan database sumbernya dalam hierarki resource
dan memiliki jalur resource dalam format projects/<project>/instances/<instance>/backups/<backup>
.
Cadangan akan tetap ada bahkan setelah database sumbernya dihapus, tetapi cadangan tersebut tidak dapat aktif lebih lama dibandingkan instance induknya. Untuk mencegah penghapusan cadangan secara tidak sengaja, Anda tidak dapat menghapus instance Spanner jika ada cadangan. Jika Anda ingin menghapus instance, sebaiknya pulihkan cadangan, lalu ekspor database yang dipulihkan, sebelum menghapus cadangan dan instance.
Waktu pencadangan dan performa
Saat melakukan pencadangan, Spanner membuat tugas pencadangan untuk menyalin data langsung dari database ke penyimpanan cadangan, dan mengukur 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.
Sebagai referensi umum, sebagian besar pencadangan memerlukan waktu 1-4 jam. Beberapa cadangan mungkin memerlukan waktu lebih lama karena ukurannya atau karena ada antrean internal untuk resource. Jika pencadangan memerlukan waktu lebih lama dari biasanya ketika tidak ada faktor lain yang berubah, ini mungkin karena keterlambatan penjadwalan tugas pencadangan di suatu zona. Proses ini terkadang dapat memerlukan waktu hingga 30 menit. Sebaiknya jangan membatalkan dan memulai ulang pencadangan, karena kemungkinan Anda akan mengalami keterlambatan penjadwalan yang sama dengan operasi pencadangan baru.
Kontrol akses (IAM)
Peran spanner.backupAdmin
dan spanner.backupWriter
memberi Anda izin
untuk membuat cadangan. Dengan salah satu peran ini, Anda dapat memanggil permintaan buat pencadangan pada instance. Untuk mengetahui informasi selengkapnya, lihat Kontrol akses dengan IAM.
Harga
Anda ditagih berdasarkan jumlah penyimpanan yang digunakan oleh cadangan Anda per unit waktu. Penagihan dimulai setelah operasi pembuatan pencadangan selesai dan akan berlanjut hingga cadangan dihapus. Pencadangan yang selesai akan ditagih minimal selama 24 jam. Jika Anda membuat cadangan, lalu menghapusnya satu menit setelah pencadangan selesai, Anda tetap akan ditagih selama 24 jam.
Langkah selanjutnya
Pelajari pencadangan dan pemulihan lebih lanjut.
Pelajari cara menangani cadangan menggunakan Konsol Google Cloud.
Pelajari cara menangani cadangan menggunakan Google Cloud CLI.
Pelajari cara menangani cadangan menggunakan library klien.