Sdílet prostřednictvím


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

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

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

Pokud vaše nasazení zahrnuje službu 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í. Díky rutinnímu označení souvisejících transakcí v každé databázi vytvoříte v databázích řadu běžných bodů obnovení. 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 a plánu zálohování.

Zálohování databází

Chraňte své nasazení Azure DevOps před ztrátou dat vytvořením záloh databáze. Následující tabulka a doprovodné ilustrace ukazují, které databáze se mají zálohovat, a poskytují příklady toho, jak se tyto databáze můžou fyzicky distribuovat v 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 generování sestav SQL Server Reporting Services No
Databáze analýzy SQL Server Analysis Services No

Topologie nasazení

Na základě konfigurace nasazení můžou být všechny databáze, které vyžadují zálohování, na stejném fyzickém serveru, jako v této ukázkové topologii.

Poznámka:

Tento příklad neobsahuje službu Reporting Services ani sadu SharePoint Products, takže nemusíte zálohovat žádné databáze, které jsou spojené s vytvářením sestav, analýzou nebo produkty SharePoint.

Jednoduchá struktura databáze Azure DevOps Serveru

Jako alternativu mohou být databáze distribuovány napříč mnoha servery a serverovými farmami. V tomto příkladu topologie 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 Serveru

  • databáze kolekce, která se nachází na samostatném serveru se systémem SQL Server

  • databáze, které jsou umístěné na serveru se spuštěnou službou Reporting Services

  • databáze umístěná na serveru se spuštěnou službou Analysis Services

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

    Pokud se vaše databáze SharePointu škálují 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 databáze Azure DevOps Serveru. Další informace najdete v tématu věnovaném ručnímu zálohování Azure DevOps Serveru.

Složitá struktura databáze Azure DevOps Serveru

V obou těchto příkladech nemusíte zálohovat žádné klienty, kteří se připojují k serveru. Než se ale budou moct znovu připojit k obnovené nasazení, budete možná muset ručně vymazat mezipaměti pro Azure DevOps Server na klientských počítačích.

Databáze k zálohování

Následující seznam obsahuje další podrobnosti týkající se toho, co je potřeba zálohovat v závislosti na prostředcích nasazení.

Důležité

Všechny databáze v následujícím seznamu jsou databáze SQL Serveru. I když sql Server Management Studio můžete kdykoli zálohovat jednotlivé databáze, měli byste se vyhnout použití těchto jednotlivých záloh, pokud je to možné. Pokud obnovíte jednotlivé zálohy, může dojít k neočekávaným výsledkům, protože databáze, které Azure DevOps používá, souvisí. Pokud zálohujete pouze jednu databázi, nemusí se data v této databázi synchronizovat s daty v ostatních databázích.

  • Databáze pro Azure DevOps Server – logická datová úroveň pro Azure DevOps Server zahrnuje několik databází SQL Serveru, včetně konfigurační databáze, databáze skladu a databáze pro každou kolekci projektů v nasazení. Tyto databáze můžou být na stejném serveru, distribuovány napříč několika instancemi ve stejném nasazení SQL Serveru nebo distribuované napříč několika servery. Bez ohledu na jejich fyzickou distribuci je nutné zálohovat všechny databáze do stejného časového razítka, aby bylo zajištěno, že dojde ke ztrátě dat. Zálohy databáze 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 se ujistěte, že do plánu údržby přidáte databázi této kolekce.

  • Databáze pro službu Reporting Services a Analysis Services – Pokud vaše nasazení používá službu SQL Server Reporting Services nebo Služba Analysis Services serveru SQL k generování sestav pro Azure DevOps Server, musíte zálohovat databáze pro vytváření sestav a analýzy. Po obnovení však 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í nástroje konfigurace 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áznam účtů, které vytvoříte, a všech názvů počítačů, hesel a možností nastavení, které zadáte. Měli byste také uchovávat kopii všech materiálů pro obnovení, dokumentů a záloh transakčních protokolů v zabezpečeném umístění. Pokud chcete zajistit ochranu před havárií, jako je požár nebo zemětřesení, měli byste uchovávat duplicitní zálohy serveru v jiném umístění než umístění serverů. Tato strategie vám pomůže chránit 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 v řízeném prostředí byste měli uchovávat aspoň jednu kopii mimo pracoviště.

Důležité

Pravidelně obnovujte zkušební data, 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í s ověřením pouze softwarem.

Při zálohování a obnovení databáze je nutné zálohovat data na médium pomocí síťové adresy (například pásky a disky sdílené jako síťové jednotky). Plán zálohování by měl zahrnovat ustanovení pro správu médií, například následující taktiku:

  • Plán sledování a správy pro ukládání a recyklaci sad záloh.
  • Plán přepsání záložního média
  • V prostředí s více servery se můžete rozhodnout používat centralizované nebo distribuované zálohy.
  • Způsob sledování užitečné životnosti médií.
  • Postup minimalizace dopadu ztráty zálohovací sady nebo záložního média (například pásky).
  • Rozhodnutí ukládat zálohovací sady na místě nebo mimo pracoviště a analýzu toho, jak toto rozhodnutí může ovlivnit dobu obnovení.

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

Server můžete zálohovat pomocí dostupných funkcí naplánovaných záloh nebo ručním vytvořením plánů údržby na SQL Serveru k zálohování databází, které souvisejí s nasazením Azure DevOps. Databáze Azure DevOps fungují ve vztahu s ostatními 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í databází SQL Serveru.

Typy záloh

Pochopení dostupných typů záloh vám pomůže určit nejlepší možnosti zálohování nasazení. Pokud například pracujete s velkým nasazením a chcete chránit před ztrátou dat při efektivním používání omezených prostředků úložiště, můžete nakonfigurovat rozdílové zálohování a ú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álohování nebo rozdělit zálohy mezi více souborů. Tady jsou stručné popisy 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ě obsažené v tom, že představují celou databázi, jak existovala při zálohování. Další informace naleznete v tématu Úplné zálohy databáze.

Rozdílové zálohování dat (databáze)

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

Transakční protokoly byste také měli pravidelně zálohovat. Tyto zálohy jsou nezbytné pro obnovení dat při použití modelu úplné zálohy 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. Protokol transakcí zaznamenává začátek 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ě zvětšuje, protože 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 tím, než byla zadána nežádoucí data nebo došlo k chybě. Kromě záloh databáze musí být zálohy transakčních protokolů součástí vaší strategie obnovení. Další informace naleznete v tématu Zálohování transakčních protokolů (SQL Server).

Zálohy transakčních protokolů obvykle použí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 však záloha transakčního protokolu větší než úplná záloha. Například databáze s vysokou rychlostí transakcí způsobí, že se transakční protokol rychle zvětšuje. V takovém případě byste měli vytvářet zálohy transakčních protokolů častěji. Další informace naleznete v tématu Řešení potíží s úplným transakčním protokolem (chyba SQL Serveru 9002).

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

  • Čistá záloha protokolu obsahuje pouze záznamy transakčního protokolu pro interval bez jakýchkoli hromadných změn.
  • Hromadné zálohování protokolů obsahuje protokoly 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í tail-log se provádí po selhání, aby se zabránilo ztrátě práce a může obsahovat buď čistý protokol, nebo hromadná data protokolu.

Vzhledem k tomu, že synchronizace dat je důležitá pro úspěšné obnovení Azure DevOps Serveru, měli byste v rámci strategie zálohování použít označené transakce, pokud konfigurujete zálohy ručně. Další informace najdete v tématu Vytvoření plánu zálohování a plánování a ruční zálohování Azure DevOps Serveru.

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

Jedinou zálohou potřebnou pro logickou aplikační vrstvu je šifrovací klíč pro službu Reporting Services. Pokud k zálohování nasazení použijete funkci Plánované zálohování, tento klíč se za vás bude zálohovat 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, existuje ještě několik kroků k obnovení aplikační vrstvy. Pro Azure DevOps Server musíte nainstalovat jinou aplikační vrstvu, přesměrovat kolekce projektů, 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é při nasazení Azure DevOps Serveru. 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), VirtualManagerDB, pokud nenakonfigurujete Azure DevOps Server tak, aby podporovala Lab Management. Databáze, které Azure DevOps Server používá, se navíc můžou distribuovat napříč více než jednou instancí SQL Serveru nebo napříč více než jedním serverem.

Poznámka:

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

Databáze Popis
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 konfigurací, 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 sestavení skladu, který služba Reporting Services používá. 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 kolekce 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 rovná počtu kolekcí. Pokud máte například ve svém nasazení tři kolekce, musíte tyto tři databáze kolekcí zálohovat. 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. Název databáze kolekce může být například 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 Serveru. Název této databáze může obsahovat další znaky mezi TFS_ a Analýzou, například uživatelské jméno osoby, která službu Analysis Services nainstalovala. 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 Serveru.
Poznámka: Pokud je služba Reporting Services nainstalovaná na samostatném serveru od Azure DevOps Serveru, nemusí být tato databáze na serveru datové vrstvy pro Azure DevOps Server. V takovém případě je nutné ho nakonfigurovat, zálohovat a obnovit odděleně od Azure DevOps Serveru. Měli byste synchronizovat údržbu databází, abyste se vyhnuli chybám synchronizace.
ReportServerTempDB Dočasná databáze služby Reporting Services dočasně ukládá informace při spouštění konkrétních sestav.
Poznámka: Pokud je služba Reporting Services nainstalovaná na samostatném serveru než Azure DevOps Server, nemusí být tato databáze na serveru datové vrstvy pro Azure DevOps Server. V tomto případě musíte nakonfigurovat, zálohovat a obnovovat ho odděleně od Azure DevOps Serveru. 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 pro správu SCVMM, jako jsou virtuální počítače, hostitelé virtuálních počítačů, servery knihovny virtuálních počítačů a jejich vlastnosti.
Poznámka: Pokud je SCVMM nainstalovaný na samostatném serveru než Azure DevOps Server, nemusí být tato databáze na serveru datové vrstvy pro Azure DevOps Server. V takovém případě je nutné ho nakonfigurovat, zálohovat a obnovit odděleně od Azure DevOps Serveru. Měli byste však použít označené transakce a synchronizovat údržbu databází, abyste se vyhnuli chybám synchronizace.