Kontinuerlig säkerhetskopiering med återställning till tidpunkt i Azure Cosmos DB
GÄLLER FÖR: NoSQL MongoDB Gremlin Bord
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.
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 mallarna Azure Portal, Azure CLI (Azure CLI), Azure PowerShell eller Azure Resource Manager.
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.
Å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 Portal, PowerShell eller CLI.
Å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 göra en återställning till en tidpunkt från Azure Portal, PowerShell eller CLI med USA, västra som målplats.
Å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 Portal, PowerShell eller CLI till ett annat konto vid tidsstämpel T3 för att återställa det önskade tillståndet för containern.
Återställ ett konto till en tidigare tidpunkt innan databasen tas bort av misstag – I Azure Portal 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.
Återställ ett konto till en tidigare tidpunkt innan containeregenskaperna tas bort eller ändras av misstag. – I Azure Portal kan du använda händelseflödesfönstret för att avgöra när en container skapades, ändrades eller togs 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
Time to live
- Standardåterställningsprocessen återställer alla egenskaper för en container, inklusive dess TTL-konfiguration som standard, vilket kan leda till att data tas bort om återställningen görs utan att TTL-värdet inaktiveras. Om du vill förhindra borttagningen skickar du parametern för att inaktivera TTL i PowerShell (-DisableTtl $true) eller cli (--disable-ttl True) när du gör återställningen.
Kundhanterade nycklar
Mer information finns i Hur påverkar kundhanterade nycklar kontinuerliga säkerhetskopieringar :
- 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.
Multi region write
konton stöds inte.Synapse Link för databaskonton som använder läget för kontinuerlig säkerhetskopiering är GA. Den motsatta situationen, läget för kontinuerlig säkerhetskopiering för Synapse Link-aktiverade konton, är i offentlig förhandsversion. För närvarande kan kunder som inaktiverade Synapse Link från containrar inte migrera till kontinuerlig säkerhetskopiering. 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
eller30
) 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.
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 .
Unika index i API för MongoDB kan inte läggas till, uppdateras eller tas bort 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
- Aktivera kontinuerlig säkerhetskopiering med hjälp av Azure Portal, PowerShell, CLI eller Azure Resource Manager.
- Hämta den senaste återställningsbara tidsstämpeln för SQL- och MongoDB-konton.
- Återställ kontot för kontinuerlig säkerhetskopiering med hjälp av Azure Portal, PowerShell, CLI eller Azure Resource Manager.
- Migrera till ett konto från periodisk säkerhetskopiering till kontinuerlig säkerhetskopiering.
- Hantera behörigheter som krävs för att återställa data med läget för kontinuerlig säkerhetskopiering.
- Resursmodell för läget för kontinuerlig säkerhetskopiering