Kopiera jobb i Azure Cosmos DB (förhandsversion)
Du kan utföra datakopiering i Azure Cosmos DB med hjälp av containerkopieringsjobb.
Du kan behöva kopiera data från ditt Azure Cosmos DB-konto om du vill uppnå något av följande scenarier:
- Kopiera alla objekt från en container till en annan.
- Ändra kornigheten där dataflödet etableras, från databas till container och vice versa.
- Ändra partitionsnyckeln för en container.
- Uppdatera de unika nycklarna för en container.
- Byt namn på en container eller databas.
- Ändra kapacitetsläget för ett konto från serverlös till etablerad eller vice versa.
- Anta nya funktioner som endast stöds för nya containrar, t.ex. hierarkiska partitionsnycklar.
Kopieringsjobb kan skapas och hanteras med hjälp av Azure CLI-kommandon.
Kom igång med onlinecontainerkopiering för Azure Cosmos DB för NoSQL API-konton genom att registrera dig för funktionsflaggan Förhandsgranskning av onlinecontainerkopiering (NoSQL) i förhandsversionsfunktioner i Azure Portal. När registreringen är klar gäller förhandsversionen för alla NoSQL API-konton i prenumerationen.
- Aktivera kontinuerlig säkerhetskopiering på Azure Cosmos DB-källkontot.
- Registrera dig för förhandsversionen av alla versioner och ta bort förhandsversionen av ändringsflödesläget i källkontots prenumeration.
Viktigt
Alla skrivåtgärder till källcontainern debiteras dubbla RU:er för att bevara både tidigare och aktuella versioner av ändringar av objekt i containern. Denna RU-avgiftsökning kan komma att ändras i framtiden.
- Skapa Azure Cosmos DB-målcontainern med hjälp av de inställningar som du vill använda (partitionsnyckel, dataflödeskornighet, enheter för begäranden, unik nyckel och så vidare).
- Skapa containerkopieringsjobbet.
- Övervaka förloppet för kopieringsjobbet.
- När alla dokument har kopierats stoppar du uppdateringarna i källcontainern och anropar sedan API:et för slutförande för att markera jobbet som slutfört.
- Återuppta åtgärderna genom att rikta programmet eller klienten till käll- eller målcontainern på rätt sätt.
- Plattformen allokerar beräkningsinstanser på serversidan för azure Cosmos DB-målkontot för att köra containerkopieringsjobben.
- Ett enda jobb körs över alla instanser när som helst.
- Onlinekopieringsjobben använder alla versioner och tar bort ändringsflödesläget för att kopiera data och replikera inkrementella ändringar från källcontainern till målcontainern.
- När jobbet har slutförts avallokerar plattformen dessa instanser efter 15 minuters inaktivitet.
Du kan utföra kopieringsjobb offline för att kopiera data i samma Azure Cosmos DB för Mongo DB-konto.
- Skapa Azure Cosmos DB-målsamlingen med hjälp av de inställningar som du vill använda (partitionsnyckel, dataflödeskornighet, enheter för begäranden, unik nyckel och så vidare).
- Stoppa åtgärderna i källsamlingen genom att pausa programinstanserna eller alla klienter som ansluter till den.
- Skapa kopieringsjobbet.
- Övervaka förloppet för kopieringsjobbet och vänta tills det har slutförts.
- Återuppta åtgärderna genom att på lämpligt sätt peka programmet eller klienten mot käll- eller målsamlingen som avsett.
Anteckning
Vi rekommenderar starkt att du slutar utföra några åtgärder i källsamlingen innan du påbörjar kopieringsjobbet för offlinesamlingen. Objektborttagningar och uppdateringar som görs i källsamlingen när du har startat kopieringsjobbet kanske inte registreras. Om du fortsätter att utföra åtgärder i källsamlingen medan kopieringsjobbet pågår kan du ha duplicerade eller saknade data i målsamlingen.
- Plattformen allokerar beräkningsinstanser på serversidan för azure Cosmos DB-målkontot.
- Dessa instanser allokeras när ett eller flera samlingskopieringsjobb skapas i kontot.
- Kopieringsjobben körs på dessa instanser.
- Ett enda jobb körs över alla instanser när som helst.
- Instanserna delas av alla kopieringsjobb som körs inom samma konto.
- Offlinekopieringsjobben använder Ändringsströmmar för att kopiera data och replikera inkrementella ändringar från källsamlingen till målsamlingen.
- Plattformen kan avallokera instanserna om de är inaktiva i mer än 15 minuter.
Du kan utföra offlinetabellkopiering för att kopiera data från en tabell till en annan tabell i samma Azure Cosmos DB för Apache Cassandra-kontot.
- Skapa Azure Cosmos DB-måltabellen med hjälp av de inställningar som du vill använda (partitionsnyckel, dataflödeskornighet, enheter för begäranden och så vidare).
- Stoppa åtgärderna i källtabellen genom att pausa programinstanserna eller klienter som ansluter till den.
- Skapa kopieringsjobbet.
- Övervaka förloppet för kopieringsjobbet och vänta tills det har slutförts.
- Återuppta åtgärderna genom att på lämpligt sätt peka programmet eller klienten mot käll- eller måltabellen som avsett.
Anteckning
Vi rekommenderar starkt att du slutar utföra åtgärder i källtabellen innan du påbörjar offline-tabellkopieringsjobbet. Objektborttagningar och uppdateringar som görs i källtabellen när du har startat kopieringsjobbet kanske inte registreras. Om du fortsätter att utföra åtgärder i källtabellen medan kopieringsjobbet pågår kan du ha duplicerade eller saknade data i måltabellen.
- Plattformen allokerar beräkningsinstanser på serversidan för azure Cosmos DB-målkontot.
- Dessa instanser allokeras när ett eller flera kopieringsjobb skapas i kontot.
- Kopieringsjobben körs på dessa instanser.
- Ett enda jobb körs över alla instanser när som helst.
- Instanserna delas av alla kopieringsjobb som körs inom samma konto.
- Offlinekopieringsjobben använder Ändringsflöde för att kopiera data och replikera inkrementella ändringar från källtabellen till måltabellen.
- Plattformen kan avallokera instanserna om de är inaktiva i mer än 15 minuter.
Frekvensen för förloppet för containerkopieringsjobb bestäms av följande faktorer:
Inställningen för källcontainer eller databasdataflöde.
Inställningen för målcontainer eller databasdataflöde.
Tips
Ange målcontainerns dataflöde till minst två gånger källcontainerns dataflöde.
Beräkningsinstanser på serversidan som allokeras till Azure Cosmos DB-kontot för att utföra dataöverföringen.
Viktigt
Standard-SKU:n erbjuder två 4-vCPU 16 GB instanser på serversidan per konto.
Containerkopieringsjobb fungerar inte med konton som har följande funktioner aktiverade. Inaktivera dessa funktioner innan du kör containerkopieringsjobb:
TTL-inställningen (Time to Live) justeras inte i målcontainern. Om ett dokument inte har upphört att gälla i källcontainern startar det därför nedräkningen på nytt i målcontainern.
Containerkopieringsjobb stöds för närvarande på bästa sätt. Vi tillhandahåller inga serviceavtalsgarantier (SLA) för den tid det tar för jobben att slutföras.
Ja, du kan skapa flera jobb inom samma konto. Jobben körs i följd. Du kan visa en lista över alla jobb som skapas i ett konto och övervaka deras förlopp.
Du måste skapa ett jobb för varje container i databasen.
Jag har ett Azure Cosmos DB-konto med flera regioner. I vilken region körs containerkopieringsjobbet?
Containerkopieringsjobbet körs i skrivregionen. I ett konto som har konfigurerats med skrivningar i flera regioner körs jobbet i en av regionerna i listan över skrivregioner.
Kontots skrivregion kan ändras i det sällsynta scenariot med ett regionstopp eller på grund av manuell redundans. I det här scenariot misslyckas ofullständiga containerkopieringsjobb som skapades i kontot. Du skulle behöva återskapa de här misslyckade jobben. Återskapade jobb körs sedan i den nya (aktuella) skrivregionen.
För närvarande stöds containerkopiering i följande regioner:
Nord- och Sydamerika | Europa och Afrika | Asien och stillahavsområdet |
---|---|---|
Brasilien, södra | Frankrike, centrala | Australien, centrala |
Kanada, centrala | Frankrike, södra | Australien, centrala 2 |
Kanada, östra | Tyskland, norra | Australien, östra |
Central US | Tyskland, västra centrala | Indien, centrala |
Centrala USA EUAP | Europa, norra | Japan, östra |
USA, östra | Norge, östra | Sydkorea, centrala |
USA, östra 2 | Västra Norge | Sydostasien |
Östra USA 2 EUAP | Schweiz, norra | Förenade Arabemiraten, centrala |
Norra centrala USA | Schweiz, västra | Västra Indien |
USA, södra centrala | Södra Storbritannien | Asien, östra |
Västra centrala USA | Västra Storbritannien | Malaysia, södra |
Västra USA | Västeuropa | Västra Japan |
Västra USA 2 | Israel, centrala | Sydöstra Australien |
Stöds inte | Sydafrika, norra | Stöds inte |
Fel – Ägarresursen finns inte.
Om jobbskapandet misslyckas och visar felet Ägarresurs finns inte (felkod 404) har målcontainern inte skapats än eller så matchar inte containernamnet som används för att skapa jobbet ett faktiskt containernamn.
Kontrollera att målcontainern har skapats innan du kör jobbet och se till att containernamnet i jobbet matchar ett faktiskt containernamn.
"code": "404", "message": "Response status code does not indicate success: NotFound (404); Substatus: 1003; ActivityId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx; Reason: (Message: {\"Errors\":[\"Owner resource does not exist\"]
Fel – Begäran är obehörig.
Om begäran misslyckas och visar felet Obehörig (felkod 401) kan lokal auktorisering inaktiveras.
Containerkopieringsjobb använder primära nycklar för att autentisera. Om lokal auktorisering är inaktiverad misslyckas jobbskapandet. Lokal auktorisering måste vara aktiverat för att containerkopieringsjobb ska fungera.
"code": "401", "message": " Response status code does not indicate success: Unauthorized (401); Substatus: 5202; ActivityId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx; Reason: Local Authorization is disabled. Use an AAD token to authorize all requests."
Fel – Fel vid hämtar resurser för jobbet.
Det här felet kan inträffa på grund av interna serverproblem. Lös problemet genom att kontakta Microsoft Support genom att öppna en ny supportbegäran i Azure Portal. För Problemtyp väljer du Datamigrering. För Problemundertyp väljer du Containerkopiering för intrakonto.
"code": "500" "message": "Error while getting resources for job, StatusCode: 500, SubStatusCode: 0, OperationId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, ActivityId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
- Lär dig hur du skapar, övervakar och hanterar containerkopieringsjobb i Azure Cosmos DB-kontot med hjälp av CLI-kommandon.