Containerkopieringsjobb inom kontot i Azure Cosmos DB (förhandsversion)
GÄLLER FÖR: Nosql
Cassandra
Du kan utföra offlinekopiering av containrar i ett Azure Cosmos DB-konto med hjälp av containerkopieringsjobb.
Du kan behöva kopiera data i 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 den kornighet med vilken 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.
- Byta namn på en container/databas.
- Införa nya funktioner som endast stöds i nya containrar.
Containerkopieringsjobb inom kontot kan skapas och hanteras med hjälp av CLI-kommandon.
Kom igång
Kom igång med att använda containerkopieringsjobb genom att registrera dig för förhandsversionen Av offlinecontainerkopiering (Cassandra & SQL) för intrakonto från listan Förhandsversionsfunktioner i Azure Portal. När registreringen är klar gäller förhandsversionen för alla Cassandra- och API:et för NoSQL-konton i prenumerationen.
Översikt över de steg som krävs för att kopiera containrar
- Skapa Azure Cosmos DB-målcontainern med önskade inställningar (partitionsnyckel, dataflödeskornighet, RU:er, unik nyckel osv.).
- Stoppa åtgärderna i källcontainern genom att pausa programinstanserna eller klienter som ansluter till den.
- Skapa containerkopieringsjobbet.
- Övervaka förloppet för containerkopieringsjobbet och vänta tills det har slutförts.
- Återuppta åtgärderna genom att peka programmet eller klienten på käll- eller målcontainerns kopia som avsett.
Hur fungerar containerkopiering inom kontot?
Containerkopieringsjobb inom kontot utför offlinekopiering av data med hjälp av källcontainerns inkrementella ändringsflödeslogg.
- Plattformen allokerar beräkningsinstanser på serversidan för Azure Cosmos DB-kontot.
- Dessa instanser allokeras när ett eller flera containerkopieringsjobb skapas i kontot.
- Containerkopieringsjobben körs på dessa instanser.
- Ett enda jobb körs över alla instanser när som helst.
- Instanserna delas av alla containerkopieringsjobb som körs inom samma konto.
- Plattformen kan frigöra instanserna om de är inaktiva >i 15 minuter.
Anteckning
Vi stöder för närvarande endast offline-containerkopieringsjobb. Därför rekommenderar vi starkt att du slutar utföra åtgärder på källcontainern innan du påbörjar containerkopian. Objektborttagningar och uppdateringar som görs i källcontainern när kopieringsjobbet har påbörjats kanske inte registreras. Om du fortsätter att utföra åtgärder på källcontainern medan containerjobbet pågår kan det därför resultera i ytterligare eller saknade data i målcontainern.
Faktorer som påverkar hastigheten för ett containerkopieringsjobb
Förloppet för containerkopieringsjobbet bestäms av följande faktorer:
Inställning för källcontainer/databasdataflöde.
Dataflödesinställning för målcontainer/databas.
Tips
Ange målcontainerns dataflöde till minst två gånger källcontainerns dataflöde.
Beräkningsinstanser på serversidan som allokerats till Azure Cosmos DB-kontot för att utföra dataöverföringen.
Viktigt
Standard-SKU:n erbjuder två 4 vCPU-instanser på 16 GB på serversidan per konto.
Vanliga frågor och svar
Finns det ett serviceavtal för containerkopieringsjobben?
Containerkopieringsjobb stöds för närvarande efter bästa förmåga. Vi tillhandahåller inga SLA-garantier för den tid det tar att slutföra dessa jobb.
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 skapats 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 kommer containerkopieringsjobbet att köras?
Containerkopieringsjobbet körs i skrivregionen. Om det finns konton som har konfigurerats med skrivningar i flera regioner körs jobbet i en av regionerna i listan.
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 ett sådant scenario skulle ofullständiga containerkopieringsjobb som skapats i kontot misslyckas. Du skulle behöva återskapa dessa misslyckade jobb. Återskapade jobb skulle sedan köras i den nya (aktuella) skrivregionen.
Varför skapas en ny databas __datatransferstate i kontot när jag kör containerkopieringsjobb? Debiteras jag för den här databasen?
- __datatransferstate är en databas som skapas när du kör containerkopieringsjobb. Den här databasen används av plattformen för att lagra tillståndet och förloppet för kopieringsjobbet.
- Databasen använder manuellt etablerat dataflöde på 800 RU:er. Du debiteras för den här databasen.
- Om du tar bort den här databasen tas jobbhistoriken för containerkopiering bort från kontot. Det kan tas bort på ett säkert sätt när alla jobb i kontot har slutförts, om du inte längre behöver jobbhistoriken. Plattformen rensar inte __datatransferstate-databasen automatiskt.
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 |
USA, centrala EUAP | Europa, norra | Japan, östra |
East US | Norge, östra | Sydkorea, centrala |
USA, östra 2 | Norge, västra | Sydostasien |
USA, östra 2 (EUAP) | Schweiz, norra | Förenade Arabemiraten, centrala |
USA, norra centrala | Schweiz, västra | Indien, västra |
USA, södra centrala | Storbritannien, södra | |
USA, västra centrala | Storbritannien, västra | |
USA, västra | Europa, västra | |
USA, västra 2 |
Kända/vanliga problem
Fel – Ägarresursen finns inte
Om jobbskapandet misslyckas med felet "Ägarresursen finns inte" innebär det att målcontainern inte skapades eller var felstavad. Kontrollera att målcontainern har skapats innan du kör jobbet enligt beskrivningen i översiktsavsnittet.
"code": "500", "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 – Databasskapande av delat dataflöde stöds inte för serverlösa konton
Jobbskapande på serverlösa konton kan misslyckas med felet "Databasskapande av delat dataflöde stöds inte för serverlösa konton". Som en lösning skapar du en databas med namnet __datatransferstate manuellt i kontot och försöker skapa containerkopieringsjobbet igen.
ERROR: (BadRequest) Response status code does not indicate success: BadRequest (400); Substatus: 0; ActivityId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx; Reason: (Shared throughput database creation is not supported for serverless accounts.
Fel – (Begäran) blockeras av cosmos DB-kontots brandväggsinställningar.
Begäran om att skapa jobb kan blockeras om klientens IP-adress inte tillåts enligt det virtuella nätverk och brandväggs-IP-adresser som konfigurerats för kontot. För att komma förbi det här problemet måste du tillåta åtkomst till IP-adressen via brandväggsinställningen. Alternativt kan du ange Acceptera anslutningar från offentliga Azure-datacenter i brandväggsinställningarna och köra containerkopieringskommandona via portalen Cloud Shell.
InternalServerError Request originated from IP xxx.xxx.xxx.xxx through public internet. This is blocked by your Cosmos DB account firewall settings. More info: https://aka.ms/cosmosdb-tsg-forbidden ActivityId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx