Databáze, topologie nasazení a zálohování

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

Nasazení před ztrátou dat můžete ochránit vytvořením pravidelného plánu zálohování databází, na Azure DevOps Server závisí. Pokud chcete Azure DevOps Server nasazení úplně obnovit, nejprve zálohujte všechny databáze Azure DevOps Server.

Pokud vaše nasazení zahrnuje SQL Server Reporting Services, musíte také zálohovat databáze, které Azure DevOps používá v rámci těchto komponent. Pokud chcete zabránit chybám synchronizace nebo chybám neshody dat, musíte synchronizovat všechny zálohy se stejným časovým razítkem. Nejjednodušší způsob, jak zajistit úspěšnou synchronizaci, je použití označených transakcí. Rutinním označováním souvisejících transakcí v každé databázi vytvoříte řadu společných bodů obnovení v databázích. Podrobné pokyny k zálohování nasazení s jedním serverem, které používá vytváření sestav, najdete v tématu Vytvoření plánu zálohování a plánu.

Zálohování databází

Chraňte své nasazení Azure DevOps před ztrátou dat vytvořením záloh databází. Následující tabulka a doprovodné ilustrace ukazují, které databáze se mají zálohovat, a poskytují příklady fyzické distribuce těchto databází v rámci nasazení.

Typ databáze Produkt Požadovaná komponenta?
Konfigurační databáze Azure DevOps Server Ano
Databáze skladu Azure DevOps Server Ano
Databáze kolekcí projektů Azure DevOps Server Ano
Databáze sestav SQL Server Reporting Services No
Analytické databáze SQL Server Analysis Services Ne

Topologie nasazení

V závislosti na konfiguraci nasazení můžou být všechny databáze, které vyžadují zálohování, na stejném fyzickém serveru jako v tomto příkladu topologie.

Poznámka

Tento příklad nezahrnuje službu Reporting Services ani sadu SharePoint Products, takže nemusíte zálohovat žádné databáze, které jsou přidruženy k vytváření sestav, analýze nebo sadě SharePoint Products.

Jednoduchá Azure DevOps Server struktura databáze

Jako alternativu mohou být databáze distribuovány napříč mnoha servery a serverovými farmami. V této ukázkové topologii musíte zálohovat následující databáze, které se škálují na šest serverů nebo serverových farem:

  • konfigurační databáze

  • databáze skladu

  • databáze kolekcí projektů umístěné v clusteru SQL Server

  • databáze kolekce, která je umístěna na samostatném serveru se systémem SQL Server

  • databáze umístěné na serveru, na kterém běží služba Reporting Services

  • Databáze umístěná na serveru se službou Analysis Services

  • databáze pro správu sady SharePoint Products a databáze kolekcí webů pro obě webové aplikace služby SharePoint

    Pokud jsou vaše sharepointové databáze škálované na více serverů, nemůžete k jejich zálohování použít funkci Naplánované zálohování. Zálohování těchto databází musíte nakonfigurovat ručně a zajistit, aby se tyto zálohy synchronizovaly se zálohami Azure DevOps Server databází. Další informace najdete v tématu věnovaném ručnímu zálohování Azure DevOps Serveru.

Složitá struktura Azure DevOps Server databáze

V obou těchto příkladech nemusíte zálohovat žádné klienty, kteří se připojují k serveru. Než se však klientské počítače budou moct znovu připojit k obnovené nasazení, může být nutné ručně vymazat mezipaměti pro Azure DevOps Server.

Databáze, které se mají zálohovat

Následující seznam obsahuje další podrobnosti o tom, co musíte zálohovat v závislosti na prostředcích nasazení.

Důležité

Všechny databáze v následujícím seznamu jsou SQL Server databáze. I když můžete SQL Server Management Studio kdykoli použít k zálohování jednotlivých databází, měli byste se těmto jednotlivým zálohám vyhnout, pokud je to možné. Při obnovení z jednotlivých záloh může dojít k neočekávaným výsledkům, protože všechny databáze, které Azure DevOps používá, souvisí. Pokud zálohujete pouze jednu databázi, nemusí být data v této databázi synchronizována s daty v ostatních databázích.

  • Databáze pro Azure DevOps Server – Logická datová vrstva pro Azure DevOps Server zahrnuje několik SQL Server databází, včetně konfigurační databáze, databáze skladu a databáze pro každou kolekci projektů v nasazení. Všechny tyto databáze můžou být na stejném serveru, distribuované mezi několik instancí ve stejném SQL Server nasazení nebo distribuované mezi více serverů. Bez ohledu na jejich fyzickou distribuci musíte zálohovat všechny databáze do stejného časového razítka, abyste zajistili, že dojde ke ztrátě dat. Zálohování databází můžete provádět ručně nebo automaticky pomocí plánů údržby, které běží v určitých časech nebo intervalech.

    Důležité

    Seznam databází Azure DevOps není statický. Při každém vytvoření kolekce se vytvoří nová databáze. Při vytváření kolekce nezapomeňte databázi pro tuto kolekci přidat do plánu údržby.

  • Databáze pro službu Reporting Services a Analysis Services – Pokud vaše nasazení používá SQL Server Reporting Services nebo Služba Analysis Services serveru SQL ke generování sestav pro Azure DevOps Server, musíte zálohovat databáze pro vytváření sestav a analýzu. Po obnovení ale musíte určité databáze znovu vygenerovat, například sklad.
  • Šifrovací klíč pro server sestav – Server sestav má šifrovací klíč, který musíte zálohovat. Tento klíč chrání citlivé informace uložené v databázi serveru sestav. Tento klíč můžete zálohovat ručně pomocí konfiguračního nástroje služby Reporting Services nebo nástroje příkazového řádku.

Pokročilá příprava na zálohy

Při nasazování Azure DevOps byste měli uchovávat záznamy o účtech, které vytvoříte, a o případných názvech počítačů, heslech a možnostech nastavení, které zadáte. Měli byste také uchovávat kopie všech materiálů k obnovení, dokumentů a záloh databázových a transakčních protokolů na bezpečném místě. Pokud chcete zajistit ochranu před havárií, jako je požár nebo zemětřesení, měli byste uchovávat duplicitní zálohy serverů na jiném místě, než je umístění serverů. Tato strategie vás ochrání před ztrátou důležitých dat. Osvědčeným postupem je uchovávat tři kopie záložního média a alespoň jednu kopii byste měli uchovávat mimo pracoviště v řízeném prostředí.

Důležité

Pravidelně proveďte zkušební obnovení dat, abyste ověřili, že jsou vaše soubory správně zálohované. Obnovení zkušební verze může odhalit problémy s hardwarem, které se nezobrazují při softwarovém ověření.

Při zálohování a obnovení databáze je nutné zálohovat data na médium se síťovou adresou (například pásky a disky, které byly sdíleny jako síťové jednotky). Váš plán zálohování by měl obsahovat ustanovení pro správu médií, například následující taktiky:

  • Plán sledování a správy pro ukládání a recyklaci záložních sad.
  • Plán přepsání záložního média.
  • V prostředí s více servery je rozhodnutí použít centralizované nebo distribuované zálohy.
  • Způsob sledování životnosti médií.
  • Postup, který minimalizuje účinky ztráty zálohovací sady nebo záložního média (například pásky).
  • Rozhodnutí o uložení zálohovaných sad na pracovišti nebo mimo pracoviště a analýza toho, jak by toto rozhodnutí mohlo ovlivnit dobu obnovení.

Vzhledem k tomu, že data Azure DevOps jsou uložená v SQL Server databázích, nemusíte zálohovat počítače, na kterých jsou klienti Azure DevOps nainstalovaní. Pokud by došlo k selhání média nebo havárii, která tyto počítače zahrnovala, můžete klientský software znovu nainstalovat a znovu se připojit k serveru. Opětovnou instalací klientského softwaru budou mít uživatelé přehlednější a spolehlivější alternativu k obnovení klientského počítače ze zálohy.

Server můžete zálohovat pomocí dostupných funkcí Plánované zálohování nebo ručním vytvořením plánů údržby v SQL Server k zálohování databází, které se týkají vašeho nasazení Azure DevOps. Databáze Azure DevOps fungují ve vzájemném vztahu, a pokud vytvoříte ruční plán, měli byste je zálohovat a obnovit současně. Další informace o strategiích zálohování databází najdete v tématu Zálohování a obnovení SQL Server databází.

Typy záloh

Pochopení dostupných typů záloh vám pomůže určit nejlepší možnosti zálohování vašeho nasazení. Pokud například pracujete s rozsáhlým nasazením a chcete se chránit před ztrátou dat a současně efektivně využívat omezené prostředky úložiště, můžete nakonfigurovat rozdílové zálohování i úplné zálohování dat. Pokud používáte SQL Server AlwaysOn, můžete zálohovat sekundární databázi. Můžete také zkusit použít kompresi záloh nebo rozdělit zálohy do více souborů. Tady je stručný popis možností zálohování:

Úplné zálohy dat (databáze)

Úplné zálohování databáze je nezbytné pro obnovitelnost vašeho nasazení. Úplná záloha zahrnuje část transakčního protokolu, abyste mohli obnovit úplnou zálohu. Úplné zálohy jsou samostatné v tom, že představují celou databázi tak, jak existovala při zálohování. Další informace najdete v tématu Úplné zálohování databáze.

Rozdílové zálohy dat (databáze)

Rozdílové zálohování databáze zaznamenává pouze data, která se změnila od posledního úplného zálohování databáze, což se označuje jako rozdílová základna. Rozdílové zálohy databází jsou menší a rychlejší než úplné zálohy databáze. Tato možnost šetří čas zálohování za cenu vyšší složitosti. U velkých databází může rozdílové zálohování probíhat v kratších intervalech než zálohování databází, což snižuje riziko ztráty práce. Další informace najdete v tématu Rozdílové zálohování databází.

Měli byste také pravidelně zálohovat transakční protokoly. Tyto zálohy jsou nezbytné pro obnovení dat při použití modelu úplného zálohování databáze. Pokud zálohujete transakční protokoly, můžete databázi obnovit k bodu selhání nebo k dřívějšímu bodu v čase.

Zálohy transakčních protokolů

Transakční protokol je sériový záznam všech úprav, ke kterým došlo v databázi kromě transakce, která provedla každou změnu. Transakční protokol zaznamenává zahájení každé transakce, změny dat a v případě potřeby dostatek informací k vrácení změn provedených během této transakce. Protokol se průběžně rozrůstá s tím, jak v databázi probíhají protokolované operace.

Zálohováním transakčních protokolů můžete databázi obnovit k dřívějšímu bodu v čase. Databázi můžete například obnovit do bodu před zadáním nežádoucích dat nebo před selháním. Kromě zálohování databází musí být součástí strategie obnovení zálohování transakčních protokolů. Další informace najdete v tématu Zálohování transakčních protokolů (SQL Server).

Zálohy transakčních protokolů obecně využívají méně prostředků než úplné zálohy. Proto můžete vytvářet zálohy transakčních protokolů častěji než úplné zálohy, což snižuje riziko ztráty dat. Někdy je ale záloha transakčních protokolů větší než úplná záloha. Například databáze s vysokou rychlostí transakcí způsobí rychlý růst transakčního protokolu. V takovém případě byste měli vytvářet zálohy transakčních protokolů častěji. Další informace najdete v tématu Řešení potíží s úplným transakčním protokolem (SQL Server chyba 9002).

Můžete provádět následující typy zálohování transakčních protokolů:

  • Čisté zálohování protokolů obsahuje pouze záznamy transakčního protokolu po určitou dobu, bez jakýchkoli hromadných změn.
  • Hromadné zálohování protokolů obsahuje stránky protokolu a datové stránky, které byly změněny hromadnými operacemi. Obnovení k určitému bodu v čase není povolené.
  • Záloha protokolu tail-log je převzata z pravděpodobně poškozené databáze za účelem zachycení záznamů protokolu, které ještě nebyly zálohovány. Zálohování protokolu na konci se provádí po selhání, aby se zabránilo ztrátě práce, a může obsahovat pouze protokol nebo hromadná data protokolu.

Vzhledem k tomu, že synchronizace dat je pro úspěšné obnovení Azure DevOps Server důležitá, měli byste označené transakce používat jako součást strategie zálohování, pokud konfigurujete zálohování ručně. Další informace najdete v tématech Vytvoření plánu zálohování a plánu a Ruční zálohování Azure DevOps Server.

Zálohování služeb aplikační vrstvy

Jedinou potřebnou zálohu pro logickou aplikační vrstvu je šifrovací klíč pro službu Reporting Services. Pokud k zálohování nasazení použijete funkci Naplánované zálohování, bude tento klíč zálohován jako součást plánu. Můžete předpokládat, že musíte zálohovat weby používané jako portály projektů.

I když můžete zálohovat aplikační vrstvu snadněji než datovou vrstvu, stále existuje několik kroků k obnovení aplikační vrstvy. Musíte nainstalovat jinou aplikační vrstvu pro Azure DevOps Server, přesměrovat kolekce projektů tak, aby používaly novou aplikační vrstvu, a přesměrovat portálové weby pro projekty.

Výchozí názvy databází

Pokud názvy databází nepřizpůsobíte, můžete pomocí následující tabulky identifikovat databáze používané ve vašem nasazení Azure DevOps Server. Jak už bylo zmíněno dříve, ne všechna nasazení mají všechny tyto databáze. Pokud jste například nenakonfigurovali Azure DevOps Server se službou Reporting Services, nebudete mít databáze ReportServer ani ReportServerTempDB. Podobně nebudete mít databázi pro System Center Virtual Machine Manager (SCVMM) a VirtualManagerDB, pokud nenakonfigurujete Azure DevOps Server pro podporu správy testovacího prostředí. Databáze, které Azure DevOps Server používají, mohou být navíc distribuovány mezi více než jednu instanci SQL Server nebo mezi více než jeden server.

Poznámka

Ve výchozím nastavení se předpona TFS_ přidá k názvům databází, které se vytvoří automaticky při instalaci Azure DevOps Server nebo během provozu.

Databáze Description
TFS_Configuration Konfigurační databáze pro Azure DevOps Server obsahuje katalog, názvy serverů a konfigurační data pro nasazení. Název této databáze může obsahovat další znaky mezi TFS_ a Configuration, například uživatelské jméno osoby, která nainstalovala Azure DevOps Server. Název databáze může být například TFS_UserNameConfiguration
Tfs_warehouse Databáze skladu obsahuje data pro vytvoření skladu, který používá služba Reporting Services. Název této databáze může obsahovat další znaky mezi TFS_ a Warehouse, například uživatelské jméno osoby, která nainstalovala Azure DevOps Server. Název databáze může být například TFS_UserNameWarehouse.
TFS_CollectionName Databáze pro kolekci projektů obsahuje všechna data pro projekty v této kolekci. Tato data zahrnují zdrojový kód, konfigurace sestavení a konfigurace správy testovacího prostředí. Počet databází kolekcí se bude rovnat počtu kolekcí. Pokud máte například v nasazení tři kolekce, musíte zálohovat tyto tři databáze kolekcí. Název každé databáze může obsahovat další znaky mezi TFS_ a CollectionName, například uživatelské jméno osoby, která kolekci vytvořila. Například název databáze kolekce může být TFS_UserNameCollectionName.
TFS_Analysis Databáze pro Služba Analysis Services serveru SQL obsahuje zdroje dat a datové krychle pro vaše nasazení Azure DevOps Server. Název této databáze může obsahovat další znaky mezi TFS_ a Analysis, například uživatelské jméno osoby, která nainstalovala službu Analysis Services. Název databáze může být například TFS_UserNameAnalysis.
Poznámka: Tuto databázi můžete zálohovat, ale musíte znovu sestavit sklad z obnovené databáze TFS_Warehouse.
ReportServer Databáze služby Reporting Services obsahuje sestavy a nastavení sestav pro vaše nasazení Azure DevOps Server.
Poznámka: Pokud je služba Reporting Services nainstalovaná na jiném serveru než Azure DevOps Server, nemusí se tato databáze na serveru datové vrstvy nacházet pro Azure DevOps Server. V takovém případě ho musíte nakonfigurovat, zálohovat a obnovit odděleně od Azure DevOps Server. Údržbu databází byste měli synchronizovat, abyste se vyhnuli chybám synchronizace.
Reportservertempdb Dočasná databáze pro službu Reporting Services dočasně ukládá informace při spuštění konkrétních sestav.
Poznámka: Pokud je služba Reporting Services nainstalovaná na jiném serveru než Azure DevOps Server, nemusí se tato databáze na serveru datové vrstvy nacházet pro Azure DevOps Server. V takovém případě ho musíte nakonfigurovat, zálohovat a obnovit odděleně od Azure DevOps Server. Měli byste ale synchronizovat údržbu databází, abyste se vyhnuli chybám synchronizace.
VirtualManagerDB Databáze pro správu pro SCVMM obsahuje informace, které zobrazíte v konzole správce SCVMM, jako jsou virtuální počítače, hostitelé virtuálních počítačů, servery knihoven virtuálních počítačů a jejich vlastnosti.
Poznámka: Pokud je SCVMM nainstalovaný na samostatném serveru než Azure DevOps Server, nemusí se tato databáze na serveru datové vrstvy nacházet pro Azure DevOps Server. V takovém případě ho musíte nakonfigurovat, zálohovat a obnovit odděleně od Azure DevOps Server. Měli byste však používat označené transakce a synchronizovat údržbu databází, abyste se vyhnuli chybám synchronizace.