Taken kopiëren in Azure Cosmos DB (preview)
U kunt gegevens kopiëren in Azure Cosmos DB met behulp van containerkopieertaken.
Mogelijk moet u gegevens uit uw Azure Cosmos DB-account kopiëren als u een van deze scenario's wilt uitvoeren:
- Alle items van de ene container naar de andere kopiëren.
- Wijzig de granulariteit waarmee de doorvoer wordt ingericht, van database naar container en omgekeerd.
- De partitiesleutel van een container wijzigen.
- De unieke sleutels voor een container bijwerken.
- Wijzig de naam van een container of database.
- Wijzig de capaciteitsmodus van een account van serverloos in ingericht of omgekeerd.
- Nieuwe functies gebruiken die alleen worden ondersteund voor nieuwe containers, bijvoorbeeld hiërarchische partitiesleutels.
Kopieertaken kunnen worden gemaakt en beheerd met behulp van Azure CLI-opdrachten.
Aan de slag
Als u aan de slag wilt gaan met onlinecontainerkopie voor Azure Cosmos DB for NoSQL API-accounts, registreert u zich voor de preview-functievlag onlinecontainerkopie (NoSQL) in preview-functies in Azure Portal. Zodra de registratie is voltooid, is de preview van kracht voor alle NoSQL-API-accounts in het abonnement.
Vereisten
- Schakel continue back-up in voor het Azure Cosmos DB-bronaccount .
- Registreer u voor alle versies en verwijder de preview-functie van de wijzigingenfeedmodus voor het abonnement van het bronaccount.
Belangrijk
Alle schrijfbewerkingen naar de broncontainer worden dubbele RU's in rekening gebracht om zowel de vorige als de huidige versies van wijzigingen in items in de container te behouden. Deze verhoging van ru-kosten kan in de toekomst worden gewijzigd.
De gegevens van een container kopiëren
- Maak de Azure Cosmos DB-doelcontainer met behulp van de instellingen die u wilt gebruiken (partitiesleutel, doorvoergranulariteit, aanvraageenheden, unieke sleutel, enzovoort).
- Maak de containerkopietaak.
- Controleer de voortgang van de kopieertaak.
- Zodra alle documenten zijn gekopieerd, stopt u de updates op de broncontainer en roept u de voltooiings-API aan om de taak als voltooid te markeren.
- Hervat de bewerkingen door de toepassing of client naar de bron- of doelcontainer te laten verwijzen zoals bedoeld.
Hoe werkt het kopiëren van containers?
- Het platform wijst rekeninstanties aan de serverzijde toe voor het Azure Cosmos DB-doelaccount om de containerkopieertaken uit te voeren.
- Eén taak wordt op elk gewenst moment uitgevoerd voor alle exemplaren.
- De online kopieertaken maken gebruik van alle versies en verwijderen van de wijzigingenfeedmodus om de gegevens te kopiëren en incrementele wijzigingen van de broncontainer naar de doelcontainer te repliceren.
- Zodra de taak is voltooid, wijst het platform deze instanties na 15 minuten inactiviteit ongedaan.
U kunt offline kopieertaken voor verzamelingen uitvoeren om gegevens te kopiëren binnen hetzelfde Azure Cosmos DB voor Mongo DB-account.
De gegevens van een verzameling kopiëren
- Maak de Azure Cosmos DB-doelverzameling met behulp van de instellingen die u wilt gebruiken (partitiesleutel, doorvoergranulariteit, aanvraageenheden, unieke sleutel, enzovoort).
- Stop de bewerkingen op de bronverzameling door de toepassingsexemplaren of clients te onderbreken die er verbinding mee maken.
- Maak de kopieertaak.
- Controleer de voortgang van de kopieertaak en wacht totdat deze is voltooid.
- Hervat de bewerkingen door de toepassing of client naar de bron- of doelverzameling te laten verwijzen zoals bedoeld.
Notitie
We raden u ten zeerste aan om te stoppen met het uitvoeren van bewerkingen op de bronverzameling voordat u de kopieertaak voor offlineverzameling start. Itemverwijderingen en updates die worden uitgevoerd op de bronverzameling nadat u de kopieertaak hebt gestart, worden mogelijk niet vastgelegd. Als u bewerkingen voor de bronverzameling blijft uitvoeren terwijl de kopieertaak wordt uitgevoerd, hebt u mogelijk dubbele of ontbrekende gegevens in de doelverzameling.
Hoe werkt het kopiëren van verzamelingen?
- Het platform wijst rekenprocessen aan de serverzijde toe voor het Azure Cosmos DB-doelaccount.
- Deze exemplaren worden toegewezen wanneer een of meer verzamelingskopietaken worden gemaakt binnen het account.
- De kopieertaken worden uitgevoerd op deze exemplaren.
- Eén taak wordt op elk gewenst moment uitgevoerd voor alle exemplaren.
- De exemplaren worden gedeeld door alle kopieertaken die in hetzelfde account worden uitgevoerd.
- De offline kopieertaken maken gebruik van Wijzigingenstromen om de gegevens te kopiëren en incrementele wijzigingen van de bronverzameling te repliceren naar de doelverzameling.
- Het platform kan de toewijzing van de exemplaren ongedaan maken als ze langer dan 15 minuten inactief zijn.
U kunt offlinetabelkopie uitvoeren om gegevens van de ene tabel naar een andere tabel te kopiëren binnen hetzelfde Azure Cosmos DB voor Een Apache Cassandra-account.
De gegevens van een tabel kopiëren
- Maak de Azure Cosmos DB-doeltabel met behulp van de instellingen die u wilt gebruiken (partitiesleutel, doorvoergranulariteit, aanvraageenheden enzovoort).
- Stop de bewerkingen in de brontabel door de toepassingsexemplaren of clients te onderbreken die er verbinding mee maken.
- Maak de kopieertaak.
- Controleer de voortgang van de kopieertaak en wacht totdat deze is voltooid.
- Hervat de bewerkingen door de toepassing of client naar de bron- of doeltabel te verwijzen zoals bedoeld.
Notitie
We raden u ten zeerste aan om alle bewerkingen op de brontabel uit te voeren voordat u de offline-tabelkopietaak start. Itemverwijderingen en updates die worden uitgevoerd in de brontabel nadat u de kopieertaak hebt gestart, worden mogelijk niet vastgelegd. Als u bewerkingen op de brontabel blijft uitvoeren terwijl de kopieertaak wordt uitgevoerd, hebt u mogelijk dubbele of ontbrekende gegevens in de doeltabel.
Hoe werkt het kopiëren van tabellen?
- Het platform wijst rekenprocessen aan de serverzijde toe voor het Azure Cosmos DB-doelaccount.
- Deze exemplaren worden toegewezen wanneer een of meer kopieertaken in het account worden gemaakt.
- De kopieertaken worden uitgevoerd op deze exemplaren.
- Eén taak wordt op elk gewenst moment uitgevoerd voor alle exemplaren.
- De exemplaren worden gedeeld door alle kopieertaken die in hetzelfde account worden uitgevoerd.
- De offline kopieertaken maken gebruik van de wijzigingenfeed om de gegevens te kopiëren en incrementele wijzigingen uit de brontabel naar de doeltabel te repliceren.
- Het platform kan de toewijzing van de exemplaren ongedaan maken als ze langer dan 15 minuten inactief zijn.
Factoren die van invloed zijn op de snelheid van een kopieertaak
De snelheid van de voortgang van de containerkopietaak wordt bepaald door deze factoren:
De instelling voor de doorvoer van de broncontainer of database.
De doelcontainer of databasedoorvoerinstelling.
Tip
Stel de doorvoer van de doelcontainer in op ten minste twee keer de doorvoer van de broncontainer.
Rekeninstanties aan de serverzijde die zijn toegewezen aan het Azure Cosmos DB-account voor het uitvoeren van de gegevensoverdracht.
Belangrijk
De standaard-SKU biedt twee exemplaren aan de serverzijde van 4 vCPU's van 16 GB per account.
Beperkingen
Criteria voor geschiktheid voor preview
Taken voor containerkopieën werken niet met accounts waarvoor de volgende mogelijkheden zijn ingeschakeld. Schakel deze functies uit voordat u containerkopietaken uitvoert:
Accountconfiguraties
De TTL-instelling (Time to Live) wordt niet aangepast in de doelcontainer. Als een document hierdoor niet is verlopen in de broncontainer, wordt het aftellen opnieuw gestart in de doelcontainer.
Veelgestelde vragen
Is er een service level agreement voor containerkopieertaken?
Taken voor het kopiëren van containers worden momenteel op basis van best effort ondersteund. We bieden geen SLA-garanties (Service Level Agreement) voor de tijd die nodig is om de taken te voltooien.
Kan ik meerdere taken voor het kopiëren van containers binnen een account maken?
Ja, u kunt meerdere taken binnen hetzelfde account maken. De taken worden opeenvolgend uitgevoerd. U kunt alle taken weergeven die in een account zijn gemaakt en de voortgang ervan controleren.
Kan ik een volledige database kopiëren binnen het Azure Cosmos DB-account?
U moet een taak maken voor elke container in de database.
Ik heb een Azure Cosmos DB-account met meerdere regio's. In welke regio wordt de containerkopietaak uitgevoerd?
De containerkopietaak wordt uitgevoerd in de schrijfregio. In een account dat is geconfigureerd met schrijfbewerkingen in meerdere regio's, wordt de taak uitgevoerd in een van de regio's in de lijst met schrijfregio's.
Wat gebeurt er met de containerkopietaken wanneer de schrijfregio van het account wordt gewijzigd?
De schrijfregio van het account kan veranderen in het zeldzame scenario van een regiostoring of vanwege handmatige failover. In dit scenario mislukken onvolledige taken voor het kopiëren van containers die in het account zijn gemaakt. U moet deze mislukte taken opnieuw maken. Opnieuw gemaakte taken worden vervolgens uitgevoerd in de nieuwe (huidige) schrijfregio.
Ondersteunde regio’s
Op dit moment wordt containerkopie ondersteund in de volgende regio's:
Noord- en Zuid-Amerika | Europa en Afrika | Azië en Stille Oceaan |
---|---|---|
Brazilië - zuid | Frankrijk - centraal | Australië - centraal |
Canada - midden | Frankrijk - zuid | Australië - centraal 2 |
Canada - oost | Duitsland - noord | Australië - oost |
Central US | Duitsland - west-centraal | India - centraal |
VS - centraal EUAP | Europa - noord | Japan East |
VS - oost | Noorwegen - oost | Korea - centraal |
VS - oost 2 | Noorwegen - west | Azië - zuidoost |
VS - oost 2 EUAP | Zwitserland - noord | UAE - centraal |
VS - noord-centraal | Zwitserland - west | India - west |
VS - zuid-centraal | Verenigd Koninkrijk Zuid | Azië - oost |
VS - west-centraal | Verenigd Koninkrijk West | Maleisië - zuid |
VS - west | Europa -west | Japan - west |
VS - west 2 | Israël - centraal | Australië - zuidoost |
Niet ondersteund | Zuid-Afrika - noord | Niet ondersteund |
Bekende en veelvoorkomende problemen
Fout: de eigenaarresource bestaat niet.
Als het maken van de taak mislukt en de resource eigenaar van de fout niet bestaat (foutcode 404), is de doelcontainer nog niet gemaakt of komt de containernaam die wordt gebruikt voor het maken van de taak niet overeen met een werkelijke containernaam.
Zorg ervoor dat de doelcontainer is gemaakt voordat u de taak uitvoert en zorg ervoor dat de containernaam in de taak overeenkomt met een werkelijke containernaam.
"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\"]
Fout: aanvraag is niet gemachtigd.
Als de aanvraag mislukt en de fout Niet geautoriseerd (foutcode 401) weergeeft, is lokale autorisatie mogelijk uitgeschakeld.
Containerkopieertaken maken gebruik van primaire sleutels voor verificatie. Als lokale autorisatie is uitgeschakeld, mislukt het maken van de taak. Lokale autorisatie moet zijn ingeschakeld om taken voor het kopiëren van containers te laten werken.
"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."
Fout: fout bij het verkrijgen van resources voor de taak.
Deze fout kan optreden vanwege interne serverproblemen. Neem contact op met Microsoft Ondersteuning door een nieuwe ondersteuningsaanvraag te openen in Azure Portal om dit probleem op te lossen. Selecteer gegevensmigratie voor probleemtype. Selecteer voor subtype Probleem de optie Containerkopie binnen het account.
"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
Volgende stappen
- Meer informatie over het maken, bewaken en beheren van kopieertaken voor containers in een Azure Cosmos DB-account met behulp van CLI-opdrachten.