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:

Kopieringsjobb kan skapas och hanteras med hjälp av Azure CLI-kommandon.

Kom igång

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.

Förutsättningar

  1. Aktivera kontinuerlig säkerhetskopiering på Azure Cosmos DB-källkontot.
  2. 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.

Kopiera en containers data

  1. 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).
  2. Skapa containerkopieringsjobbet.
  3. Övervaka förloppet för kopieringsjobbet.
  4. 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.
  5. Återuppta åtgärderna genom att rikta programmet eller klienten till käll- eller målcontainern på rätt sätt.

Hur fungerar containerkopiering?

  1. Plattformen allokerar beräkningsinstanser på serversidan för azure Cosmos DB-målkontot för att köra containerkopieringsjobben.
  2. Ett enda jobb körs över alla instanser när som helst.
  3. 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.
  4. 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.

Kopiera en samlings data

  1. 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).
  2. Stoppa åtgärderna i källsamlingen genom att pausa programinstanserna eller alla klienter som ansluter till den.
  3. Skapa kopieringsjobbet.
  4. Övervaka förloppet för kopieringsjobbet och vänta tills det har slutförts.
  5. Återuppta åtgärderna genom att på lämpligt sätt peka programmet eller klienten mot käll- eller målsamlingen som avsett.

Kommentar

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.

Hur fungerar samlingskopiering?

  1. Plattformen allokerar beräkningsinstanser på serversidan för azure Cosmos DB-målkontot.
  2. Dessa instanser allokeras när ett eller flera samlingskopieringsjobb skapas i kontot.
  3. Kopieringsjobben körs på dessa instanser.
  4. Ett enda jobb körs över alla instanser när som helst.
  5. Instanserna delas av alla kopieringsjobb som körs inom samma konto.
  6. Offlinekopieringsjobben använder Ändringsströmmar för att kopiera data och replikera inkrementella ändringar från källsamlingen till målsamlingen.
  7. 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.

Kopiera en tabells data

  1. 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).
  2. Stoppa åtgärderna i källtabellen genom att pausa programinstanserna eller klienter som ansluter till den.
  3. Skapa kopieringsjobbet.
  4. Övervaka förloppet för kopieringsjobbet och vänta tills det har slutförts.
  5. Återuppta åtgärderna genom att på lämpligt sätt peka programmet eller klienten mot käll- eller måltabellen som avsett.

Kommentar

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.

Hur fungerar tabellkopiering?

  1. Plattformen allokerar beräkningsinstanser på serversidan för azure Cosmos DB-målkontot.
  2. Dessa instanser allokeras när ett eller flera kopieringsjobb skapas i kontot.
  3. Kopieringsjobben körs på dessa instanser.
  4. Ett enda jobb körs över alla instanser när som helst.
  5. Instanserna delas av alla kopieringsjobb som körs inom samma konto.
  6. Offlinekopieringsjobben använder Ändringsflöde för att kopiera data och replikera inkrementella ändringar från källtabellen till måltabellen.
  7. Plattformen kan avallokera instanserna om de är inaktiva i mer än 15 minuter.

Faktorer som påverkar kopieringsjobbets hastighet

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.

    Dricks

    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.

Begränsningar

Villkor för förhandsversion av berättigande

Containerkopieringsjobb fungerar inte med konton som har följande funktioner aktiverade. Inaktivera dessa funktioner innan du kör containerkopieringsjobb:

Kontokonfigurationer

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.

Vanliga frågor och svar

Finns det ett serviceavtal för containerkopieringsjobb?

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.

Kan jag skapa flera containerkopieringsjobb i ett konto?

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.

Kan jag kopiera en hel databas i Azure Cosmos DB-kontot?

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.

Vad händer med containerkopieringsjobben när kontots skrivregion ändras?

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.

Regioner som stöds

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

Kända och vanliga problem

  • 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
    

Nästa steg