Tárolómásolási feladatok létrehozása és kezelése az Azure Cosmos DB-ben (előzetes verzió)
A másolási feladatok segítenek létrehozni a tárolók másolatát az Azure Cosmos DB-fiókokban.
Ez a cikk bemutatja, hogyan hozhat létre, monitorozhat és kezelhet 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
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
Feljegyzés
Ez a lépés nem szükséges, ha adatokat másol ugyanabban az Azure Cosmos DB-fiókban.
Miközben adatokat másol az egyik fiók tárolójából egy másik fiók tárolójába, olvasási hozzáférést kell biztosítani a forrástárolónak a célfiók identitásához a másolási művelet végrehajtá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
- Cél-előfizetési környezet beállítása
az account set --subscription $destinationSubId
- Rendszeridentitás hozzáadása a célfiókhoz
$identityOutput = az cosmosdb identity assign -n $destinationAccount -g $destinationAccountRG $principalId = ($identityOutput | ConvertFrom-Json).principalId
- Alapértelmezett identitás beállítása a célfiókon
az cosmosdb update -n $destinationAccount -g $destinationAccountRG --default-identity="SystemAssignedIdentity"
- Forrás-előfizetés környezetének beállítása
az account set --subscription $sourceSubId
- 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
- 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
- Felhasználó által hozzárendelt felügyelt identitásváltozó hozzárendelése
$userAssignedManagedIdentityResourceId = "<CompleteResourceIdOfUserAssignedManagedIdentity>"
- Cél-előfizetési környezet beállítása
az account set --subscription $destinationSubId
- 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
- Alapértelmezett identitás beállítása a célfiókon
az cosmosdb update -n $destinationAccount -g $destinationAccountRG --default-identity=UserAssignedIdentity=$userAssignedManagedIdentityResourceId
- Forrás-előfizetés környezetének beállítása
az account set --subscription $sourceSubId
- 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
- Cél-előfizetés környezetének alaphelyzetbe állítása
az account set --subscription $destinationSubId
Másolási feladat létrehozása
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
Folyamat figyelése
Figyelje az előrehaladást az alábbi paranccsal.
az cosmosdb copy show `
--resource-group $destinationAccountRG `
--account-name $destinationAccount `
--job-name $jobName
- Teljes szám – A forrástárolóban lévő módosítások (összes dokumentum + új módosítások) teljes számát jeleníti meg adott időpontban.
- Feldolgozott szám – A forrástároló változáscsatornájából érkező események teljes számát jelöli, amelyeket a másolási feladat feldolgozott.
Másolási feladat befejezése
- Ha a feldolgozott szám nagyobb vagy egyenlő lesz a teljes számnál, kapcsolja ki a forrástároló összes frissítését, és várjon 5–10 percet a fennmaradó módosítások kiürítéséhez.
- Futtassa a befejezési API-t a másolási feladat befejezéséhez és a számítási erőforrások felszabadításához. Ez a művelet a fennmaradó módosításokat (ha vannak) a céltárolóba is beírja.
az cosmosdb copy complete `
--resource-group $destinationAccountRG `
--account-name $destinationAccount `
--job-name $jobName
- Szükség esetén frissítse az ügyfélalkalmazásokat az új (cél) tároló használatának megkezdéséhez.
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 = ""
$sourceCollection = ""
$destinationDatabase = ""
$destinationCollection = ""
Másolási feladat létrehozása
Hozzon létre egy feladatot egy gyűjtemény 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
Feljegyzés
--job-name
egyedinek kell lennie az egyes feladatokhoz egy fiókon belül.
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 = ""
$sourceKeySpace = ""
$sourceTable = ""
$destinationKeySpace = ""
$destinationTable = ""
Másolási feladat létrehozása
Hozzon létre egy táblát az Apache Cassandra-fiókhoz készült Azure Cosmos DB-ben:
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
Feljegyzés
--job-name
egyedinek kell lennie az egyes feladatokhoz egy fiókon belül.
Másolási feladatok kezelése
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 másolási feladat listázása
A fiókban létrehozott összes másolási feladat listázása:
az cosmosdb copy list `
--resource-group $destinationAccountRG `
--account-name $destinationAccount
Másolási feladat szüneteltetése
Egy folyamatban lévő 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
Másolási feladat folytatása
A folyamatban lévő 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
Másolási feladat megszakítása
A folyamatban lévő 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 másolási problémák esetén
Másolási feladattal 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
- A tárolómásolási feladatokról további információt a Feladatok másolása című témakörben talál.