Pencadangan berkelanjutan dengan pemulihan tepat waktu di Azure Cosmos DB

BERLAKU UNTUK: Nosql MongoDB Gremlin Meja

Fitur pemulihan point-in-time Azure Cosmos DB membantu dalam beberapa skenario mencakup:

  • Memulihkan dari operasi tulis atau hapus yang tidak disengaja dalam kontainer.
  • Memulihkan akun, database, atau kontainer yang dihapus.
  • Memulihkan ke wilayah mana pun (di mana cadangan ada) pada titik pemulihan waktu.

Azure Cosmos DB melakukan pencadangan data di latar belakang tanpa menggunakan throughput (RUs) tambahan yang disediakan atau memengaruhi performa dan ketersediaan database Anda. Pencadangan berkelanjutan diambil di setiap wilayah di mana akun tersebut ada. Misalnya, akun dapat memiliki wilayah tulis di US Barat dan membaca wilayah di US Timur dan US Timur 2. Wilayah replika ini kemudian dapat dicadangkan ke akun Azure Storage jarak jauh di setiap wilayah masing-masing. Secara default, setiap wilayah menyimpan cadangan di akun penyimpanan Lokal Redundan. Jika wilayah tersebut mengaktifkan Zona ketersediaan, maka cadangan disimpan di akun penyimpanan Zona Redundan.

Diagram illustrating how a container is backed up across multiple regions.

Jendela waktu yang tersedia untuk pemulihan (juga dikenal sebagai periode retensi) adalah nilai yang lebih rendah dari dua opsi berikut: 30 hari & 7 hari.

Opsi yang dipilih tergantung pada tingkat pencadangan berkelanjutan yang dipilih. Titik waktu untuk pemulihan dapat menjadi tanda waktu apa pun dalam periode retensi tidak lebih jauh dari titik ketika sumber daya dibuat. Dalam mode konsistensi yang kuat, pencadangan yang dilakukan di wilayah penulisan lebih terkini jika dibandingkan dengan wilayah baca. Wilayah baca bisa mengalami lag karena jaringan atau masalah sementara lainnya. Saat melakukan pemulihan, Anda bisa mendapatkan tanda waktu terbaru yang dapat dipulihkan untuk sumber daya tertentu di wilayah tertentu. Dengan mendapatkan stempel waktu terbaru memastikan bahwa sumber daya telah dilakukan pencadangan pada stempel waktu yang diberikan, dan dapat dipulihkan di wilayah tersebut.

Saat ini, Anda dapat memulihkan konten akun Azure Cosmos DB (API untuk NoSQL atau MongoDB, API untuk Tabel, API untuk Gremlin) pada titik waktu tertentu ke akun lain. Anda dapat melakukan operasi pemulihan ini melalui templat portal Azure, Azure CLI (Azure CLI), Azure PowerShell, atau Azure Resource Manager.

Redundansi penyimpanan cadangan

Secara default, Azure Cosmos DB menyimpan data cadangan mode berkelanjutan dalam blob penyimpanan yang berlebihan secara lokal. Untuk wilayah yang memiliki zona redundansi dikonfigurasi, cadangan disimpan dalam blob penyimpanan zona-redundan. Dalam mode pencadangan berkelanjutan, Anda tidak dapat memperbarui redundansi penyimpanan cadangan.

Berbagai cara untuk memulihkan

Mode pencadangan berkelanjutan mendukung dua cara untuk memulihkan kontainer dan database yang dihapus. Mereka dapat dipulihkan ke akun baru seperti yang didokumenkan di sini atau dapat dipulihkan ke akun yang sudah ada seperti yang dijelaskan di sini. Pilihan antara keduanya tergantung pada skenario dan dampaknya. Dalam kebanyakan kasus, lebih disukai untuk memulihkan kontainer dan database yang dihapus ke akun yang ada untuk mencegah biaya transfer data yang diperlukan jika dipulihkan ke akun baru. Untuk skenario di mana Anda telah memodifikasi pemulihan data secara tidak sengaja ke akun baru bisa menjadi opsi yang disukai.

Apa yang dipulihkan ke akun baru?

Dalam keadaan stabil, semua mutasi yang dilakukan pada akun sumber (termasuk database, kontainer, dan item) dicadangkan secara asinkron dalam waktu 100 detik. Jika media cadangan Azure Storage tidak berfungsi atau tidak tersedia, mutasi tetap ada secara lokal hingga media tersedia. Kemudian, mutasi dipaksa keluar untuk mencegah hilangnya ketepatan operasi yang dapat dipulihkan.

Anda dapat memilih untuk memulihkan kombinasi kontainer throughput yang disediakan, database throughput bersama, atau seluruh akun. Tindakan pemulihan memulihkan semua data dan properti indeksnya ke akun baru. Proses pemulihan memastikan bahwa semua data yang dipulihkan dalam akun, database, atau kontainer dijamin konsisten hingga waktu pemulihan yang ditentukan. Durasi pemulihan akan tergantung pada jumlah data yang perlu dipulihkan. Pengaturan konsistensi akun database yang baru dipulihkan akan sama dengan pengaturan konsistensi akun database sumber.

Catatan

Dengan mode pencadangan berkelanjutan, cadangan diambil di setiap wilayah di mana akun Azure Cosmos DB Anda tersedia. Cadangan yang diambil untuk setiap akun wilayah adalah Lokal redundan secara default dan Zona redundan jika akun Anda memiliki fitur zona ketersediaan yang diaktifkan untuk wilayah tersebut. Tindakan pemulihan selalu memulihkan data ke akun baru.

Apa yang tidak dipulihkan?

Konfigurasi berikut ini tidak dipulihkan setelah pemulihan titik waktu:

  • Subset kontainer di bawah database throughput bersama tidak dapat dipulihkan. Seluruh database dapat dipulihkan secara keseluruhan.
  • Firewall, VNET, RBAC sarana data, atau pengaturan titik akhir privat.
  • Semua Wilayah dari akun sumber.
  • Prosedur, pemicu, UDF tersimpan.
  • Penetapan kontrol akses berbasis peran. Ini harus ditetapkan kembali.

Anda dapat menambahkan konfigurasi ini ke akun yang dipulihkan setelah pemulihan selesai.

Tanda waktu yang dapat dipulihkan untuk akun live

Untuk memulihkan akun live Azure Cosmos DB yang tidak dihapus, sebaiknya selalu mengidentifikasi tanda waktu terbaru yang dapat dipulihkan untuk kontainer. Kemudian Anda dapat menggunakan stempel waktu ini untuk memulihkan akun ke versi terbarunya.

Skenario pemulihan

Berikut ini adalah beberapa skenario utama yang dibahas oleh fitur pemulihan titik waktu. Skenario [1] hingga [3] menunjukkan cara memicu pemulihan jika stempel waktu pemulihan diketahui sebelumnya. Namun, mungkin ada skenario di mana Anda tidak tahu waktu pasti penghapusan atau kerusakan yang tidak disengaja. Skenario [4] dan [5] menunjukkan cara menemukan stempel waktu pemulihan menggunakan API umpan peristiwa baru pada database atau kontainer yang dapat dipulihkan.

Life-cycle events with timestamps for a restorable account.

  1. Memulihkan akun yang dihapus - Semua akun terhapus yang bisa Anda pulihkan terlihat dari panel Pulihkan. Misalnya, jika Akun A dihapus pada tanda waktu T3. Dalam hal ini tanda waktu tepat sebelum T3, lokasi, nama akun target, grup sumber daya, dan nama akun target cukup untuk dipulihkan dari portal Microsoft Azure, PowerShell, atau CLI.

    Life-cycle events with timestamps for a restorable database and container.

  2. Memulihkan data akun di wilayah tertentu - Misalnya, jika Akun A ada di dua wilayah AS Timur dan AS Barat pada tanda waktu T3. Jika Anda memerlukan salinan akun A di AS Barat, Anda dapat melakukan pemulihan titik waktu dari portal Microsoft Azure, PowerShell, atau CLI dengan AS Barat sebagai lokasi target.

  3. Memulihkan dari operasi tulis atau hapus yang tidak disengaja dalam kontainer dengan tanda waktu pemulihan yang diketahui - Misalnya, jika Anda tahu bahwa konten Kontainer 1 dalam Database 1 dimodifikasi secara tidak sengaja pada tanda waktu T3. Anda dapat melakukan pemulihan titik waktu dari portal Microsoft Azure, PowerShell, atau CLI ke akun lain pada tanda waktu T3 untuk memulihkan status kontainer yang diinginkan.

  4. Memulihkan akun ke titik waktu sebelumnya sebelum penghapusan database yang tidak disengaja - Di portal Microsoft Azure, Anda bisa menggunakan panel umpan peristiwa untuk menentukan kapan database dihapus dan menemukan waktu pemulihan. Demikian pula, dengan Azure CLI dan PowerShell, Anda dapat menemukan peristiwa penghapusan database dengan menghitung umpan peristiwa database dan kemudian memicu perintah pemulihan dengan parameter yang diperlukan.

  5. Memulihkan akun ke titik waktu sebelumnya sebelum penghapusan atau memodifikasi properti kontainer yang tidak disengaja. - Di portal Microsoft Azure, Anda dapat menggunakan panel umpan peristiwa untuk menentukan kapan kontainer dibuat, dimodifikasi, atau dihapus guna menemukan waktu pemulihan. Demikian pula, dengan Azure CLI dan PowerShell, Anda dapat menemukan peristiwa kontainer dengan menghitung umpan peristiwa kontainer dan kemudian memicu perintah pemulihan dengan parameter yang diperlukan.

Izin

Azure Cosmos DB memungkinkan Anda mengisolasi dan membatasi izin pemulihan untuk akun cadangan berkelanjutan ke peran tertentu atau utama. Untuk mempelajari selengkapnya, lihat artikel Izin.

Harga

Akun Azure Cosmos DB yang memiliki pencadangan terus menerus selama 30 hari akan dikenakan biaya bulanan tambahan untuk menyimpan cadangan. Baik tingkat 30 hari maupun 7 hari dari penagihan balik berkelanjutan untuk memulihkan data Anda. Biaya pemulihan ditambahkan setiap kali operasi pemulihan dimulai. Jika Anda mengonfigurasi akun dengan pencadangan berkelanjutan tetapi tidak memulihkan data, hanya biaya penyimpanan cadangan yang disertakan dalam tagihan Anda.

Contoh berikut didasarkan pada harga untuk akun Azure Cosmos DB yang disebarkan di AS Barat. Harga dan perhitungan bervariasi, tergantung wilayah yang Anda gunakan, lihat halaman harga Azure Cosmos DB untuk informasi harga terbaru.

  • Semua akun yang diaktifkan dengan kebijakan pencadangan berkelanjutan selama 30 hari dikenakan biaya bulanan untuk penyimpanan cadangan yang dihitung sebagai berikut:

    $0.20/GB * Ukuran data dalam GB dalam akun * Jumlah wilayah

  • Setiap pemanggilan API pemulihan dikenakan biaya satu kali. Biaya adalah fungsi dari jumlah pemulihan data dan dihitung sebagai berikut:

    $0.15/GB * Ukuran data dalam GB.

Misalnya, jika Anda memiliki data 1 TB di dua wilayah, maka:

  • Biaya Microsoft Azure Backup dihitung sebagai (1000 * 0.20 * 2) = $400 per bulan

  • Biaya pemulihan dihitung sebagai (1000 * 0.15) = $150 per pemulihan

Tip

Untuk informasi selengkapnya tentang mengukur penggunaan data akun Azure Cosmos DB Anda saat ini, lihat Menjelajahi wawasan Azure Monitor Azure Cosmos DB. Tingkat 7 hari berkelanjutan tidak dikenakan biaya untuk pencadangan data.

Tingkat berkelanjutan 30 hari vs tingkat 7 hari berkelanjutan

  • Periode retensi untuk satu tingkat adalah 30 hari vs 7 hari untuk tingkat lain.
  • Tingkat retensi 30 hari dikenakan biaya untuk penyimpanan cadangan, tingkat retensi 7 hari tidak dikenakan biaya.
  • Pemulihan selalu dibebankan di salah satu tingkatan

Kunci yang dikelola pelanggan

Lihat Bagaimana kunci yang dikelola pelanggan memengaruhi pencadangan berkala? untuk mempelajari:

  • Cara mengonfigurasi akun Azure Cosmos DB Anda saat menggunakan kunci yang dikelola pelanggan dengan pencadangan berkala.
  • Bagaimana kunci yang dikelola pelanggan memengaruhi pencadangan?

Batasan saat ini

Saat ini, fungsionalitas pemulihan titik waktu berada di pratinjau publik dan memiliki batasan berikut:

  • API Azure Cosmos DB untuk SQL, MongoDB, Gremlin, dan Tabel yang didukung untuk pencadangan berkelanjutan. API untuk Cassandra tidak didukung sekarang.

  • Akun tulis multi-wilayah tidak didukung.

  • Saat ini Azure Synapse Link dapat diaktifkan di akun database cadangan berkelanjutan. Tetapi situasi yang berlawanan belum didukung, tidak dimungkinkan untuk mengaktifkan pencadangan berkelanjutan di akun database yang diaktifkan Synapse Link. Dan penyimpanan analitis tidak disertakan dalam cadangan. Untuk informasi selengkapnya tentang pencadangan dan penyimpanan analitis, lihat pencadangan penyimpanan analitis.

  • Akun yang dipulihkan dibuat di wilayah yang sama di mana akun sumber Anda berada. Anda tidak dapat memulihkan akun ke wilayah di mana akun sumber tidak ada.

  • Jendela pemulihan hanya 30 hari untuk tingkat 30 hari berkelanjutan dan tujuh hari untuk tingkat 7 hari berkelanjutan. Tingkatan ini dapat dialihkan, tetapi jumlah aktual (7 atau 30) tidak dapat diubah. Selain itu, jika Anda beralih dari tingkat 30 hari ke tingkat 7 hari, ada potensi kehilangan data pada hari di luar ketujuh.

  • Cadangan tidak secara otomatis tahan terhadap bencana alam. Secara eksplisit, Anda harus menambahkan wilayah lain untuk memiliki ketahanan terhadap akun dan cadangan.

  • Jangan memodifikasi atau menghapus kebijakan (IAM) Manajemen Identitas & Akses ketika sedang berlangsung pemulihan. Kebijakan ini memberikan izin bagi akun untuk mengubah VNET, konfigurasi firewall apa pun.

  • Akun Azure Cosmos DB untuk MongoDB dengan pencadangan berkelanjutan tidak mendukung pembuatan indeks unik untuk koleksi yang ada. Untuk akun seperti itu, indeks unik harus dibuat bersama dengan koleksinya; ini dilakukan menggunakan perintah buat ekstensi koleksi.

  • Fungsionalitas pemulihan point-in-time selalu dipulihkan ke akun Azure Cosmos DB baru. Saat ini memulihkan ke akun yang ada tidak didukung. Jika Anda tertarik untuk memberikan umpan balik tentang pemulihan di tempat, hubungi tim Azure Cosmos DB melalui perwakilan akun Anda.

  • Setelah pemulihan, ada kemungkinan bahwa untuk kumpulani tertentu, indeks yang konsisten dapat dibangun kembali. Anda dapat memeriksa status operasi pembangunan kembali melalui properti IndexTransformationProgress.

  • Proses pemulihan memulihkan semua properti kontainer, termasuk konfigurasi TTL. Akibatnya, ada kemungkinan data yang dipulihkan segera dihapus jika Anda mengonfigurasinya seperti itu. Untuk mencegah situasi ini, tanda waktu pemulihan harus sebelum properti TTL ditambahkan ke dalam kontainer.

  • Indeks unik di API untuk MongoDB tidak dapat ditambahkan atau diperbarui saat Anda membuat akun mode pencadangan berkelanjutan. Mereka juga tidak dapat dimodifikasi saat Anda memigrasikan akun dari mode berkala ke berkelanjutan.

  • Pemulihan mode berkelanjutan mungkin tidak mengembalikan pengaturan throughput yang valid sesuai titik pemulihan.

Langkah berikutnya