Pulihkan akun Azure Cosmos DB yang menggunakan mode cadangan berkelanjutan

BERLAKU UNTUK: Nosql MongoDB Gremlin Meja

Fitur pemulihan titik waktu Microsoft Azure Cosmos DB membantu Anda memulihkan dari perubahan yang tidak disengaja dalam kontainer, untuk memulihkan akun, database, atau kontainer yang dihapus atau untuk memulihkan ke wilayah mana pun (tempat cadangan berada). Mode pencadangan berkelanjutan memungkinkan Anda melakukan pemulihan point in time apa pun dalam 30 hari terakhir.

Artikel ini menjelaskan cara mengidentifikasi waktu pemulihan dan memulihkan akun Azure Cosmos DB yang aktif atau dihapus. Ini menunjukkan cara memulihkan akun menggunakan templat portal Azure, PowerShell, CLI, atau Azure Resource Manager.

Memulihkan akun menggunakan portal Microsoft Azure

Memulihkan akun live dari perubahan yang tidak disengaja

Anda dapat menggunakan portal Microsoft Azure untuk memulihkan seluruh akun aktif atau database dan kontainer yang dipilih di bawahnya. Coba langkah-langkah berikut untuk mengatasi masalah ini.

  1. Masuk ke portal Azure.

  2. Buka akun Azure Cosmos DB Anda dan buka panel Pemulihan Titik Waktu.

    Catatan

    Panel pemulihan portal Microsoft Azure diisi hanya jika Anda memiliki izin Microsoft.DocumentDB/locations/restorableDatabaseAccounts/*/read. Untuk mempelajari selengkapnya tentang cara mengatur izin ini, lihat artikel Pencadangan dan pemulihan izin.

  3. Isilah detail berikut untuk memulihkan:

    • Restore Point (UTC) – Tanda waktu dalam 30 hari terakhir. Akun harus ada pada tanda waktu tersebut. Anda dapat menentukan titik pemulihan di UTC. Penentuannya bisa sedekat mungkin dengan yang kedua ketika Anda ingin memulihkannya. Pilih tautan Klik di sini untuk mendapatkan bantuan tentang mengenali titik pemulihan.

    • Lokasi – Wilayah tujuan tempat akun dipulihkan. Akun harus ada di wilayah ini pada tanda waktu yang diberikan (misalnya, AS Barat atau AS Timur). Akun hanya dapat dipulihkan ke wilayah tempat akun sumber berada.

    • Pulihkan Sumber Daya – Anda dapat memilih Seluruh akun atau kontainer/database yang dipilih untuk memulihkan. Database dan kontainer harus ada pada tanda waktu yang diberikan. Berdasarkan titik pemulihan dan lokasi yang dipilih, sumber daya pemulihan diisi, yang memungkinkan pengguna untuk memilih database atau kontainer tertentu yang perlu dipulihkan.

    • Grup sumber daya - Grup sumber daya tempat akun target akan dibuat dan dipulihkan. Grup sumber daya harus sudah ada.

    • Pulihkan Akun Target – Nama akun target. Nama akun target harus mengikuti panduan yang sama seperti saat Anda membuat akun baru. Akun ini akan dibuat oleh proses pemulihan di wilayah yang sama tempat akun sumber Anda berada.

    Pulihkan akun langsung ketika terjadi modifikasi portal Microsoft Azure yang tidak disengaja.

  4. Setelah Anda memilih parameter di atas, pilih tombol Kirim untuk memulai pemulihan. Biaya pemulihan ditagihkan satu kali, yang didasarkan pada jumlah data dan biaya penyimpanan cadangan di wilayah tertentu. Untuk mempelajari selengkapnya, lihat bagian Harga.

Menghapus akun sumber saat pemulihan sedang berlangsung dapat mengakibatkan kegagalan pemulihan.

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.

Gunakan umpan peristiwa untuk mengidentifikasi waktu pemulihan

Saat mengisi waktu titik pemulihan di portal Microsoft Azure, jika Anda memerlukan bantuan untuk mengidentifikasi titik pemulihan, pilih tautan Klik di sini, tautan ini akan membawa Anda ke panel umpan peristiwa. Umpan peristiwa menyediakan daftar akurat penuh untuk membuat, mengganti, menghapus peristiwa pada database dan kontainer akun sumber.

Misalnya, jika Anda ingin memulihkan ke titik sebelum kontainer tertentu dihapus atau diperbarui, periksa umpan peristiwa ini. Peristiwa ditampilkan dalam urutan waktu turun kronologis ketika mereka terjadi, dengan peristiwa baru-baru ini di bagian atas. Anda dapat menelusuri hasilnya dan memilih waktu sebelum atau sesudah acara untuk mempersempit waktu Anda lebih lanjut.

Gunakan umpan peristiwa untuk mengidentifikasi waktu titik pemulihan.

Catatan

Umpan peristiwa tidak menampilkan perubahan pada sumber daya item. Anda selalu dapat menentukan tanda waktu secara manual dalam 30 hari terakhir (selama akun ada pada saat itu) untuk pemulihan.

Memulihkan akun yang dihapus

Anda dapat menggunakan portal Microsoft Azure untuk memulihkan akun yang dihapus sepenuhnya dalam waktu 30 hari sejak penghapusannya. Gunakan langkah-langkah berikut untuk memulihkan akun yang dihapus:

  1. Masuk ke portal Azure.

  2. Cari sumber daya Azure Cosmos DB di bilah pencarian global. Ini mencantumkan semua akun lama Anda.

  3. Selanjutnya pilih tombol Pulihkan. Panel Pulihkan menampilkan daftar akun terhapus yang bisa dipulihkan dalam periode penyimpanan, yaitu 30 hari sejak waktu penghapusan.

  4. Pilih akun yang ingin Anda pulihkan.

    Pulihkan akun yang terhapus dari portal Microsoft Azure.

    Catatan

    Panel pemulihan portal Microsoft Azure diisi hanya jika Anda memiliki izin Microsoft.DocumentDB/locations/restorableDatabaseAccounts/*/read. Untuk mempelajari selengkapnya tentang cara mengatur izin ini, lihat artikel Pencadangan dan pemulihan izin.

  5. Pilih akun untuk memulihkan dan memasukkan detail berikut untuk memulihkan akun yang dihapus:

    • Restore Point (UTC) – Tanda waktu dalam 30 hari terakhir. Akun harus sudah ada pada tanda waktu tersebut. Tentukan titik pemulihan di UTC. Penentuannya bisa sedekat mungkin dengan yang kedua ketika Anda ingin memulihkannya.

    • Lokasi – Wilayah tujuan tempat akun perlu dipulihkan. Akun sumber harus ada di wilayah ini pada tanda waktu yang diberikan. Contoh AS Barat atau AS Timur.

    • Grup sumber daya - Grup sumber daya tempat akun target akan dibuat dan dipulihkan. Grup sumber daya harus sudah ada.

    • Pulihkan Akun Target – Nama akun target harus mengikuti panduan yang sama seperti saat Anda membuat akun baru. Akun ini akan dibuat oleh proses pemulihan di wilayah yang sama tempat akun sumber Anda berada.

Melacak status operasi pemulihan

Setelah memulai operasi pemulihan, pilih ikon bel Notifikasi di sudut kanan atas portal. Ini memberikan tautan yang menampilkan status akun yang sedang dipulihkan. Saat pemulihan sedang berlangsung, status akun akan Membuat setelah operasi pemulihan selesai, status akun akan berubah menjadi Online.

Status akun yang dipulihkan berubah dari membuat menjadi online ketika operasi selesai.

Dapatkan detail pemulihan dari akun yang dipulihkan

Setelah operasi pemulihan selesai, Anda mungkin ingin mengetahui detail akun sumber dari mana Anda memulihkan atau waktu pemulihan.

Gunakan langkah-langkah berikut untuk mendapatkan detail pemulihan dari portal Microsoft Azure:

  1. Masuk ke portal Azure dan navigasikan ke akun yang dipulihkan.

  2. Navigasikan ke panel Ekspor templat. Ini membuka template JSON, sesuai dengan akun yang dipulihkan.

Memulihkan akun menggunakan Azure PowerShell

Sebelum memulihkan akun, instal versi terbaru Azure PowerShell atau versi yang lebih tinggi dari 9.6.0. Selanjutnya sambungkan ke akun Azure Anda dan pilih langganan yang diperlukan dengan perintah berikut:

  1. Masuk ke Azure menggunakan perintah berikut:

    Connect-AzAccount
    
  2. Pilih langganan tertentu dengan perintah berikut ini:

    Select-AzSubscription -Subscription <SubscriptionName>
    

Memicu operasi pemulihan untuk API untuk akun NoSQL

Cmdlet berikut adalah contoh untuk memicu operasi pemulihan dengan perintah pemulihan dengan menggunakan akun target, akun sumber, lokasi, grup sumber daya, PublicNetworkAccess, DisableTtl, dan tanda waktu:


Restore-AzCosmosDBAccount `
  -TargetResourceGroupName "MyRG" `
  -TargetDatabaseAccountName "RestoredAccountName" `
  -SourceDatabaseAccountName "SourceDatabaseAccountName" `
  -RestoreTimestampInUtc "UTCTime" `
  -Location "AzureRegionName" ` 
  -PublicNetworkAccess Disabled `
  -DisableTtl $true

Contoh 1: Memulihkan seluruh akun:


Restore-AzCosmosDBAccount `
  -TargetResourceGroupName "MyRG" `
  -TargetDatabaseAccountName "Pitracct" `
  -SourceDatabaseAccountName "source-sql" `
  -RestoreTimestampInUtc "2021-01-05T22:06:00" `
  -Location "West US" `
  -PublicNetworkAccess Disabled
  -DisableTtl $false


Jika PublicNetworkAccess tidak diatur, akun yang dipulihkan dapat diakses dari jaringan publik, pastikan untuk meneruskan Disabled ke PublicNetworkAccess opsi untuk menonaktifkan akses jaringan publik untuk akun yang dipulihkan. Mengatur DisableTtl ke $true memastikan TTL dinonaktifkan pada akun yang dipulihkan, tidak menyediakan parameter yang memulihkan akun dengan TTL diaktifkan jika diatur sebelumnya.

Catatan

Untuk memulihkan dengan akses jaringan publik yang dinonaktifkan, versi stabil minimum Az.CosmosDB yang diperlukan adalah 1.12.0.

Contoh 2: Memulihkan koleksi dan database tertentu. Contoh ini memulihkan koleksi MyCol1, MyCol2 dari MyDB1 dan seluruh database MyDB2, yang mencakup semua kontainer di bawahnya.

$datatabaseToRestore1 = New-AzCosmosDBDatabaseToRestore -DatabaseName "MyDB1" -CollectionName "MyCol1", "MyCol2"
$datatabaseToRestore2 = New-AzCosmosDBDatabaseToRestore -DatabaseName "MyDB2"

Restore-AzCosmosDBAccount `
  -TargetResourceGroupName "MyRG" `
  -TargetDatabaseAccountName "Pitracct" `
  -SourceDatabaseAccountName "SourceSql" `
  -RestoreTimestampInUtc "2021-01-05T22:06:00" `
  -DatabasesToRestore $datatabaseToRestore1, $datatabaseToRestore2 `
  -Location "West US"

Contoh 3: Memulihkan API untuk Akun Gremlin. Contoh ini memulihkan grafik graph1, graph2 dari MyDB1 dan seluruh database MyDB2, yang mencakup semua kontainer di bawahnya.

$datatabaseToRestore1 = New-AzCosmosDBGremlinDatabaseToRestore  -DatabaseName "MyDB1" -GraphName "graph1", "graph2"  
$datatabaseToRestore2 = New-AzCosmosDBGremlinDatabaseToRestore  -DatabaseName "MyDB2"

Restore-AzCosmosDBAccount `
  -TargetResourceGroupName "MyRG" `
  -TargetDatabaseAccountName "Pitracct" `
  -SourceDatabaseAccountName "SourceGremlin" `
  -RestoreTimestampInUtc "2022-04-05T22:06:00" `
  -DatabasesToRestore $datatabaseToRestore1, $datatabaseToRestore2 `
  -Location "West US"

Contoh 4: Memulihkan API untuk Akun Tabel. Contoh ini memulihkan tabel table1, table1 dari MyDB1

$tablesToRestore  = New-AzCosmosDBTableToRestore -TableName "table1", "table2"  

Restore-AzCosmosDBAccount `
  -TargetResourceGroupName "MyRG" `
  -TargetDatabaseAccountName "Pitracct" `
  -SourceDatabaseAccountName "SourceTable" `
  -RestoreTimestampInUtc "2022-04-06T22:06:00" `
  -TablesToRestore $tablesToRestore ` 
  -Location "West US"

Untuk memulihkan akun berkelanjutan yang dikonfigurasi dengan identitas terkelola menggunakan CLI

Untuk memulihkan akun berkelanjutan Customer Managed Key (CMK), silakan lihat langkah-langkah yang disediakan di sini

Dapatkan detail pemulihan dari akun yang dipulihkan

Az.CosmosDB Impor modul versi 1.12.0 dan jalankan perintah berikut untuk mendapatkan detail pemulihan. RestoreTimestamp akan berada di bawah objek restoreParameters:

Get-AzCosmosDBAccount -ResourceGroupName MyResourceGroup -Name MyCosmosDBDatabaseAccount 

Menghitung sumber daya yang dapat di-restorable untuk API untuk NoSQL

cmdlet enumerasi membantu Anda menemukan sumber daya yang tersedia untuk pemulihan di berbagai tanda waktu. Selain itu, mereka juga menyediakan kunci peristiwa penting pada akun, database, dan sumber daya kontainer yang dapat dipulihkan.

Mencantumkan semua akun yang dapat dipulihkan dalam langganan saat ini

Jalankan perintah Get-AzCosmosDBRestorableDatabaseAccount PowerShell untuk mencantumkan semua akun yang dapat dipulihkan di langganan saat ini.

Respons mencakup semua akun database (baik live maupun terhapus) yang dapat dipulihkan dan wilayah tempat akun tersebut dapat dipulihkan.

{
    "accountName": "SampleAccount",
    "apiType": "Sql",
    "creationTime": "2020-08-08T01:04:52.070190+00:00",
    "deletionTime": null,
    "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.DocumentDB/locations/West US/restorableDatabaseAccounts/23e99a35-cd36-4df4-9614-f767a03b9995",
    "identity": null,
    "location": "West US",
    "name": "23e99a35-cd36-4df4-9614-f767a03b9995",
    "restorableLocations": [
      {
        "creationTime": "2020-08-08T01:04:52.945185+00:00",
        "deletionTime": null,
        "location": "West US",
        "regionalDatabaseAccountInstanceId": "30701557-ecf8-43ce-8810-2c8be01dccf9"
      },
      {
        "creationTime": "2020-08-08T01:15:43.507795+00:00",
        "deletionTime": null,
        "location": "East US",
        "regionalDatabaseAccountInstanceId": "8283b088-b67d-4975-bfbe-0705e3e7a599"
      }
    ],
    "tags": null,
    "type": "Microsoft.DocumentDB/locations/restorableDatabaseAccounts"
  }

Sama seperti CreationTime atau DeletionTime untuk akun, ada CreationTime atau DeletionTime untuk wilayah juga. Waktu ini memungkinkan Anda memilih wilayah yang tepat dan rentang waktu yang valid untuk dipulihkan ke wilayah tersebut.

Mencantumkan semua versi database SQL di akun database live

Mencantumkan semua versi database memungkinkan Anda memilih database yang tepat dalam skenario waktu aktual keberadaan database tidak diketahui.

Jalankan perintah PowerShell berikut ini untuk mencantumkan semua versi database. Perintah ini hanya berfungsi dengan akun live. Parameter DatabaseAccountInstanceId dan Location diperoleh dari properti name dan location sebagai respons Get-AzCosmosDBRestorableDatabaseAccount cmdlet. Atribut DatabaseAccountInstanceId ini mengacu pada instanceId properti akun database sumber yang sedang dipulihkan:


Get-AzCosmosdbSqlRestorableDatabase `
  -Location "East US" `
  -DatabaseAccountInstanceId <DatabaseAccountInstanceId>

Cantumkan semua versi kontainer SQL database dalam akun database aktif.

Gunakan perintah berikut untuk mencantumkan semua versi kontainer SQL. Perintah ini hanya berfungsi dengan akun live. Parameter DatabaseRId adalah ResourceId database yang ingin Anda pulihkan. Ini adalah nilai atribut ownerResourceid yang ditemukan sebagai respons Get-AzCosmosdbSqlRestorableDatabase cmdlet. Respons ini juga mencakup daftar operasi yang dilakukan pada semua kontainer di dalam database ini.


Get-AzCosmosdbSqlRestorableContainer `
  -DatabaseAccountInstanceId "d056a4f8-044a-436f-80c8-cd3edbc94c68" `
  -DatabaseRId "AoQ13r==" `
  -Location "West US"

Menemukan database atau kontainer yang dapat dipulihkan pada tanda waktu tertentu

Gunakan perintah berikut ini untuk mendapatkan daftar database atau kontainer yang bisa dipulihkan pada cap waktu tertentu. Perintah ini hanya berfungsi dengan akun live.


Get-AzCosmosdbSqlRestorableResource `
  -DatabaseAccountInstanceId "d056a4f8-044a-436f-80c8-cd3edbc94c68" `
  -Location "West US" `
  -RestoreLocation "East US" `
  -RestoreTimestamp "2020-07-20T16:09:53+0000"

Menghitung sumber daya yang dapat dipulihkan dalam API untuk MongoDB

Perintah enumerasi yang dijelaskan di bawah ini membantu Anda menemukan sumber daya yang tersedia untuk pemulihan di berbagai stempel waktu. Selain itu, mereka juga menyediakan kunci peristiwa penting pada akun, database, dan sumber daya kontainer yang dapat dipulihkan. Perintah ini hanya berfungsi untuk akun langsung dan mirip dengan API untuk perintah NoSQL tetapi dengan MongoDB dalam nama perintah alih-alih sql.

Mencantumkan semua versi database MongoDB di akun database live


Get-AzCosmosdbMongoDBRestorableDatabase `
  -DatabaseAccountInstanceId "d056a4f8-044a-436f-80c8-cd3edbc94c68" `
  -Location "West US"

Mencantumkan semua versi kumpulan MongoDB database dalam akun database live


Get-AzCosmosdbMongoDBRestorableCollection `
  -DatabaseAccountInstanceId "d056a4f8-044a-436f-80c8-cd3edbc94c68" `
  -DatabaseRId "AoQ13r==" `
  -Location "West US"

Mencantumkan semua sumber daya akun database MongoDB yang tersedia untuk dipulihkan pada stempel waktu dan wilayah tertentu


Get-AzCosmosdbMongoDBRestorableResource `
  -DatabaseAccountInstanceId "d056a4f8-044a-436f-80c8-cd3edbc94c68" `
  -Location "West US" `
  -RestoreLocation "West US" `
  -RestoreTimestamp "2020-07-20T16:09:53+0000"

Menghitung sumber daya yang dapat di-restorable untuk API untuk Gremlin

cmdlet enumerasi membantu Anda menemukan sumber daya yang tersedia untuk pemulihan di berbagai tanda waktu. Selain itu, cmdlet juga menyediakan umpan peristiwa kunci pada akun, database, dan sumber daya grafik yang dapat dipulihkan.

Mencantumkan semua versi database Gremlin di akun database live

Mencantumkan semua versi database memungkinkan Anda memilih database yang tepat dalam skenario waktu aktual keberadaan database tidak diketahui. Jalankan perintah PowerShell berikut ini untuk mencantumkan semua versi database. Perintah ini hanya berfungsi dengan akun live. Parameter DatabaseAccountInstanceId dan Location diperoleh dari properti name dan location sebagai respons Get-AzCosmosDBRestorableDatabaseAccount cmdlet. Atribut DatabaseAccountInstanceId ini mengacu pada instanceId properti akun database sumber yang sedang dipulihkan:

Get-AzCosmosdbGremlinRestorableDatabase ` 
   -Location "East US" ` 
   -DatabaseAccountInstanceId <DatabaseAccountInstanceId> 

Mencantumkan semua versi grafik Gremlin database di akun database langsung

Gunakan perintah berikut untuk mencantumkan semua versi API untuk grafik Gremlin. Perintah ini hanya berfungsi dengan akun live. Parameter DatabaseRId adalah ResourceId database yang ingin Anda pulihkan. Ini adalah nilai atribut ownerResourceid yang ditemukan sebagai respons Get-AzCosmosdbGremlinRestorableDatabase cmdlet. Respons ini juga mencakup daftar operasi yang dilakukan pada semua grafik di dalam database ini.

Get-AzCosmosdbGremlinRestorableGraph ` 
   -DatabaseAccountInstanceId "d056a4f8-044a-436f-80c8-cd3edbc94c68" ` 
   -DatabaseRId "AoQ13r==" ` 
   -Location "West US" 

Mencari database atau grafik yang dapat dipulihkan pada stempel waktu tertentu

Gunakan perintah berikut ini untuk mendapatkan daftar database atau grafik yang bisa dipulihkan pada cap waktu tertentu. Perintah ini hanya berfungsi dengan akun live.

Get-AzCosmosdbGremlinRestorableResource ` 
   -DatabaseAccountInstanceId "d056a4f8-044a-436f-80c8-cd3edbc94c68" ` 
   -Location "West US" ` 
   -RestoreLocation "East US" ` 
   -RestoreTimestamp "2020-07-20T16:09:53+0000" 

Menghitung sumber daya yang dapat di-restorable untuk API untuk Tabel

cmdlet enumerasi membantu Anda menemukan sumber daya yang tersedia untuk pemulihan di berbagai tanda waktu. Selain itu, cmdlet juga menyediakan umpan peristiwa kunci pada akun dan sumber daya tabel yang dapat dipulihkan.

Mencantumkan semua versi tabel database di akun database langsung

Gunakan perintah berikut untuk membuat daftar semua versi tabel. Perintah ini hanya berfungsi dengan akun live.

Get-AzCosmosdbTableRestorableTable ` 
   -DatabaseAccountInstanceId "d056a4f8-044a-436f-80c8-cd3edbc94c68"   ` 
   -Location "West US" 

Mencari tabel yang dapat dipulihkan pada stempel waktu tertentu

Gunakan perintah berikut ini untuk mendapatkan daftar tabel yang dapat dipulihkan pada stempel waktu tertentu. Perintah ini hanya berfungsi dengan akun live.

Get-AzCosmosdbTableRestorableResource ` 
   -DatabaseAccountInstanceId "d056a4f8-044a-436f-80c8-cd3edbc94c68" ` 
   -Location "West US" ` 
   -RestoreLocation "East US" ` 
   -RestoreTimestamp "2020-07-20T16:09:53+0000" 

Memulihkan akun menggunakan Azure CLI

Sebelum memulihkan akun, instal Azure CLI dengan langkah-langkah berikut:

  1. Instal versi terbaru Azure CLI

    • Instal versi terbaru Azure CLI atau versi yang lebih tinggi dari 2.52.0.
    • Jika Anda telah menginstal CLI, jalankan az upgrade perintah untuk memperbarui ke versi terbaru. Perintah ini hanya akan berfungsi dengan versi CLI yang lebih tinggi dari 2.52.0. Jika Anda memiliki versi yang lebih lama, gunakan tautan di atas untuk menginstal versi terbaru.
  2. Masuk dan pilih langganan Anda.

    • Masuk ke akun Azure Anda dengan perintah az login.
    • Pilih perintah langganan yang diperlukan az account set -s <subscriptionguid> menggunakan.

Memicu operasi pemulihan dengan Azure CLI

Cara paling sederhana untuk memicu pemulihan adalah dengan mengeluarkan perintah pulihkan dengan nama akun target, akun sumber, lokasi, grup sumber daya, tanda waktu (dalam UTC), dan secara opsional database dan nama kontainer. Berikut ini adalah beberapa contoh untuk memicu operasi pemulihan:

Membuat akun Azure Cosmos DB baru dengan memulihkan dari akun yang sudah ada


az cosmosdb restore \
 --target-database-account-name <MyRestoredCosmosDBDatabaseAccount> \
 --account-name <MySourceAccount> \
 --restore-timestamp 2020-07-13T16:03:41+0000 \
 --resource-group <MyResourceGroup> \
 --location "West US" \
 --public-network-access Disabled \
 --disable-ttl True 

Jika --public-network-access tidak diatur, akun yang dipulihkan dapat diakses dari jaringan publik. Pastikan untuk meneruskan Disabled ke opsi untuk mencegah akses jaringan publik untuk akun yang --public-network-access dipulihkan. Mengatur disable-ttl ke $true memastikan TTL dinonaktifkan pada akun yang dipulihkan, dan tidak menyediakan parameter ini memulihkan akun dengan TTL diaktifkan jika diatur sebelumnya.

Catatan

Untuk memulihkan dengan akses jaringan publik yang dinonaktifkan, versi stabil minimum azure-cli adalah 2.52.0.

Membuat akun Azure Cosmos DB baru dengan memulihkan hanya database dan kontainer yang dipilih dari akun database yang sudah ada


az cosmosdb restore \
 --resource-group MyResourceGroup \
 --target-database-account-name MyRestoredCosmosDBDatabaseAccount \
 --account-name MySourceAccount \
 --restore-timestamp 2020-07-13T16:03:41+0000 \
 --location "West US" \
 --databases-to-restore name=MyDB1 collections=Collection1 Collection2 \
 --databases-to-restore name=MyDB2 collections=Collection3 Collection4

Buat API Azure Cosmos DB baru untuk akun Gremlin dengan memulihkan hanya database dan grafik yang dipilih dari API yang ada untuk akun Gremlin


az cosmosdb restore \
 --resource-group MyResourceGroup \
 --target-database-account-name MyRestoredCosmosDBDatabaseAccount \
 --account-name MySourceAccount \
 --restore-timestamp 2022-04-13T16:03:41+0000 \
 --location "West US" \
 --gremlin-databases-to-restore name=MyDB1 graphs=graph1 graph2 \
 --gremlin-databases-to-restore name=MyDB2 graphs =graph3 graph4 

Membuat API Azure Cosmos DB baru untuk akun Table dengan memulihkan hanya tabel yang dipilih dari API yang sudah ada untuk akun Table


az cosmosdb restore \
 --resource-group MyResourceGroup \
 --target-database-account-name MyRestoredCosmosDBDatabaseAccount \
 --account-name MySourceAccount \
 --restore-timestamp 2022-04-14T06:03:41+0000 \
 --location "West US" \
 --tables-to-restore table1 table2 

Dapatkan detail pemulihan dari akun yang dipulihkan

Jalankan perintah berikut untuk mendapatkan detail pemulihan. Output perintah az cosmosdb show menunjukkan nilai properti createMode. Jika nilai diatur ke Pulihkan, hal ini menunjukkan bahwa akun tersebut dipulihkan dari akun lain. Properti restoreParameters memiliki perincian lebih lanjut seperti restoreSource, yang memiliki ID akun sumber. GUID terakhir dalam parameter restoreSource adalah instanceId dari akun sumber. Dan restoreTimestamp akan berada di bawah objek restoreParameters:

az cosmosdb show --name MyCosmosDBDatabaseAccount --resource-group MyResourceGroup

Menghitung sumber daya yang dapat di-restorable untuk API untuk NoSQL

Perintah enumerasi yang dijelaskan di bawah ini membantu Anda menemukan sumber daya yang tersedia untuk pemulihan di berbagai stempel waktu. Selain itu, mereka juga menyediakan kunci peristiwa penting pada akun, database, dan sumber daya kontainer yang dapat dipulihkan.

Mencantumkan semua akun yang dapat dipulihkan dalam langganan saat ini

Jalankan perintah Azure CLI berikut untuk membuat daftar semua akun yang dapat dipulihkan dalam langganan saat ini

az cosmosdb restorable-database-account list --account-name "Pitracct"

Responsnya mencakup semua akun database (baik yang aktif maupun yang dihapus) yang dapat dipulihkan, dan wilayah tempat mereka dapat dipulihkan:

{
    "accountName": "Pitracct",
    "apiType": "Sql",
    "creationTime": "2021-01-08T23:34:11.095870+00:00",
    "deletionTime": null,
    "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.DocumentDB/locations/West US/restorableDatabaseAccounts/abcd1234-d1c0-4645-a699-abcd1234",
    "identity": null,
    "location": "West US",
    "name": "abcd1234-d1c0-4645-a699-abcd1234",
    "restorableLocations": [
      {
        "creationTime": "2021-01-08T23:34:11.095870+00:00",
        "deletionTime": null,
        "locationName": "West US",
        "regionalDatabaseAccountInstanceId": "f02df26b-c0ec-4829-8bef-3482d36e6230"
      }
    ],
    "tags": null,
    "type": "Microsoft.DocumentDB/locations/restorableDatabaseAccounts"
  }

Sama seperti CreationTime atau DeletionTime untuk akun, ada CreationTime atau DeletionTime untuk wilayah juga. Waktu ini memungkinkan Anda memilih wilayah yang tepat dan rentang waktu yang valid untuk dipulihkan ke wilayah tersebut.

Mencantumkan semua versi database di akun database live

Mencantumkan semua versi database memungkinkan Anda memilih database yang tepat dalam skenario waktu aktual keberadaan database tidak diketahui.

Jalankan perintah Azure CLI berikut ini untuk mencantumkan semua versi database. Perintah ini hanya berfungsi dengan akun live. Parameter instance-id dan location parameter diperoleh dari name dan location properti dalam respons az cosmosdb restorable-database-account list perintah. Atribut instanceId juga merupakan properti akun database sumber yang sedang dipulihkan:

az cosmosdb sql restorable-database list \
  --instance-id "abcd1234-d1c0-4645-a699-abcd1234" \
  --location "West US"

Output perintah ini sekarang menunjukkan ketika database dibuat dan dihapus.

[
  {
    "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.DocumentDB/locations/West US/restorableDatabaseAccounts/abcd1234-d1c0-4645-a699-abcd1234/restorableSqlDatabases/40e93dbd-2abe-4356-a31a-35567b777220",
     "name": "40e93dbd-2abe-4356-a31a-35567b777220",
    "resource": {
      "database": {
        "id": "db1"
      },
      "eventTimestamp": "2021-01-08T23:27:25Z",
      "operationType": "Create",
      "ownerId": "db1",
      "ownerResourceId": "YuZAAA=="
    },
   
  },
  {
    "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.DocumentDB/locations/West US/restorableDatabaseAccounts/abcd1234-d1c0-4645-a699-abcd1234/restorableSqlDatabases/243c38cb-5c41-4931-8cfb-5948881a40ea",
    "name": "243c38cb-5c41-4931-8cfb-5948881a40ea",
    "resource": {
      "database": {
        "id": "spdb1"
      },
      "eventTimestamp": "2021-01-08T23:25:25Z",
      "operationType": "Create",
      "ownerId": "spdb1",
      "ownerResourceId": "OIQ1AA=="
    },
 
  }
]

Cantumkan semua versi kontainer SQL database dalam akun database aktif.

Gunakan perintah berikut untuk mencantumkan semua versi kontainer SQL. Perintah ini hanya berfungsi dengan akun live. Parameter database-rid adalah ResourceId database yang ingin Anda pulihkan. Ini adalah nilai atribut ownerResourceid yang ditemukan dalam respons az cosmosdb sql restorable-database list perintah.

az cosmosdb sql restorable-container list \
    --instance-id "abcd1234-d1c0-4645-a699-abcd1234" \
    --database-rid "OIQ1AA==" \
    --location "West US"

Output perintah ini menunjukkan mencakup daftar operasi yang dilakukan pada semua kontainer di dalam database ini:

[
  {
      "eventTimestamp": "2021-01-08T23:25:29Z",
      "operationType": "Replace",
      "ownerId": "procol3",
      "ownerResourceId": "OIQ1APZ7U18="
  },
  {
      "eventTimestamp": "2021-01-08T23:25:26Z",
      "operationType": "Create",
      "ownerId": "procol3",
      "ownerResourceId": "OIQ1APZ7U18="
  },
]

Menemukan database atau kontainer yang dapat dipulihkan pada tanda waktu tertentu

Gunakan perintah berikut ini untuk mendapatkan daftar database atau kontainer yang bisa dipulihkan pada cap waktu tertentu. Perintah ini hanya berfungsi dengan akun live.


az cosmosdb sql restorable-resource list \
  --instance-id "abcd1234-d1c0-4645-a699-abcd1234" \
  --location "West US" \
  --restore-location "West US" \  
  --restore-timestamp "2021-01-10T01:00:00+0000"

[
  {
    "collectionNames": [
      "procol1",
      "procol2"
    ],
    "databaseName": "db1"
  },
  {
    "collectionNames": [
      "procol3",
       "spcol1"
    ],
    "databaseName": "spdb1"
  }
]

Menghitung sumber daya yang dapat dipulihkan untuk API untuk akun MongoDB

Perintah enumerasi yang dijelaskan di bawah ini membantu Anda menemukan sumber daya yang tersedia untuk pemulihan di berbagai stempel waktu. Selain itu, mereka juga menyediakan kunci peristiwa penting pada akun, database, dan sumber daya kontainer yang dapat dipulihkan. Perintah ini hanya berfungsi untuk akun live.

Mencantumkan semua versi database MongoDB di akun database live

az cosmosdb mongodb restorable-database list \
    --instance-id "abcd1234-d1c0-4645-a699-abcd1234" \
    --location "West US"

Mencantumkan semua versi kumpulan MongoDB database dalam akun database live

az cosmosdb mongodb restorable-collection list \
    --instance-id "abcd1234-d1c0-4645-a699-abcd1234" \
    --database-rid "AoQ13r==" \
    --location "West US"

Mencantumkan semua sumber daya akun database mongodb yang tersedia untuk dipulihkan pada tanda waktu dan wilayah tertentu

az cosmosdb mongodb restorable-resource list \
    --instance-id "abcd1234-d1c0-4645-a699-abcd1234" \
    --location "West US" \
    --restore-location "West US" \
    --restore-timestamp "2020-07-20T16:09:53+0000"

Mencantumkan semua versi database di akun database live

Perintah enumerasi yang dijelaskan di bawah ini membantu Anda menemukan sumber daya yang tersedia untuk pemulihan di berbagai stempel waktu. Selain itu, cmdlet juga menyediakan umpan peristiwa kunci pada akun, database, dan sumber daya grafik yang dapat dipulihkan. Perintah ini hanya berfungsi untuk akun live.

az cosmosdb gremlin restorable-database list \ 
   --instance-id "abcd1234-d1c0-4645-a699-abcd1234" \ 
   --location "West US"

Output perintah ini sekarang menunjukkan ketika database dibuat dan dihapus.

[ { 
    "id": "/subscriptions/abcd1234-b6ac-4328-a753-abcd1234/providers/Microsoft.DocumentDB/locations/eastus2euap/restorableDatabaseAccounts/abcd1234-4316-483b-8308-abcd1234/restorableGremlinDatabases/abcd1234-0e32-4036-ac9d-abcd1234", 
    "name": "abcd1234-0e32-4036-ac9d-abcd1234", 
    "resource": { 
      "eventTimestamp": "2022-02-09T17:10:18Z", 
      "operationType": "Create", 
      "ownerId": "db1", 
      "ownerResourceId": "1XUdAA==", 
      "rid": "ymn7kwAAAA==" 
    }, 
    "type": "Microsoft.DocumentDB/locations/restorableDatabaseAccounts/restorableGremlinDatabases" 
    
  } 
] 

Mencantumkan semua versi grafik Gremlin database di akun database langsung

az cosmosdb gremlin restorable-graph list \ 
   --instance-id "abcd1234-d1c0-4645-a699-abcd1234" \ 
   --database-rid "OIQ1AA==" \ 
   --location "West US" 

Output perintah ini menunjukkan mencakup daftar operasi yang dilakukan pada semua kontainer di dalam database ini:

[ { 

    "id": "/subscriptions/23587e98-b6ac-4328-a753-03bcd3c8e744/providers/Microsoft.DocumentDB/locations/eastus2euap/restorableDatabaseAccounts/a00d591d-4316-483b-8308-44193c5f3073/restorableGraphs/1792cead-4307-4032-860d-3fc30bd46a20", 
    "name": "1792cead-4307-4032-860d-3fc30bd46a20", 
    "resource": { 
      "eventTimestamp": "2022-02-09T17:10:31Z", 
      "operationType": "Create", 
      "ownerId": "graph1", 
      "ownerResourceId": "1XUdAPv9duQ=", 
      "rid": "IcWqcQAAAA==" 
    }, 
    "type": "Microsoft.DocumentDB/locations/restorableDatabaseAccounts/restorableGraphs" 
  } 
] 

Mencari database atau grafik yang dapat dipulihkan pada stempel waktu tertentu

 
az cosmosdb gremlin restorable-resource list \ 
   --instance-id "abcd1234-d1c0-4645-a699-abcd1234" \ 
   --location "West US" \ 
   --restore-location "West US" \ 
   --restore-timestamp "2021-01-10T01:00:00+0000" 

Output perintah ini menunjukkan grafik yang dapat di-restorable:

[
 { 
"databaseName": "db1", 
"graphNames": [ "graph1",   "graph3",   "graph2"  ] 
  } 
] 

Menghitung sumber daya yang dapat di-restorable untuk API untuk akun Table

Perintah enumerasi yang dijelaskan di bawah ini membantu Anda menemukan sumber daya yang tersedia untuk pemulihan di berbagai stempel waktu. Selain itu, mereka juga menyediakan umpan peristiwa utama pada akun dan API yang dapat di-restorable untuk sumber daya Table. Perintah ini hanya berfungsi untuk akun live.

Mencantumkan semua versi tabel dalam akun database langsung

az cosmosdb table restorable-table list \ 
   --instance-id "abcd1234-d1c0-4645-a699-abcd1234"  
   --location "West US" 
[   { 

"id": "/subscriptions/23587e98-b6ac-4328-a753-03bcd3c8e744/providers/Microsoft.DocumentDB/locations/WestUS/restorableDatabaseAccounts/7e4d666a-c6ba-4e1f-a4b9-e92017c5e8df/restorableTables/59781d91-682b-4cc2-93a3-c25d03fab159", 
"name": "59781d91-682b-4cc2-93a3-c25d03fab159", 
"resource": { 
  "eventTimestamp": "2022-02-09T17:09:54Z", 
  "operationType": "Create", 
  "ownerId": "table1", 
  "ownerResourceId": "tOdDAKYiBhQ=", 
  "rid": "9pvDGwAAAA==" 
  }, 
"type": "Microsoft.DocumentDB/locations/restorableDatabaseAccounts/restorableTables" 
   }, 

{"id": "/subscriptions/23587e98-b6ac-4328-a753-03bcd3c8e744/providers/Microsoft.DocumentDB/locations/eastus2euap/restorableDatabaseAccounts/7e4d666a-c6ba-4e1f-a4b9-e92017c5e8df/restorableTables/2c9f35eb-a14c-4ab5-a7e0-6326c4f6b785", 
"name": "2c9f35eb-a14c-4ab5-a7e0-6326c4f6b785", 
"resource": { 
  "eventTimestamp": "2022-02-09T20:47:53Z", 
  "operationType": "Create", 
  "ownerId": "table3", 
  "ownerResourceId": "tOdDALBwexw=", 
  "rid": "01DtkgAAAA==" 
}, 
"type": "Microsoft.DocumentDB/locations/restorableDatabaseAccounts/restorableTables" 

  }, 
] 

Mencantumkan semua sumber daya API untuk akun Table yang tersedia untuk dipulihkan pada tanda waktu dan wilayah tertentu

az cosmosdb table restorable-resource list \ 
   --instance-id "abcd1234-d1c0-4645-a699-abcd1234" \ 
   --location "West US" \ 
   --restore-location "West US" \ 
   --restore-timestamp "2020-07-20T16:09:53+0000" 

Berikut ini adalah hasil dari perintah.

{   
  "tableNames": [ 
"table1", 
"table3", 
"table2" 

  ] 
} 

Memulihkan menggunakan templat Azure Resource Manager

Anda juga dapat memulihkan akun menggunakan templat Azure Resource Manager (ARM). Saat mendefinisikan templat, sertakan parameter berikut:

Memulihkan API untuk akun NoSQL atau MongoDB menggunakan templat ARM

  1. Atur parameter createMode ke Pulihkan.
  2. Tentukan restoreParameters, perhatikan bahwa restoreSource nilai diekstraksi dari output perintah az cosmosdb restorable-database-account list untuk akun sumber Anda. Atribut ID Instans untuk nama akun Anda digunakan untuk melakukan pemulihan.
  3. Atur restoreMode parameter ke PointInTime dan konfigurasikan restoreTimestampInUtc nilainya.

Gunakan templat ARM berikut untuk memulihkan akun api Azure Cosmos DB untuk NoSQL atau MongoDB. Contoh untuk API lain disediakan berikutnya.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [
    {
      "name": "vinhpitrarmrestore-kal3",
      "type": "Microsoft.DocumentDB/databaseAccounts",
      "apiVersion": "2023-04-15",
      "location": "West US",
      "properties": {
        "locations": [
          {
            "locationName": "West US"
          }
        ],
        "databaseAccountOfferType": "Standard",
        "createMode": "Restore",
        "restoreParameters": {
            "restoreSource": "/subscriptions/2296c272-5d55-40d9-bc05-4d56dc2d7588/providers/Microsoft.DocumentDB/locations/West US/restorableDatabaseAccounts/6a18ecb8-88c2-4005-8dce-07b44b9741df",
            "restoreMode": "PointInTime",
            "restoreTimestampInUtc": "6/24/2020 4:01:48 AM",
            "restoreWithTtlDisabled": "true"
        }
      }
    }
  ]
}

Pulihkan API untuk akun Gremlin menggunakan templat ARM

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [
    {
      "name": "ademo-pitr1",
      "type": "Microsoft.DocumentDB/databaseAccounts",
      "apiVersion": "2023-04-15",
      "location": "West US",
      "properties": {
        "locations": [
          {
            "locationName": "West US"
          }
        ],
        "backupPolicy": { 
          "type": "Continuous" 
        }, 
        "databaseAccountOfferType": "Standard",
        "createMode": "Restore",
        "restoreParameters": {
            "restoreSource": "/subscriptions/2296c272-5d55-40d9-bc05-4d56dc2d7588/providers/Microsoft.DocumentDB/locations/West US/restorableDatabaseAccounts/5cb9d82e-ec71-430b-b977-cd6641db85bc",
            "restoreMode": "PointInTime",
            "restoreTimestampInUtc": "2021-10-27T23:20:46Z",
            "gremlinDatabasesToRestore": [{ 
                "databaseName": "db1", 
                "graphNames": [ 
                    "graph1", "graph2" 
                ] 
            }]
        }
      }
    }
  ]
}

Pulihkan API untuk akun Table menggunakan templat ARM

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [
    {
      "name": "ademo-pitr1",
      "type": "Microsoft.DocumentDB/databaseAccounts",
      "apiVersion": "2023-04-15",
      "location": "West US",
      "properties": {
        "locations": [
          {
            "locationName": "West US"
          }
        ],
        "backupPolicy": { 
          "type": "Continuous" 
        }, 
        "databaseAccountOfferType": "Standard",
        "createMode": "Restore",
        "restoreParameters": {
            "restoreSource": "/subscriptions/1296c352-5d33-40d9-bc05-4d56dc2a7521/providers/Microsoft.DocumentDB/locations/West US/restorableDatabaseAccounts/4bcb9d82e-ec71-430b-b977-cd6641db85ad",
            "restoreMode": "PointInTime",
            "restoreTimestampInUtc": "2022-04-13T10:20:46Z",
             "tablesToRestore": [ 
                "table1", "table2" 
            ] 
        }
      }
    }
  ]
}

Berikutnya, sebarkan templat dengan menggunakan Microsoft Azure PowerShell atau Azure CLI. Contoh berikut ini memperlihatkan cara menyebarkan templat dengan perintah Azure CLI:

az deployment group create -g <ResourceGroup> --template-file <RestoreTemplateFilePath> 

Langkah berikutnya