www.SAMURAJ-cz.com 

19.04.2024 Rostislav Translate to English by Google     VÍTEJTE V MÉM SVĚTĚ

Články

Veeam Backup & Replication - zálohování aplikací

Středa, 17.08.2022 13:04 | Samuraj - Petr Bouška |
Pátý díl mého seznamování se zálohovacím řešením Veeam. Podíváme se na zálohování vybraných aplikací, které Veeam Backup & Replication nativně podporuje. Umožňuje provést transakčně konzistentní zálohu a také granulární obnovu na úrovni položek aplikace. Stručně si popíšeme (a uvedeme odkazy do různé dokumentace), jak zálohování funguje, co bychom měli nastavit a jaká jsou doporučení. Věnovat se budeme doménovým řadičům Active Directory, Exchange Server, SQL Server a Oracle Database.

Pozn.: Popis v článku vychází z Veeam Backup & Replication 11a, licencováno pomocí Veeam Universal License (VUL), tedy obdoba Enterprise Plus.

Zálohování aplikací - Application-aware backup

Veeam Backup & Replication nabízí, pro několik vybraných aplikací, nativní podporu pro zálohování a obnovu. Znamená to, že zajistí bezpečnost dat a transakční konzistenci při zálohování, většinou pomocí Application-aware processing. Také podporuje granulární obnovu na úrovni položek aplikace pomocí Veeam Explorers.

Pro zálohování aplikací, které nejsou nativně podporovány, musíme ověřit v dokumentaci aplikace požadavky na zálohování. Některé aplikace nevyžadují speciální operace, aby byla zajištěna transakční konzistence. Pro další aplikace můžeme využít skripty před a po rozmrazení (pre-freeze and post-thaw scripts), které se spustí uvnitř VM. Ty provedou zmrazení transakcí nebo vytvoří konzistentní Snapshot (snímek) na úrovni aplikace (případně se může aplikace ukončit, což způsobí výpadek pro klienty).

Pro zálohování VM můžeme většinou použít nativní zálohování Veeam Backup & Replication skrze virtualizaci. Pro zálohování fyzických serverů, a pár specifických případů aplikace ve VM, musíme využít Veeam Agent.

Image-level backup

Veeam Backup & Replication (je jedno, zda nativně nebo za pomocí Veeam agenta) funguje při zálohování aplikací v jedné věci zásadně jinak než jiné zálohovací aplikace, které jsem používal.

Veeam Backup & Replication vždy zálohuje celé VM nebo počítač/svazek (pomocí agenta, pokud chceme použít Application-aware processing, nemůžeme zálohovat pouze soubory a složky), tedy jde o zálohu na úrovni obrazu. Nemůžeme si vybrat pouze určitou Mailbox Database na Exchange serveru nebo databázi na SQL či Oracle databázovém serveru. To může být značně nepříjemné, pokud na jednom serveru máme provozní a (třeba) testovací databáze, které nechceme zálohovat (mohou zabírat desítky terabyte).

Domain Controller (DC) a Active Directory Domain Services (AD DS)

Je podporována aplikačně konzistentní (Application Aware) záloha fyzických (pomocí agenta) i virtuálních (nativně) doménových řadičů. Doporučuje se zálohovat řadič, který má nejvíce FSMO rolí (nic nebrání tomu zálohovat všechna DC). Pro obnovu aplikačních položek je jedno, který doménový řadič zálohujeme.

Pro správné fungování musí být v zálohovací úloze zapnuté Application-Aware Processing. Potřebujeme oprávnění Enterprise Administrator nebo Domain Administrator.

Veeam Guest Processing Hyper-V

Microsoft doporučuje provozovat několik DC, ideálně v různých lokalitách, které replikují Active Directory Database (ntds.dit) a obsahují kompletní kopii adresáře. Když dojde ke ztrátě jednoho serveru, tak je často lepší nově postavit tento server než obnovovat ze zálohy.

Záloha se hodí pro obnovu smazaných položek (ale pro mnoho situací můžeme využít Active Directory Recycle Bin), když dojde k poškození databáze nebo třeba útoku ransomware.

Obnova DC nebo položek AD

Při obnově se standardně provádí Non-Authoritative Restore, kdy obnovený DC aktualizuje databázi nejnovějšími změnami od ostatních. Veeam Backup & Replication obnoví soubory VM, nastartuje do Directory Services Restore Mode (DSRM) módu, aplikuje nastavení a restartuje do normálního režimu.

Pro Authoritative Restore, kdy obnovené DC autoritativně aktualizuje ostatní DC svými vlastními daty, musíme provést manuální kroky (How to recover a Domain Controller: Best practices for AD protection).

Pokud chceme obnovit smazaný AD objekt, včetně originálního objectSID a objectGUID, tak musí existovat Tombstone objekt nebo objekt v AD Recycle Bin. Pokud již uběhl Tombstone Lifetime nebo Deleted Object Lifetime (objekt byl fyzicky smazán), tak při obnovení dostane nové atributy objectSID a objectGUID. Více ve Veeam Explorers User Guide - Considerations and Limitations.

Veeam Explorer for Microsoft Active Directory

Microsoft Exchange Server

Je podporována aplikačně konzistentní (Application Aware) záloha fyzických (pomocí agenta) i virtuálních (nativně) Exchange serverů. Včetně různých konfigurací Database Availability Group (DAG).

Pro správné fungování musí být v zálohovací úloze zapnuté Application-Aware Processing. Standardně se využije Microsoft VSS. Pokud jsou Exchange servery virtuální, tak můžeme využít nativní zálohování VM.

Nějaké detailní informace se u Veeamu hledají těžko, existují pouze nějaké staré články, jako How to: Back up Exchange Database Availability Groups (DAGs) with Veeam Backup & Replication. Podobně nalezneme starší popis zálohování pomocí Agenta How to Backup a Windows Failover Cluster with Veeam Agent for Microsoft Windows.

Veeam Guest Processing VMware

Exchange DAG

DAG zajišťuje vysokou dostupnost databáze schránek pomocí replikace na další servery, jedna kopie je aktivní a ostatní neaktivní. Využívá technologii Windows Failover Cluster. V rámci DAGu můžeme zálohovat pouze jeden uzel (Exchange server) nebo více/všechny.

Většinou je důležité, aby se po záloze zkrátily (smazaly) transakční logy (Transaction Log Truncation). Pro DAG stačí zálohovat jeden uzel a dojde ke smazání transakčních logů na všech uzlech.

Doporučení

Veeam uvádí pár doporučení. Vytvořit jednu VM zálohovací úlohu a do ní přidat všechny DAG uzly. Pokud potřebujeme, aby zálohování neovlivnilo výkon Exchange služeb, tak provozovat jeden uzel pouze s pasivními databázemi a zálohovat pouze tento. V době zálohování na Exchange serveru nepoužívat jiné úlohy údržby apod.

V praxi jsem narazil na problém, že se občas při záloze jednoho DAG uzlu zobrazilo varování:

VSS: Backup job failed. Cannot notify writers about the 'BACKUP FINISH' event. A VSS critical writer has failed.
 Writer name: [Microsoft Exchange Writer]. Class ID: [{76fe1ac4-15f7-4bcd-987e-8e1acb462fb7}]. Instance ID: 
[{c9d66233-dd01-4acd-bce2-b83bc4dade6c}]. Writer's state: [VSS_WS_FAILED_AT_BACKUP_COMPLETE]. Error code: [0x800423f3]

V diskusích jsem našel, že je problém, pokud VSS operace probíhá ve stejnou chvíli na více uzlech. Řešení je rozdělit Exchange servery do různých úloh. Opravdu to pomohlo.

Zvýšení časových limitů clusteru (DAG)

Když se (během zálohování) vytváří nebo ruší Snapshot VM, tak dojde ke krátkému zmrazení VM. To může být delší, než jsou defaultní časy pro Exchange DAG, a dojde k Failover na záložní uzel. Veeam doporučuje zvýšení časů (timeout) pro cluster Tips for DAG Exchange Backup and Replication in vSphere.

[PS] C:\> Get-cluster | fl *subnet*

CrossSubnetDelay          : 1000
CrossSubnetThreshold      : 20
PlumbAllCrossSubnetRoutes : 0
SameSubnetDelay           : 1000
SameSubnetThreshold       : 10

(get-cluster).SameSubnetThreshold = 20
(get-cluster).SameSubnetDelay = 2000   
(get-cluster).CrossSubnetThreshold = 40
(get-cluster).CrossSubnetDelay = 4000

Microsoft SQL Server

Veeam Backup & Replication umožňuje nativně zálohovat virtuální SQL Server, pokud jde o Standalone SQL Server nebo Always On Availability Group. Pro správné fungování (nativně i s agentem) musí být v zálohovací úloze zapnuté Application-Aware Processing.

Zajímavý dokument k zálohování SQL serverů - SQL Server Backup and Restore in a Veeam environment.

Kdy použít Veeam Agenta

Za pomoci Veeam Agent můžeme navíc zálohovat virtuální SQL Server Failover Cluster (do úlohy typu Failover cluster přidáváme clusterový účet, ne jednotlivé členy clusteru) a vše na fyzickém SQL Serveru. Agenta také musíme použít, pokud na virtuálním SQL serveru využíváme RDM (Raw Device Mapping), disky (LUNy) přímo na diskovém poli.

Veeam Agent má určitá omezení uvedená v Veeam Agent Management Guide - Failover Cluster Support.

VM s SQL AlwaysOn Availability Groups

Veeam zveřejnil materiál Benefits of using SQL AlwaysOn Availability Groups for Virtual Environment & Veeam, kde srovnává SQL Failover Cluster a SQL AlwaysOn Availability Groups ve virtuálním prostředí. Závěrem je doporučení využívat SQL AlwaysOn Availability Groups a zálohovat (nativně) na úrovni obrazu VM. Veeam Backup & Replication analyzuje informace o databázích a provede VSS Snapshot s odpovídajícími flagy.

Transakční logy

Standardně se po úspěšné záloze zpracují transakční logy (Transaction Log Truncation). Můžeme také využít zálohování transakčních logů (Transaction Log Backup) - Microsoft SQL Server Log Backup, a dosáhnout kratší RPO (minimum 5 minut). Logy se mohou zálohovat pouze, pokud byla databáze korektně zálohovaná. Pro SQL AlwaysOn Availability Groups se logy zálohují z jednoho uzlu, který se volí určitými pravidly (všechny uzly musí být ve stejné zálohovací úloze).

Když se zkracují (truncate) transakční logy, tak je uvolněný prostor k dispozici pro opětovné využití. Ale velikost souboru s logy se nezmenší. Můžeme použít operaci Transaction Log Shrink, kterou Veeam doporučuje provádět pravidelně. Více informací o těchto operacích Microsoft Shrink a file, SQL Server Transaction Log Backup, Truncate and Shrink Operations.

Veeam Guest Processing VMware - SQL logs

Doporučení

Pro korektní možnosti obnovy je potřeba, aby Recovery Model pro databáze byl buď Full nebo Bulk-logged. Více Required Backup Job Settings či u Microsoftu Recovery Models (SQL Server).

Veeam v Best Practice Guide (Microsoft SQL Server) uvádí, že je dobré zkontrolovat VSS writers a providers (ale podle mne tam chybí více detailů) pomocí příkazů:

vssadmin list providers
vssadmin list writers

Dále výkonový stav serveru, protože zálohování zatěžuje I/O operace. Pro SQL AlwaysOn Availability Groups můžeme zvýšit časy pro cluster, stejně jako je uvedeno pro Exchange DAG. Při zálohování transakčních logů se vytváří dočasná složka <drive with most free space>:\Veeam\Backup\SqlLogBackup (můžeme změnit pomocí registrů).

Problém se zálohou mnoha databází - VSS writer failed

Narazili jsme na problém na SQL Serveru s větším množstvím databází (přes 300). Najednou zálohování začalo vracet chybu. V logu se objevovala chyba

Failed to create snapshot: Backup job failed.
Cannot create a shadow copy of the volumes containing writer's data.
A VSS critical writer has failed. Writer name: [SqlServerWriter]. Class ID: [{a65faa63-5ea8-4ebc-9dbd-a0c4db26912a}].
 Instance ID: [{b2a57bac-1ee9-4bc0-a861-c470f55ed5b9}]. Writer's state: [VSS_WS_FAILED_AT_PREPARE_SNAPSHOT].
 Error code: [0x800423f4].]

Výpis VSS writers na SQL Serveru vracel chybu

vssadmin list writers
...
Writer name: 'SqlServerWriter'
   Writer Id: {a65faa63-5ea8-4ebc-9dbd-a0c4db26912a}
   Writer Instance Id: {fbf31294-b5ff-49c7-baba-cede9eea3513}
   State: [8] Failed
   Last error: Non-retryable error

Application Event Log bylo mnoho chyb. Tento problém popisuje článek Veeam SQL Server backup – A VSS critical writer has failed. Writer name: [SqlServerWriter]/ Cannot open backup device.

Radí ručně nastavit větší hodnotu Max Worker Threads, což je popsáno u Microsoftu Configure the max worker threads Server Configuration Option. Nastavení hodnoty 960 problém vyřešilo a zálohy probíhají. Otázka je, zda takové zvýšení neovlivní výkon serveru.

Oracle Database

Veeam Backup & Replication nabízí tři různé metody, jak zálohovat Oracle Database. Nativně virtuální server na úrovni obrazu VM, fyzický nebo virtuální server pomocí Veeam Agent a nejlépe využitím Oracle Recovery Manager (RMAN) s integrací pomocí certifikovaného Veeam Plug-in for Oracle RMAN.

Zajímavý dokument k Oracle zálohování - How to back up and restore an Oracle database - best practices.

Podpora

Podporované verze Oracle na Windows nebo Linux nalezneme v dokumentaci Supported Applications. Další dokumentace uvádí určité podmínky Considerations and Limitations a předpoklady Required Backup Job Settings. Oracle Database Express Edition (XE) je podporována pouze na Windows. Oracle Real Application Clusters (RAC) je podporován pouze pomocí Veeam Plug-in for Oracle RMAN.

Zálohování pomocí obrazu

Celý fyzický či virtuální server s Oracle Database můžeme zálohovat pomocí obrazu (image-level backup) s Veeam Backup & Replication nebo Veeam Agent. Pro správné fungování musí být v zálohovací úloze zapnuté Application-Aware Processing.

Pouze databáze v módu ARCHIVELOG se zálohují online. Databáze se přepne do zálohovacího módu (ALTER DATABASE BEGIN BACKUP), vytvoří se Snapshot, vrátí se do inicializovaného stavu a zálohuje se ze Snapshotu. Pokud je v módu NOARCHIVELOG, tak se při zálohování vypne. Když obnovujeme VM s databází v módu ARCHIVELOG, tak musíme po obnově databázi přepnout ze zálohovacího módu (ALTER DATABASE END BACKUP).

Archivní redo logy

Po úspěšné záloze můžeme zpracovat archivní redo logy (Archived Log Processing). Můžeme nechat smazat logy starší než daný počet hodin (nedoporučuje se méně než 24 hodin) či přesahující velikost. Můžeme také využít zálohování archivních logů (Archived Log Backup) - Oracle Log Backup (VMware Oracle Archived Log Settings, Agent Oracle Processing Settings). Další zajímavé informace nalezneme v dokumentaci k Veeam Agent for Linux Oracle Backup.

Veeam Guest Processing Windows Agent - Oracle logs

Veeam Plug-in for Oracle RMAN

V mnoha případech dojdeme k tomu, že musíme využít Veeam Plug-in for Oracle RMAN. Pro zálohování se pak využívá Oracle RMAN, kde se zálohování konfiguruje a spravuje, a vytváří transakčně konzistentní zálohy databází. Veeam Plug-in zajišťuje integraci s Veeam Backup & Replication a ukládá zálohy do Veeam Backup Repository. Veeam Server má přístup k vytvořeným zálohám.

Výhoda je, že RMAN je nativní Oracle nástroj doporučený pro zálohování a obnovu Oracle databází. Podporuje všechny konfigurace a možnosti Oracle Database. Zálohuje vybrané databáze (ne celý server či operační systém).

Nevýhoda je, že se musí spravovat na straně databázového serveru pomocí RMAN skriptů. Zde se také plánuje provádění záloh, doba uchování záloh apod. Přicházíme o centralizovanou správu zálohování. Zálohování také častěji konfiguruje databázový tým, který má potřebné znalosti.

Veeam doporučuje zálohovat Oracle Home, pomocí Veeam Backup & Replication nebo Veeam Agent, když zálohujeme databáze pomocí Oracle RMAN. Pro zálohování Oracle RAC je doporučeno instalovat plug-in na všechny uzly, aby mohla záloha proběhnout z libovolného z nich. Zálohy pomocí pluginu se přenáší přímo na zálohovací úložiště. Pokud nemá úložiště volný slot (zpracovává se paralelně řada úloh), tak zálohování selže. Zálohy vytváří hodně souborů a hodně metadat, která se ukládají do Veeam konfigurační databáze.

Veeam Plug-in použití

Na začátku je dobré se seznámit s požadavky a vlastnostmi Oracle prostředí - Oracle Environment Planning. A Veeam prostředí - Veeam Environment Planning.

Po nastavení plug-inu a připojení k Backup Serveru se automaticky vytvoří Backup Job. Jeho jméno se generuje automaticky ze jména serveru/clusteru a úložiště. Na Backup Serveru nemůžeme úlohu upravovat či spustit, ale můžeme zobrazit statistiky a úlohu zakázat (pak nejde z Oracle RMAN spustit).

Záloha vytváří soubory VAB (komprimovaná kopie Oracle databáze), VASM (metadata, která obsahují informace o záloze) a VACM (metadata zálohovací úlohy).

Plug-in musíme nainstalovat a nakonfigurovat. Při konfiguraci zadáváme adresu Veeam Backup & Replication Serveru (a port, defaultně 10006), pověření (credentials), tedy účet, kterým se ověříme vůči serveru a přistoupíme na úložiště, a výběr Backup Repository pro uložení záloh (není podporováno šifrované úložiště).

Pro účet, který použijeme v plug-inu, je důležité, jaká musí mít práva (dokumentace v tomto ohledu není moc kvalitní). Tímto účtem se ověřujeme na Veeam Backup Server pomocí Windows Authentication, takže může jít o lokální Windows účet na tomto serveru. Postačuje členství ve skupině Users. Účet také musí mít právo zápisu na zvolené Backup Repository (Console - Backup Repositories - pravým tlačítkem na repo a zvolíme Access permissions). Další info Veeam Backup Server User.

Minulý rok se v dokumentaci Configuring Plug-in on Linux or Unix nacházela nepravdivá informace (a podobná je zatím stále v Configuring Plug-in on Windows):

The account must have the local Administrator permissions on the Veeam Backup & Replication server.

Všechny vlastnosti zálohování jsou řízeny RMANem. To znamená, že i tam nastavujeme pravidla uchování záloh - Retention of RMAN Backups and Archived Logs. Případně můžeme využít Backup Copy Job a tyto zálohy spravovat Veeamem. A vlastní zálohování a jeho spuštění - Database Protection.

Oracle RMAN můžeme provádět všechny podporované druhy obnovy databáze. Můžeme také provést obnovu z Veeam Backup & Replication pomocí Veeam Explorer for Oracle.

Přesun souborů zálohy (vytvořených pomocí Veeam Plug-in) na jiné úložiště

Veeam má popis v článku Importing Backup Files, kde mi chybí dva kroky, aby byla operace funkční.

  • přesuneme záložní soubory (celou složku) na nové Repository
  • znovu naskenujeme nové úložiště, Backup Infrastructure - Backup Repositories - na úložišti volba Rescan
  • skenování najde jednu novou zálohu, objeví se v Home - Backups - Disk (Imported)
  • znovu naskenujeme původní úložiště, Backup Infrastructure - Backup Repositories - na úložišti volba Rescan
  • smažeme Backup Job (vytvoří se nově s novým názvem po spuštění příkazu s map-backup), Home - Jobs, na úloze zvolíme Delete
  • pokračujeme na Oracle Serveru, kde použijeme OracleRMANConfigTool, nejprve vybereme nové úložiště, pak se provede mapování
OracleRMANConfigTool --set-repositories
OracleRMANConfigTool --map-backup
  • upravíme RMAN skript, změníme Repository ID, které najdeme ve veeam_config.xml (možná má toto provést sám nástroj při volbě úložiště, ale u mne selhalo)

Dokud jsem neprovedl Rescan původního úložiště, tak příkaz s map-backup vracel chybu:

Repository XXX: failed to map: There is an existing backup with the same original ID linked to the job

Dokud jsem nezměnil Repository ID v RMAN skriptu, tak se stále snažil ukládat zálohy na původní úložiště a záloha končila chybou:

Session failed: Info call failed during backup session  

MySQL a PostgreSQL

Veeam Agent for Linux umožňuje vytvářet transakčně konzistentní zálohy strojů s MySQL databází a PostgreSQL databází. Další informace v Veeam Agent for Linux - Backup of Database Systems.

Veeam Guest Processing Linux Agent - MySQL

Při zálohování VM můžeme využít skripty před a po rozmrazení. Doporučení pro MySQL Backup.

Windows File Server Failover Clusters

Pro zálohování musíme použít Veeam Agent. Podrobný popis je v článku How to backup a Windows 2019 file server cluster.

zobrazeno: 2901krát | Komentáře [4]

Autor:

Související články:

Zálohování - Backup

Články věnující zálohování (Backup), replikaci (Replication) a obnově (Restore) dat. Tedy ochraně dat (Data Protection) pomocí záložních kopií a obnově po havárii (Disaster Recovery).

Pokud se chcete vyjádřit k tomuto článku, využijte komentáře níže.

Komentáře

  1. [1] Andrews

    SQL exclude databáze udělat jde https://www.veeam.com/kb2110 ;-)

    Středa, 17.08.2022 16:45 | odpovědět
  2. [2] Samuraj

    odpověď na [1]Andrews: Bohužel se mýlíte. Toto KB jsem viděl, mluví o něčem úplně jiném a přímo to tam zdůrazňují. Jde o vyřazení určité DB ze zpracování pomocí Application-Aware Processing. Ale soubory DB se normálně zálohují.

    Středa, 17.08.2022 17:39 | odpovědět
  3. [3] Druid

    Veeam je super ale co zálohy SQL týče, tak tam DPM tak nějak kraluje.

    Nebo alespon pro mě je zálohování SQl ve veeam zamatené i když nějaké články o tom jsou.

    Třeba o restore: https://www.veeam.com/blog/how-to-restore-a-sql-server-database.html

    Úterý, 15.11.2022 09:14 | odpovědět
  4. [4] Druid

    Hura tak Veeam 12 má agenta pro MS SQL, min OS 2012R2, SQL 2014

    Pondělí, 17.04.2023 16:33 | odpovědět
Přidat komentář

Vložit tag: strong em link

Vložit smajlík: :-) ;-) :-( :-O

Nápověda:
  • maximální délka komentáře je 2000 znaků
  • HTML tagy nejsou povoleny (budou odstraněny), použít se mohou pouze speciální tagy (jsou uvedeny nad vstupním polem)
  • nový řádek (ENTER) ukončí odstavec a začne nový
  • pokud odpovídáte na jiný komentář, vložte na začátek odstavce (řádku) číslo komentáře v hranatých závorkách