Dela via


Databaser, distributionstopologier och säkerhetskopiering

Azure DevOps Server |Azure DevOps Server |Azure DevOps Server 2022 | Azure DevOps Server 2020

Du kan skydda distributionen från dataförlust genom att skapa ett regelbundet schema med säkerhetskopior för de databaser som Azure DevOps Server är beroende av. Om du vill återställa distributionen av Azure DevOps Server helt måste du först säkerhetskopiera alla Azure DevOps Server-databaser.

Om distributionen innehåller SQL Server Reporting Services måste du även säkerhetskopiera de databaser som Azure DevOps använder inom dessa komponenter. För att förhindra synkroniseringsfel eller fel vid matchning av data måste du synkronisera alla säkerhetskopior till samma tidsstämpel. Det enklaste sättet att säkerställa lyckad synkronisering är genom att använda markerade transaktioner. Genom att rutinmässigt markera relaterade transaktioner i varje databas etablerar du en serie vanliga återställningspunkter i databaserna. Stegvis vägledning för säkerhetskopiering av en distribution med en enskild server som använder rapportering finns i Skapa ett schema och en plan för säkerhetskopiering.

Säkerhetskopiera databaser

Skydda din Azure DevOps-distribution mot dataförlust genom att skapa databassäkerhetskopior. Följande tabell och tillhörande illustrationer visar vilka databaser som ska säkerhetskopieras och ger exempel på hur dessa databaser kan distribueras fysiskt i en distribution.

Databastyp Produkt Krävs komponent?
Konfigurationsdatabas Azure DevOps Server Yes
Lagerdatabas Azure DevOps Server Yes
Projektsamlingsdatabaser Azure DevOps Server Yes
Rapporteringsdatabaser SQL Server Reporting Services Nej
Analysdatabaser SQL Server Analysis Services Nej

Distributionstopologier

Baserat på distributionskonfigurationen kan alla databaser som kräver säkerhetskopiering finnas på samma fysiska server, som i den här exempeltopologin.

Anmärkning

Det här exemplet inkluderar inte Reporting Services eller SharePoint-produkter, så du behöver inte säkerhetskopiera några databaser som är associerade med rapportering, analys eller SharePoint-produkter.

Enkel Azure DevOps Server-databasstruktur

Som ett alternativ kan databaserna distribueras över många servrar och servergrupper. I den här exempeltopologin måste du säkerhetskopiera följande databaser, som skalas över sex servrar eller servergrupper:

  • konfigurationsdatabasen

  • lagerdatabasen

  • de projektsamlingsdatabaser som finns i SQL Server-klustret

  • samlingsdatabasen som finns på den fristående servern som kör SQL Server

  • de databaser som finns på servern som kör Reporting Services

  • databasen som finns på servern som kör Analysis Services

  • Administrationsdatabaserna för SharePoint-produkter och webbplatssamlingsdatabaserna för båda SharePoint-webbprogrammen

    Om dina SharePoint-databaser skalas över flera servrar kan du inte använda funktionen Schemalagda säkerhetskopieringar för att säkerhetskopiera dem. Du måste konfigurera säkerhetskopior för dessa databaser manuellt och se till att säkerhetskopiorna synkroniseras med säkerhetskopiorna i Azure DevOps Server-databasen. Mer information finns i Säkerhetskopiera Azure DevOps Server manuellt.

Komplex Databasstruktur för Azure DevOps Server

I båda dessa exempel behöver du inte säkerhetskopiera någon av klienterna som ansluter till servern. Du kan dock behöva rensa cacheminnena för Azure DevOps Server manuellt på klientdatorerna innan de kan återansluta till den återställde distributionen.

Databaser att säkerhetskopiera

Följande lista innehåller ytterligare information om vad du måste säkerhetskopiera, beroende på dina distributionsresurser.

Viktigt!

Alla databaser i följande lista är SQL Server-databaser. Även om du kan använda SQL Server Management Studio för att säkerhetskopiera enskilda databaser när som helst bör du undvika att använda sådana enskilda säkerhetskopior när det är möjligt. Du kan få oväntade resultat om du återställer från enskilda säkerhetskopior eftersom alla databaser som Azure DevOps använder är relaterade. Om du bara säkerhetskopierar en databas kanske inte data i databasen synkroniseras med data i de andra databaserna.

  • Databaser för Azure DevOps Server – Den logiska datanivån för Azure DevOps Server innehåller flera SQL Server-databaser, inklusive konfigurationsdatabasen, lagerdatabasen och en databas för varje projektsamling i distributionen. Alla dessa databaser kan finnas på samma server, distribueras över flera instanser i samma SQL Server-distribution eller distribueras över flera servrar. Oavsett deras fysiska distribution måste du säkerhetskopiera alla databaser till samma tidsstämpel för att säkerställa mot dataförlust. Du kan utföra databassäkerhetskopior manuellt eller automatiskt med hjälp av underhållsplaner som körs vid specifika tidpunkter eller intervall.

    Viktigt!

    Listan över Azure DevOps-databaser är inte statisk. En ny databas skapas varje gång du skapar en samling. När du skapar en samling kontrollerar du att du lägger till databasen för samlingen i underhållsplanen.

  • Databaser för Reporting Services och Analysis Services – Om distributionen använder SQL Server Reporting Services eller SQL Server Analysis Services för att generera rapporter för Azure DevOps Server måste du säkerhetskopiera rapport- och analysdatabaserna. Du måste dock fortfarande återskapa vissa databaser efter återställningen, till exempel lagret.
  • Krypteringsnyckel för rapportservern – Rapportservern har en krypteringsnyckel som du måste säkerhetskopiera. Den här nyckeln skyddar känslig information som lagras i databasen för rapportservern. Du kan säkerhetskopiera den här nyckeln manuellt med hjälp av konfigurationsverktyget för Reporting Services eller ett kommandoradsverktyg.

Avancerad förberedelse för säkerhetskopior

När du distribuerar Azure DevOps bör du ha en post över de konton som du skapar och eventuella datornamn, lösenord och installationsalternativ som du anger. Du bör också behålla en kopia av allt återställningsmaterial, dokument och säkerhetskopior av databas- och transaktionsloggar på en säker plats. För att skydda dig mot en katastrof, till exempel en brand eller en jordbävning, bör du behålla dubbletter av dina serversäkerhetskopior på en annan plats än servrarnas plats. Den här strategin hjälper dig att skydda dig mot förlust av kritiska data. Som bästa praxis bör du behålla tre kopior av säkerhetskopieringsmediet, och du bör behålla minst en kopia utanför platsen i en kontrollerad miljö.

Viktigt!

Utför en återställning av utvärderingsdata regelbundet för att kontrollera att filerna säkerhetskopieras korrekt. En teståterställning kan avslöja maskinvaruproblem som inte syns med en endast programvarubaserad verifiering.

När du säkerhetskopierar och återställer en databas måste du säkerhetskopiera data till media med en nätverksadress (till exempel band och diskar som har delats som nätverksenheter). Din säkerhetskopieringsplan bör innehålla bestämmelser för hantering av media, till exempel följande taktik:

  • En spårnings- och hanteringsplan för lagring och återvinning av säkerhetskopieringsuppsättningar.
  • Ett schema för att skriva över säkerhetskopieringsmedia.
  • I en miljö med flera servrar, ett beslut om att använda antingen centraliserade eller distribuerade säkerhetskopior.
  • Ett sätt att spåra medias livslängd.
  • En procedur för att minimera effekterna av förlusten av en säkerhetskopia eller ett säkerhetskopieringsmedium (till exempel ett band).
  • Ett beslut att lagra säkerhetskopieringsuppsättningar på plats eller utanför plats och en analys av hur det här beslutet kan påverka återställningstiden.

Eftersom Azure DevOps-data lagras i SQL Server-databaser behöver du inte säkerhetskopiera de datorer där klienter i Azure DevOps är installerade. Om ett mediefel eller en katastrof som involverade dessa datorer skulle inträffa kan du installera om klientprogramvaran och återansluta till servern. Genom att installera om klientprogramvaran har användarna ett renare och mer tillförlitligt alternativ till att återställa en klientdator från en säkerhetskopia.

Du kan säkerhetskopiera en server med hjälp av tillgängliga funktioner för schemalagda säkerhetskopieringar eller genom att manuellt skapa underhållsplaner i SQL Server för att säkerhetskopiera de databaser som är relaterade till din Azure DevOps-distribution. Azure DevOps-databaserna fungerar i relation till varandra, och om du skapar en manuell plan bör du säkerhetskopiera dem och återställa dem samtidigt. Mer information om strategier för att säkerhetskopiera databaser finns i Säkerhetskopiera och återställa SQL Server-databaser.

Typer av säkerhetskopior

Att förstå vilka typer av säkerhetskopior som är tillgängliga hjälper dig att fastställa de bästa alternativen för att säkerhetskopiera distributionen. Om du till exempel arbetar med en stor distribution och vill skydda mot dataförlust samtidigt som du effektivt använder begränsade lagringsresurser kan du konfigurera differentiella säkerhetskopior samt fullständiga säkerhetskopieringar av data. Om du använder SQL Server AlwaysOn kan du göra säkerhetskopior av den sekundära databasen. Du kan också prova att använda komprimering av säkerhetskopior eller dela upp säkerhetskopior i flera filer. Här följer en kort beskrivning av dina alternativ för säkerhetskopiering:

Fullständiga datasäkerhetskopior (databaser)

En fullständig databassäkerhetskopia krävs för återställning av distributionen. En fullständig säkerhetskopia innehåller en del av transaktionsloggen så att du kan återställa den fullständiga säkerhetskopian. Fullständiga säkerhetskopior är fristående eftersom de representerar hela databasen som den fanns när du säkerhetskopierade den. Mer information finns i Fullständiga säkerhetskopior av databaser.

Differentiella datasäkerhetskopior (databaser)

En differentiell databassäkerhetskopia registrerar endast de data som har ändrats sedan den senaste fullständiga databassäkerhetskopian, som kallas differentiell bas. Differentiella databassäkerhetskopior är mindre och snabbare än fullständiga säkerhetskopior av databaser. Det här alternativet sparar säkerhetskopieringstid på bekostnad av ökad komplexitet. För stora databaser kan differentiella säkerhetskopieringar ske med kortare intervall än databassäkerhetskopieringar, vilket minskar exponeringen för arbetsförlust. Mer information finns i Differentiella databassäkerhetskopior.

Du bör också säkerhetskopiera dina transaktionsloggar regelbundet. Dessa säkerhetskopior krävs för att återställa data när du använder den fullständiga säkerhetskopieringsmodellen för databasen. Om du säkerhetskopierar transaktionsloggar kan du återställa databasen till felpunkten eller till en tidigare tidpunkt.

Säkerhetskopior av transaktionsloggar

Transaktionsloggen är en seriepost för alla ändringar som har inträffat i en databas utöver den transaktion som utförde varje ändring. Transaktionsloggen registrerar starten av varje transaktion, ändringarna av data och, om det behövs, tillräckligt med information för att ångra de ändringar som gjorts under transaktionen. Loggen växer kontinuerligt när loggade åtgärder utförs i databasen.

Genom att säkerhetskopiera transaktionsloggar kan du återställa databasen till en tidigare tidpunkt. Du kan till exempel återställa databasen till en punkt innan oönskade data angavs eller ett fel uppstod. Förutom säkerhetskopior av databaser måste säkerhetskopieringar av transaktionsloggar ingå i återställningsstrategin. Mer information finns i Säkerhetskopiering av transaktionsloggar (SQL Server).

Säkerhetskopieringar av transaktionsloggar använder vanligtvis färre resurser än fullständiga säkerhetskopior. Därför kan du skapa säkerhetskopieringar av transaktionsloggar oftare än fullständiga säkerhetskopior, vilket minskar risken för att förlora data. Ibland är dock en säkerhetskopiering av transaktionsloggen större än en fullständig säkerhetskopia. En databas med hög transaktionshastighet gör till exempel att transaktionsloggen växer snabbt. I det här fallet bör du skapa säkerhetskopior av transaktionsloggar oftare. Mer information finns i Felsöka en fullständig transaktionslogg (SQL Server-fel 9002).

Du kan utföra följande typer av säkerhetskopior av transaktionsloggar:

  • En ren loggsäkerhetskopia innehåller endast transaktionsloggposter för ett intervall, utan några massändringar.
  • En säkerhetskopia av masslogg innehåller logg- och datasidor som har ändrats av stora operationer. Återställning till en specifik tidpunkt är inte tillåtet.
  • En säkerhetskopia av tail-log hämtas från en eventuellt skadad databas för att samla in loggposter som ännu inte har säkerhetskopierats. En säkerhetskopia av tail-log görs efter ett fel för att förhindra arbetsförlust och kan innehålla antingen rena logg- eller massloggdata.

Eftersom synkronisering av data är avgörande för en lyckad återställning av Azure DevOps Server bör du använda markerade transaktioner som en del av din säkerhetskopieringsstrategi om du konfigurerar säkerhetskopieringar manuellt. Mer information finns i Skapa ett schema för säkerhetskopiering och planera och manuellt säkerhetskopiera Azure DevOps Server.

Tjänstsäkerhetskopior på programnivå

Den enda säkerhetskopiering som behövs för den logiska programnivån är för krypteringsnyckeln för Reporting Services. Om du använder funktionen Schemalagda säkerhetskopieringar för att säkerhetskopiera distributionen säkerhetskopieras den här nyckeln åt dig som en del av planen. Du kan anta att du måste säkerhetskopiera webbplatser som används som projektportaler.

Även om du kan säkerhetskopiera en programnivå enklare än en datanivå finns det fortfarande flera steg för att återställa en programnivå. Du måste installera en annan programnivå för Azure DevOps Server, omdirigera projektsamlingar för att använda den nya programnivån och omdirigera portalwebbplatserna för projekt.

Standarddatabasnamn

Om du inte anpassar namnen på dina databaser kan du använda följande tabell för att identifiera de databaser som används i distributionen av Azure DevOps Server. Som tidigare nämnts har inte alla distributioner alla dessa databaser. Om du till exempel inte har konfigurerat Azure DevOps Server med Reporting Services har du inte databaserna ReportServer eller ReportServerTempDB. På samma sätt har du inte databasen för System Center Virtual Machine Manager (SCVMM), VirtualManagerDB, såvida du inte konfigurerar Azure DevOps Server som stöd för Labbhantering. Dessutom kan de databaser som Azure DevOps Server använder distribueras över mer än en instans av SQL Server eller över mer än en server.

Anmärkning

Som standard läggs prefixet TFS_ till i namnen på alla databaser som skapas automatiskt när du installerar Azure DevOps Server eller när den körs.

Databas Description
TFS_Configuration Konfigurationsdatabasen för Azure DevOps Server innehåller katalogen, servernamnen och konfigurationsdata för distributionen. Namnet på den här databasen kan innehålla ytterligare tecken mellan TFS_ och Konfiguration, till exempel användarnamnet för den person som installerade Azure DevOps Server. Namnet på databasen kan till exempel vara TFS_UserNameConfiguration
TFS_Warehouse Lagerdatabasen innehåller data för att skapa det lager som Reporting Services använder. Namnet på den här databasen kan innehålla ytterligare tecken mellan TFS_ och Warehouse, till exempel användarnamnet för den person som installerade Azure DevOps Server. Namnet på databasen kan till exempel vara TFS_UserNameWarehouse.
TFS_CollectionName Databasen för en projektsamling innehåller alla data för projekten i samlingen. Dessa data omfattar källkod, byggkonfigurationer och konfigurationer för labbhantering. Antalet samlingsdatabaser är lika med antalet samlingar. Om du till exempel har tre samlingar i distributionen måste du säkerhetskopiera dessa tre samlingsdatabaser. Namnet på varje databas kan innehålla ytterligare tecken mellan TFS_ och CollectionName, till exempel användarnamnet för den person som skapade samlingen. Namnet på en samlingsdatabas kan till exempel vara TFS_UserNameCollectionName.
TFS_Analysis Databasen för SQL Server Analysis Services innehåller datakällor och kuber för din distribution av Azure DevOps Server. Namnet på den här databasen kan innehålla ytterligare tecken mellan TFS_ och Analys, till exempel användarnamnet för den person som installerade Analysis Services. Till exempel kan namnet på databasen vara TFS_UserNameAnalysis.
Obs! Du kan säkerhetskopiera den här databasen, men du måste återskapa lagret från den återställde TFS_Warehouse databasen.
Rapportserver Databasen för Reporting Services innehåller rapporter och rapportinställningar för din distribution av Azure DevOps Server.
Obs! Om Reporting Services är installerat på en separat server från Azure DevOps Server kanske den här databasen inte finns på datanivåservern för Azure DevOps Server. I så fall måste du konfigurera, säkerhetskopiera och återställa det separat från Azure DevOps Server. Du bör synkronisera underhållet av databaserna för att undvika synkroniseringsfel.
ReportServerTempDB Den tillfälliga databasen för Reporting Services lagrar tillfälligt information när du kör specifika rapporter.
Obs! Om Reporting Services är installerat på en separat server än Azure DevOps Server kanske den här databasen inte finns på datanivåservern för Azure DevOps Server. I det här fallet måste du konfigurera, säkerhetskopiera och återställa det separat från Azure DevOps Server. Du bör dock synkronisera underhållet av databaserna för att undvika synkroniseringsfel.
VirtualManagerDB Administrationsdatabasen för SCVMM innehåller den information som du visar i SCVMM-administratörskonsolen, till exempel virtuella datorer, virtuella datorvärdar, biblioteksservrar för virtuella datorer och deras egenskaper.
Obs! Om SCVMM är installerat på en separat server än Azure DevOps Server kanske den här databasen inte finns på datanivåservern för Azure DevOps Server. I så fall måste du konfigurera, säkerhetskopiera och återställa det separat från Azure DevOps Server. Du bör dock använda markerade transaktioner och synkronisera underhållet av databaserna för att undvika synkroniseringsfel.