Tárolómásolási feladatok létrehozása és kezelése az Azure Cosmos DB-ben (előzetes verzió)

A KÖVETKEZŐKRE VONATKOZIK: Nosql MongoDB Cassandra

A tárolómásolási feladatok segítségével offline másolatokat hozhat létre a tárolókról az Azure Cosmos DB-fiókokban.

Ez a cikk bemutatja, hogyan hozhat létre, monitorozhat és kezelhet tárolómásolási feladatokat az Azure CLI-parancsokkal.

Előfeltételek

  • A Cloud Shell portál használatával tárolómásolási parancsokat futtathat. Másik lehetőségként helyileg is futtathatja a parancsokat; győződjön meg arról, hogy letöltötte és telepítette az Azure CLI-t a gépére.
  • A tárolómásolat jelenleg csak ezekben a régiókban támogatott. Győződjön meg arról, hogy a fiók írási régiója ebbe a listába tartozik.
  • Telepítse az Azure Cosmos DB előzetes verziójú bővítményét, amely tartalmazza a tárolómásolási parancsokat.
    az extension add --name cosmosdb-preview
    

Megjegyzés:

A tárolómásolási feladat azure Cosmos DB-fiókokban csak NoSQL API-fiókhoz érhető el. Az Azure Cosmos DB-fiókon belüli tárolómásolási feladat noSQL-, MongoDB- és Cassandra API-fiókokhoz érhető el.

Tárolómásolási feladat létrehozása adatok Azure Cosmos DB-fiókon belüli másolásához

Rendszerhéjváltozók beállítása

Először állítsa be az egyes szkriptek által használt összes változót.

$destinationRG = "<destination-resource-group-name>"
$sourceAccount = "<cosmos-source-account-name>"
$destinationAccount = "<cosmos-destination-account-name>"
$jobName = ""
$sourceDatabase = ""
$sourceContainer = ""
$destinationDatabase = ""
$destinationContainer = ""

Tárolómásolási feladat létrehozása

API for NoSQL-fiók

Hozzon létre egy feladatot egy tároló másolásához egy Azure Cosmos DB API for NoSQL-fiókban:

az cosmosdb copy create `
    --resource-group $destinationRG `
    --job-name $jobName `
    --dest-account $destinationAccount `
    --src-account $sourceAccount `
    --dest-nosql database=$destinationDatabase container=$destinationContainer `
    --src-nosql database=$sourceDatabase container=$sourceContainer

Api a Cassandra-fiókhoz

Hozzon létre egy feladatot egy tároló másolásához egy Cassandra-fiókhoz készült Azure Cosmos DB API-ban:

az cosmosdb copy create `
    --resource-group $destinationRG `
    --job-name $jobName `
    --dest-account $destinationAccount `
    --src-account $sourceAccount `
    --dest-cassandra keyspace=$destinationKeySpace table=$destinationTable `
    --src-cassandra keyspace=$sourceKeySpace table=$sourceTable 

Api a MongoDB-fiókhoz

Hozzon létre egy feladatot egy tároló másolásához egy MongoDB-fiókhoz készült Azure Cosmos DB API-ban:

az cosmosdb copy create `
    --resource-group $destinationRG `
    --job-name $jobName `
    --dest-account $destinationAccount `
    --src-account $sourceAccount `
    --dest-mongo database=$destinationDatabase collection=$destinationCollection `
    --src-mongo database=$sourceDatabase collection=$sourceCollection 

Megjegyzés:

--job-name egyedinek kell lennie az egyes feladatokhoz egy fiókon belül.

Tárolómásolási feladat létrehozása az adatok Azure Cosmos DB-fiókok közötti másolásához

Rendszerhéjváltozók beállítása

Először állítsa be az egyes szkriptek által használt összes változót.

$sourceSubId = "<source-subscription-id>" 
$destinationSubId = "<destination-subscription-id>" 
$sourceAccountRG = "<source-resource-group-name>"
$destinationAccountRG = "<destination-resource-group-name>"
$sourceAccount = "<cosmos-source-account-name>"
$destinationAccount = "<cosmos-destination-account-name>"
$jobName = ""
$sourceDatabase = ""
$sourceContainer = ""
$destinationDatabase = ""
$destinationContainer = ""

Olvasási engedély hozzárendelése

Miközben adatokat másol az egyik fiók tárolójából egy másik fiók tárolójába. A másolási művelet végrehajtásához olvasási hozzáférést kell adni a forrástárolónak a célfiók identitásához. Kövesse az alábbi lépéseket a szükséges olvasási engedély célfiókhoz való hozzárendeléséhez.

Rendszer által felügyelt identitás használata

  1. Cél-előfizetési környezet beállítása
    az account set --subscription $destinationSubId
    
  2. Rendszeridentitás hozzáadása a célfiókhoz
    $identityOutput = az cosmosdb identity assign -n $destinationAccount -g $destinationAccountRG
    $principalId = ($identityOutput | ConvertFrom-Json).principalId
    
  3. Alapértelmezett identitás beállítása a célfiókon
    az cosmosdb update -n $destinationAccount -g $destinationAccountRG --default-identity="SystemAssignedIdentity"
    
  4. Forrás-előfizetés környezetének beállítása
    az account set --subscription $sourceSubId
    
  5. Szerepkör-hozzárendelés hozzáadása a forrásfiókhoz
    # Read-only access role
    $roleDefinitionId = "00000000-0000-0000-0000-000000000001" 
    az cosmosdb sql role assignment create --account-name $sourceAccount --resource-group $sourceAccountRG --role-definition-id $roleDefinitionId --scope "/" --principal-id $principalId
    
  6. Cél-előfizetés környezetének alaphelyzetbe állítása
    az account set --subscription $destinationSubId
    

Felhasználó által hozzárendelt felügyelt identitás használata

  1. Felhasználó által hozzárendelt felügyelt identitásváltozó hozzárendelése
    $userAssignedManagedIdentityResourceId = "<CompleteResourceIdOfUserAssignedManagedIdentity>"
    
  2. Cél-előfizetési környezet beállítása
    az account set --subscription $destinationSubId
    
  3. Felhasználó által hozzárendelt felügyelt identitás hozzáadása a célfiókhoz
    $identityOutput = az cosmosdb identity assign -n $destinationAccount -g $destinationAccountRG --identities $userAssignedManagedIdentityResourceId
    $principalId = ($identityOutput | ConvertFrom-Json).userAssignedIdentities.$userAssignedManagedIdentityResourceId.principalId
    
  4. Alapértelmezett identitás beállítása a célfiókon
    az cosmosdb update -n $destinationAccount -g $destinationAccountRG --default-identity=UserAssignedIdentity=$userAssignedManagedIdentityResourceId
    
  5. Forrás-előfizetés környezetének beállítása
    az account set --subscription $sourceSubId
    
  6. Szerepkör-hozzárendelés hozzáadása a forrásfiókhoz
    $roleDefinitionId = "00000000-0000-0000-0000-000000000001"  # Read-only access role
    az cosmosdb sql role assignment create --account-name $sourceAccount --resource-group $sourceAccountRG --role-definition-id $roleDefinitionId --scope "/" --principal-id $principalId
    
  7. Cél-előfizetés környezetének alaphelyzetbe állítása
    az account set --subscription $destinationSubId
    

Tárolómásolási feladat létrehozása

API for NoSQL-fiók

az cosmosdb copy create `
    --resource-group $destinationAccountRG `
    --job-name $jobName `
    --dest-account $destinationAccount `
    --src-account $sourceAccount `
    --dest-nosql database=$destinationDatabase container=$destinationContainer `
    --src-nosql database=$sourceDatabase container=$sourceContainer

Tárolómásolási feladatok kezelése

Tárolómásolási feladat előrehaladásának figyelése

A másolási feladat előrehaladásának és állapotának megtekintése:

az cosmosdb copy show `
    --resource-group $destinationAccountRG `
    --account-name $destinationAccount `
    --job-name $jobName

A fiókban létrehozott összes tárolómásolási feladat listázása

A fiókban létrehozott összes tárolómásolási feladat listázása:

az cosmosdb copy list `
    --resource-group $destinationAccountRG `
    --account-name $destinationAccount

Tárolómásolási feladat szüneteltetése

Egy folyamatban lévő tárolómásolási feladat szüneteltetéséhez használja a következő parancsot:

az cosmosdb copy pause `
    --resource-group $destinationAccountRG `
    --account-name $destinationAccount `
    --job-name $jobName

Tárolómásolási feladat folytatása

A folyamatban lévő tárolómásolási feladat folytatásához használja a következő parancsot:

az cosmosdb copy resume `
    --resource-group $destinationAccountRG `
    --account-name $destinationAccount `
    --job-name $jobName

Tárolómásolási feladat megszakítása

A folyamatban lévő tárolómásolási feladat megszakításához használja a következő parancsot:

az cosmosdb copy cancel `
    --resource-group $destinationAccountRG `
    --account-name $destinationAccount `
    --job-name $jobName

Támogatás kérése a tároló másolásával kapcsolatos problémákhoz

A tárolópéldányokkal kapcsolatos problémák esetén küldjön egy új támogatási kérést az Azure Portalról. Állítsa a probléma típusát "Adatmigrálás" értékre, a Probléma altípust pedig "Tárolómásolat" értékre.

Következő lépések