Kontinuerlig säkerhetskopiering med återställning till tidpunkt i Azure Cosmos DB

GÄLLER FÖR: Nosql Mongodb Gremlin Tabell

Azure Cosmos DB:s funktion för återställning till tidpunkt hjälper till i flera scenarier, till exempel:

  • Återställning från en oavsiktlig skriv- eller borttagningsåtgärd i en container.
  • Återställa ett borttaget konto, en databas eller en container.
  • Återställning till valfri region (där säkerhetskopior fanns) vid återställningspunkten.

Azure Cosmos DB utför säkerhetskopiering av data i bakgrunden utan att förbruka något extra etablerat dataflöde (RU:er) eller påverka databasens prestanda och tillgänglighet. Kontinuerliga säkerhetskopieringar görs i varje region där kontot finns. Ett konto kan till exempel ha en skrivregion i USA, västra och läsa regioner i USA, östra och USA, östra 2. Dessa replikregioner kan sedan säkerhetskopieras till ett fjärranslutet Azure Storage-konto i respektive region. Som standard lagrar varje region säkerhetskopian i lokalt redundanta lagringskonton. Om regionen har tillgänglighetszoner aktiverade lagras säkerhetskopieringen i zonredundanta lagringskonton.

Diagram som illustrerar hur en container säkerhetskopieras i flera regioner.

Tidsperioden som är tillgänglig för återställning (kallas även kvarhållningsperiod) är det lägre värdet för följande två alternativ: 30 dagar och 7 dagar.

Det valda alternativet beror på den valda nivån för kontinuerlig säkerhetskopiering. Tidpunkten för återställning kan vara en tidsstämpel inom kvarhållningsperioden som inte är längre tillbaka än den tidpunkt då resursen skapades. I starkt konsekvensläge är säkerhetskopieringar som görs i skrivregionen mer uppdaterade jämfört med läsregionerna. Läsregioner kan släpa efter på grund av nätverk eller andra tillfälliga problem. När du återställer kan du få den senaste återställningsbara tidsstämpeln för en viss resurs i en viss region. Med hjälp av den senaste återställningsbara tidsstämpeln kan du bekräfta att resurssäkerhetskopieringar är upp till den angivna tidsstämpeln och kan återställas i den regionen.

För närvarande kan du återställa ett Azure Cosmos DB-konto (API för NoSQL eller MongoDB, API för tabell, API för Gremlin) vid en viss tidpunkt till ett annat konto. Du kan utföra den här återställningsåtgärden via Azure-portalen, Azure CLI (Azure CLI), Azure PowerShell eller Azure Resource Manager-mallar.

Redundans för säkerhetskopieringslagring

Som standard lagrar Azure Cosmos DB säkerhetskopieringsdata i kontinuerligt läge i lokalt redundanta lagringsblobar. För de regioner som har zonredundans konfigurerad lagras säkerhetskopieringen i zonredundanta lagringsblobar. I läget för kontinuerlig säkerhetskopiering kan du inte uppdatera redundansen för lagring av säkerhetskopior.

Olika sätt att återställa

Läget för kontinuerlig säkerhetskopiering stöder två sätt att återställa borttagna containrar och databaser. De kan återställas till ett nytt konto enligt beskrivningen här eller återställas till ett befintligt konto enligt beskrivningen här. Valet mellan dessa två lägen beror på scenarierna. I de flesta fall är det bäst att återställa borttagna containrar och databaser till ett befintligt konto. Detta undviker kostnaden för dataöverföring som krävs om de återställs till ett nytt konto. För scenario där oavsiktlig dataändring gjordes kan återställning till det nya kontot vara det bästa alternativet.

Vad återställs till ett nytt konto?

I ett stabilt tillstånd säkerhetskopieras alla mutationer som utförs på källkontot (som inkluderar databaser, containrar och objekt) asynkront inom 100 sekunder. Om Säkerhetskopieringsmediet för Azure Storage är nere eller inte är tillgängligt sparas mutationerna lokalt tills mediet är tillgängligt. Sedan spolas mutationerna ut för att förhindra förlust i återgivning av åtgärder som kan återställas.

Du kan välja att återställa en kombination av containrar för etablerat dataflöde, databaser för delat dataflöde eller hela kontot. Återställningsåtgärden återställer alla data och dess indexegenskaper till ett nytt konto. Återställningsprocessen ser till att alla data som återställs i ett konto, en databas eller en container är konsekventa med den angivna återställningstiden. Hur lång tid återställningen tar beror på mängden data som behöver återställas. Konsekvensinställningen för det nyligen återställde databaskontot är samma som konsekvensinställningarna för källdatabaskontot.

Kommentar

Med läget för kontinuerlig säkerhetskopiering görs säkerhetskopiorna i varje region där ditt Azure Cosmos DB-konto är tillgängligt. Säkerhetskopior som görs för varje regionkonto är lokalt redundanta som standard och Zonredundanta om kontot har funktionen tillgänglighetszon aktiverad för den regionen. Återställningsåtgärden återställer alltid data till ett nytt konto.

Vad återställs inte?

Följande konfigurationer återställs inte efter återställningen till tidpunkt:

  • Det går inte att återställa en delmängd containrar under en databas med delat dataflöde. Hela databasen kan återställas som helhet.
  • Brandvägg, virtuellt nätverk , dataplan Rollbaserad åtkomstkontroll RBAC eller privata slutpunktsinställningar.
  • Alla regioner från källkontot.
  • Lagrade procedurer, utlösare, UDF:er.
  • Rollbaserade åtkomstkontrolltilldelningar.

Du kan lägga till dessa konfigurationer i det återställda kontot när återställningen har slutförts.

Återställningsbar tidsstämpel för livekonton

För att återställa Azure Cosmos DB-livekonton som inte tas bort är det bästa praxis att alltid identifiera den senaste återställningsbara tidsstämpeln för containern. Du kan sedan använda den här tidsstämpeln för att återställa kontot till den senaste versionen.

Återställningsscenarier

Funktionen för återställning till tidpunkt stöder följande scenarier. Scenarier [1] till [3] visar hur du utlöser en återställning om tidsstämpeln för återställning är känd i förväg. Det kan dock finnas scenarier där du inte vet den exakta tidpunkten för oavsiktlig borttagning eller skada. Scenarier [4] och [5] visar hur du identifierar återställningstidsstämpeln med hjälp av de nya API:erna för händelseflöde i den återställningsbara databasen eller containrarna.

Livscykelhändelser med tidsstämplar för ett återställningsbart konto.

  1. Återställ borttaget konto – Alla borttagna konton som du kan återställa visas i fönstret Återställ . Om till exempel Konto A tas bort vid tidsstämpel T3. I det här fallet räcker tidsstämpeln strax före T3, plats, målkontonamn, resursgrupp och målkontonamn för att återställa från Azure-portalen, PowerShell eller CLI.

    Livscykelhändelser med tidsstämplar för en återställningsbar databas och container.

  2. Återställa data för ett konto i en viss region – till exempel om konto A finns i två regioner USA , östra och USA , västra vid tidsstämpel T3. Om du behöver en kopia av konto A i USA, västra kan du återställa en tidpunkt från Azure-portalen, PowerShell eller CLI med USA, västra som målplats.

  3. Återställa från en oavsiktlig skrivnings- eller borttagningsåtgärd i en container med en känd återställningstidsstämpel – om du till exempel vet att innehållet i Container 1 i Databas 1 har ändrats av misstag vid tidsstämpelN T3. Du kan återställa en tidpunkt från Azure-portalen, PowerShell eller CLI till ett annat konto vid tidsstämpel T3 för att återställa det önskade tillståndet för containern.

  4. Återställ ett konto till en tidigare tidpunkt innan databasen tas bort av misstag – I Azure-portalen kan du använda händelseflödesfönstret för att avgöra när en databas har tagits bort och hitta återställningstiden. På samma sätt kan du med Azure CLI och PowerShell identifiera händelsen för databasborttagning genom att räkna upp flödet för databashändelser och sedan utlösa återställningskommandot med de parametrar som krävs.

  5. Återställ ett konto till en tidigare tidpunkt innan containeregenskaperna tas bort eller ändras av misstag. – I Azure-portalen kan du använda händelseflödesfönstret för att avgöra när en container har skapats, ändrats eller tagits bort för att hitta återställningstiden. På samma sätt kan du med Azure CLI och PowerShell identifiera alla containerhändelser genom att räkna upp flödet för containerhändelser och sedan utlösa återställningskommandot med nödvändiga parametrar.

Behörigheter

Med Azure Cosmos DB kan du isolera och begränsa återställningsbehörigheterna för kontot för kontinuerlig säkerhetskopiering till en specifik roll eller ett huvudnamn. Mer information finns i artikeln Behörigheter .

Prissättning

Azure Cosmos DB-konto med kontinuerlig 30-dagars säkerhetskopiering har en extra månatlig kostnad för att lagra säkerhetskopian. Både 30- och 7-dagarsnivån för kontinuerlig tillbaka debiteras för att återställa dina data. Återställningskostnaden läggs till varje gång återställningsåtgärden initieras. Om du konfigurerar ett konto med kontinuerlig säkerhetskopiering men inte återställer data ingår endast kostnaden för lagring av säkerhetskopior i fakturan.

Följande exempel baseras på priset för ett Azure Cosmos DB-konto som distribueras i USA, västra. Prissättningen och beräkningen kan variera beroende på vilken region du använder, se prissättningssidan för Azure Cosmos DB för den senaste prisinformationen.

  • Alla konton som är aktiverade med en princip för kontinuerlig säkerhetskopiering med 30 dagar debiteras en månatlig avgift för lagring av säkerhetskopior som beräknas på följande sätt:

    $0.20/GB * Datastorlek i GB i konto * Antal regioner

  • Varje anrop för återställnings-API medför en engångsavgift. Avgiften är en funktion av mängden data som återställs:

    $0.15/GB * Datastorlek i GB.

Om du till exempel har 1 TB data i två regioner:

  • Kostnaden för lagring av säkerhetskopior beräknas som (1 000 * 0,20 * 2) = 400 USD per månad

  • Återställningskostnaden beräknas som (1 000 * 0,15) = 150 USD per återställning

Dricks

Mer information om hur du mäter den aktuella dataanvändningen för ditt Azure Cosmos DB-konto finns i Utforska Azure Monitor Azure Cosmos DB-insikter. Kontinuerlig 7-dagars nivå debiteras inte för säkerhetskopiering av data.

Kontinuerlig 30-dagars nivå jämfört med kontinuerlig 7-dagars nivå

  • Kvarhållningsperioden för en nivå är 30 dagar jämfört med 7 dagar för en annan nivå.
  • 30 dagars kvarhållningsnivå debiteras för lagring av säkerhetskopior. Kvarhållningsnivån på 7 dagar debiteras inte.
  • Återställning debiteras alltid på någon av nivåerna

Kundhanterade nycklar

Se Hur påverkar kundhanterade nycklar kontinuerliga säkerhetskopior? för att lära dig:

  • Så här konfigurerar du ditt Azure Cosmos DB-konto när du använder kundhanterade nycklar med kontinuerliga säkerhetskopior.
  • Hur påverkar kundhanterade nycklar återställningar?

Aktuella begränsningar

För närvarande har funktionen för återställning till tidpunkt följande begränsningar:

  • Azure Cosmos DB-API:er för SQL, MongoDB, Gremlin och Table stöds för kontinuerlig säkerhetskopiering. API för Cassandra stöds inte nu.

  • "Skrivkonton för flera regioner stöds inte".

  • För närvarande kan Azure Synapse Link aktiveras i konton för kontinuerlig säkerhetskopiering av databaser. Men den motsatta situationen stöds inte än, det går inte att aktivera kontinuerlig säkerhetskopiering i Synapse Link-aktiverade databaskonton. Och analysarkivet ingår inte i säkerhetskopior. Mer information om säkerhetskopiering och analysarkiv finns i säkerhetskopiering av analysarkiv.

  • Det återställda kontot skapas i samma region där källkontot finns. Du kan inte återställa ett konto till en region där källkontot inte fanns.

  • Återställningsfönstret är bara 30 dagar för kontinuerlig 30-dagars nivå och sju dagar för kontinuerlig 7-dagars nivå. Dessa nivåer kan växlas, men de faktiska kvantiteterna (7 eller 30) kan inte ändras. Om du byter från 30-dagars nivå till 7-dagars nivå finns det dessutom potential för dataförlust på dagar längre än den sjunde.

  • Säkerhetskopiorna är inte automatiskt geo-katastrofresistenta. En annan region bör uttryckligen läggas till för återhämtning av kontot och säkerhetskopieringen.

  • När en återställning pågår ska du inte ändra eller ta bort IAM-principerna (Identitets- och åtkomsthantering). Dessa principer ger kontot behörighet att ändra eventuella VNET-brandväggskonfigurationer.

  • Azure Cosmos DB för MongoDB-konton med kontinuerlig säkerhetskopiering har inte stöd för att skapa ett unikt index för en befintlig samling. För ett sådant konto måste unika index skapas tillsammans med deras samling. det kan göras med hjälp av kommandona för att skapa samlingstillägg.

  • Funktionen för återställning till tidpunkt återställs alltid till ett nytt Azure Cosmos DB-konto. Det finns för närvarande inte stöd för att återställa till ett befintligt konto. Om du är intresserad av att ge feedback om återställning på plats kontaktar du Azure Cosmos DB-teamet via din kontorepresentant.

  • När återställningen har slutförts är det möjligt att det konsekventa indexet återskapas för vissa samlingar. Du kan kontrollera statusen för återskapandeåtgärden via egenskapen IndexTransformationProgress .

  • Återställningsprocessen återställer alla egenskaper för en container, inklusive dess TTL-konfiguration som standard, du kan skicka parametern för att inaktivera TTL när du gör återställningen. Därför är det möjligt att de data som återställs tas bort omedelbart om du har konfigurerat på det sättet. För att förhindra detta måste tidsstämpeln för återställningen vara innan TTL-egenskaperna lades till i containern.

  • Unika index i API för MongoDB kan inte läggas till eller uppdateras när du skapar ett konto för kontinuerligt säkerhetskopieringsläge. De kan inte heller ändras när du migrerar ett konto från periodiskt till kontinuerligt läge.

  • Återställning i kontinuerligt läge kanske inte återställer dataflödesinställningen som är giltig från och med återställningspunkten.

Nästa steg