Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Kopieringsjobb hjälper dig att skapa kopior av containrar i Azure Cosmos DB-konton.
Den här artikeln beskriver hur du skapar, övervakar och hanterar kopieringsjobb med hjälp av Azure CLI-kommandon.
Förutsättningar
- Du kan använda Cloud Shell-portalen för att köra containerkopieringskommandon. Alternativt kan du köra kommandona lokalt. Kontrollera att Azure CLI är installerat på datorn.
 - För närvarande stöds containerkopiering endast i dessa regioner. Kontrollera att ditt kontos skrivregion tillhör den här listan.
 - Installera azure Cosmos DB-förhandsgranskningstillägget, som innehåller containerkopieringskommandona.
az extension add --name cosmosdb-preview 
Ange gränssnittsvariabler
Ange först alla variabler som varje enskilt skript använder.
$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 = ""
Tilldela läsbehörighet
Kommentar
Det här steget krävs inte om du kopierar data inom samma Azure Cosmos DB-konto.
När du kopierar data från ett kontos container till ett annat kontos container måste du ge läsbehörighet för källcontainern till målkontots identitet. Följ dessa steg för att tilldela nödvändig läsbehörighet till målkontot.
Använda systemhanterad identitet
- Ange målprenumerationskontext: 
az account set --subscription $destinationSubId - Lägg till systemidentitet på målkontot: 
$identityOutput = az cosmosdb identity assign -n $destinationAccount -g $destinationAccountRG $principalId = ($identityOutput | ConvertFrom-Json).principalId - Ange standardidentitet för målkontot: 
az cosmosdb update -n $destinationAccount -g $destinationAccountRG --default-identity="SystemAssignedIdentity" - Ange källprenumerationskontext: 
az account set --subscription $sourceSubId - Lägg till rolltilldelning för källkontot: 
# 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 - Återställ målprenumerationskontext: 
az account set --subscription $destinationSubId 
Använda användartilldelad hanterad identitet
- Tilldela användartilldelad hanterad identitetsvariabel: 
$userAssignedManagedIdentityResourceId = "<CompleteResourceIdOfUserAssignedManagedIdentity>" - Ange målprenumerationskontext: 
az account set --subscription $destinationSubId - Lägg till användartilldelad hanterad identitet för målkontot: 
$identityOutput = az cosmosdb identity assign -n $destinationAccount -g $destinationAccountRG --identities $userAssignedManagedIdentityResourceId $principalId = ($identityOutput | ConvertFrom-Json).userAssignedIdentities.$userAssignedManagedIdentityResourceId.principalId - Ange standardidentitet för målkontot: 
az cosmosdb update -n $destinationAccount -g $destinationAccountRG --default-identity=UserAssignedIdentity=$userAssignedManagedIdentityResourceId - Ange källprenumerationskontext: 
az account set --subscription $sourceSubId - Lägg till rolltilldelning för källkontot: 
$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 - Återställ målprenumerationskontext: 
az account set --subscription $destinationSubId 
Skapa kopieringsjobb
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
    --mode Online
Övervaka förloppet
Övervaka förloppet med hjälp av det här kommandot:
az cosmosdb copy show `
    --resource-group $destinationAccountRG `
    --account-name $destinationAccount `
    --job-name $jobName
- Totalt antal representerar det totala antalet ändringar (totalt dokument + eventuella nya ändringar) i källcontainern vid en viss tidpunkt.
 - Bearbetade antal representerar det totala antalet händelser som kommer från källcontainerns ändringsflöde som bearbetades av kopieringsjobbet.
 
Slutför kopieringsjobbet
- När det bearbetade antalet blir större än eller lika med det totala antalet inaktiverar du alla uppdateringar i källcontainern och väntar i 5–10 minuter för att rensa eventuella återstående ändringar.
 - Kör API:et för slutförande för att slutföra kopieringsjobbet och kostnadsfria beräkningsresurser. Detta skriver även de återstående ändringarna (om några) till målcontainern.
 
    az cosmosdb copy complete `
        --resource-group $destinationAccountRG `
        --account-name $destinationAccount `
        --job-name $jobName
- Uppdatera klientprogrammen så att de börjar använda den nya containern (mål) om det behövs.
 
Ange gränssnittsvariabler
Ange först alla variabler som varje enskilt skript använder.
$destinationRG = "<destination-resource-group-name>"
$sourceAccount = "<cosmos-source-account-name>"
$destinationAccount = "<cosmos-destination-account-name>"
$jobName = ""
$sourceDatabase = ""
$sourceCollection = ""
$destinationDatabase = ""
$destinationCollection = ""
Skapa kopieringsjobb
Skapa ett jobb för att kopiera en samling i ett Azure Cosmos DB API för MongoDB-konto:
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 
Kommentar
              --job-name ska vara unikt för varje jobb i ett konto.
Ange gränssnittsvariabler
Ange först alla variabler som varje enskilt skript använder.
$destinationRG = "<destination-resource-group-name>"
$sourceAccount = "<cosmos-source-account-name>"
$destinationAccount = "<cosmos-destination-account-name>"
$jobName = ""
$sourceKeySpace = ""
$sourceTable = ""
$destinationKeySpace = ""
$destinationTable = ""
Skapa kopieringsjobb
Skapa jobb för att kopiera en tabell i en Azure Cosmos DB för Apache Cassandra-konto:
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 
Kommentar
              --job-name ska vara unikt för varje jobb i ett konto.
Hantera kopieringsjobb
Övervaka förloppet för ett kopieringsjobb
Visa förloppet och statusen för ett kopieringsjobb:
az cosmosdb copy show `
    --resource-group $destinationAccountRG `
    --account-name $destinationAccount `
    --job-name $jobName
Visa en lista över alla kopieringsjobb som skapats i ett konto
Så här visar du en lista över alla kopieringsjobb som skapats i ett konto:
az cosmosdb copy list `
    --resource-group $destinationAccountRG `
    --account-name $destinationAccount
Pausa ett kopieringsjobb
Du kan använda kommandot för att pausa ett pågående kopieringsjobb:
az cosmosdb copy pause `
    --resource-group $destinationAccountRG `
    --account-name $destinationAccount `
    --job-name $jobName
Återuppta ett kopieringsjobb
För att återuppta ett pågående kopieringsjobb kan du använda det här kommandot:
az cosmosdb copy resume `
    --resource-group $destinationAccountRG `
    --account-name $destinationAccount `
    --job-name $jobName
Avbryta ett kopieringsjobb
Om du vill avbryta ett pågående kopieringsjobb kan du använda det här kommandot:
az cosmosdb copy cancel `
    --resource-group $destinationAccountRG `
    --account-name $destinationAccount `
    --job-name $jobName
Få stöd för kopieringsproblem
För problem som rör ett kopieringsjobb skapar du en ny supportbegäran från Azure Portal. Ange undertypen Problemtyp som Datamigrering och Problem som Containerkopia.
Nästa steg
- Mer information om containerkopieringsjobb finns i Kopiera jobb.