Zálohování a obnovení zálohy serveru

Hlavní stránka / Podpora / Příručky / Příručka administrátora / Zálohování /

Zálohování a obnovení zálohy serveru

1. Zálohování pomocí programu BackupServer.exe

  • Zálohování pomocí programu „BackupServer.exe“ je založeno na vytváření záloh na serveru a jejich následném stahování na klientský počítač přes internet nebo interní síť.
  • Pomocí programu „BackupServer.exe“ lze zálohovat:
    • nastavení serveru IIS,
    • databáze (MSSQL, Firebird),
    • adresář NET Genia.
  • Vzorové soubory programu jsou k dispozici v každé instalaci NET Genia v adresáři „Backup\BackupServer“.

Použití:

BackupServer.exe [/config][/decrypt][/restore]
  • Nepovinné parametry:
    • /config – vytvoří v aktuálním umístění vzorový konfigurační soubor „BackupServer.exe.config“,
    • /decrypt – dešifruje všechny ZIP archivy v adresáři „Files“, viz kapitola Obnovení zálohy,
    • /restore – obnoví soubory ze záloh uložených v adresáři „Files“ do cílového umístění, viz kapitola Obnovení zálohy.
  • Program podporuje také parametr file, kterým lze zadat konkrétní (při zálohování zašifrovaný) soubor. V takovém případě bude daný soubor dešifrován.

Příklad použití:

BackupServer.exe soubor.zip

1.1. Serverová část – vytvoření zálohy na serveru

  • Program „BackupServer.exe“ včetně všech knihoven a souborů uložte například do adresáře „C:\Services\BackupServer\“. Do tohoto adresáře se zároveň ukládají vytvořené zálohy.
  • Program používá konfigurační soubor „BackupServer.exe.config“, který obsahuje nastavení šifrování, výčet zálohovaných databází a adresářů a další volby.

Příklad konfiguračního souboru:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>

<add key="key1" value="abcdefgh" />
<add key="key2" value="hgfedcba" />

<add key="database" value="db1" />
<add key="database" value="(local)\SQLEXPRESS|db2" />
<add key="database" value="C:\Firebird\DB3.FDB" />

<add key="directory" value="C:\inetpub\wwwroot" />
<add key="directory" value="C:\Services" />

<add key="excludedirectory" value="C:\Services\BackupServer\Files" />
<add key="excludedirectory" value="C:\Services\BackupServer\Temp" />
<add key="excludefile" value="C:\Services\PaymentService\*.log" />

<add key="runfile" value="C:\Services\Update\Update.exe" />

<add key="fullbackupinterval" value="7" />

<add key="logServiceConnectionString" value="driver=firebird;datasource=localhost;user=SYSDBA;password=masterkey;database=C:\Firebird\netgenium.fdb;charset=WIN1250;collation=WIN_CZ_CI_AI" />

</appSettings>
</configuration>

V konfiguračním souboru lze specifikovat:

  • šifrování záloh – parametry „key1“ a „key2“ (pokud jsou uvedeny, vytvořené soubory jsou po dokončení zálohy zašifrovány; na klientovi se následně dešifrují),
  • databáze určené k zálohování – parametr „database“:
    • MSSQL databáze: syntaxe „název_instance|název_databáze“,
    • Firebird databáze: plná cesta k databázovému souboru,
    • více Firebird databází v adresáři: plná cesta k adresáři zakončená „*.fdb“,
  • adresáře určené k zálohování – parametry „directory“ nebo „includedirectory“,
  • adresáře vyloučené ze zálohy – parametr „excludedirectory“,
  • soubory vyloučené ze zálohy – parametr „excludefile“:
    • lze použít konstrukci „*.přípona“.
  • programy, které se mají spustit po vytvoření zálohy (ale ještě před zašifrováním) – parametr „runfile“.
  • interval pro vytváření plné zálohy v dnech – parametr „fullbackupinterval“. Pokud parametr chybí, použije se výchozí interval 1 měsíc.
  • automatické zalogování služby „BackupServer“ do tabulky „ng_sluzbawindows“ (interval 1 den) – parametr „logServiceConnectionString“.
  • Nastavení serveru IIS se zálohuje automaticky.
  • Zálohování se obvykle spouští naplánovanou úlohou ve Windows. Pro samotné vytvoření zálohy stačí spustit „BackupServer.exe“ bez parametrů.

Postup zálohování

  • Vytvoření adresářů „Files“ a „Temp“, pokud neexistují.
  • Promazání adresáře „Temp“, do kterého se dočasně ukládají:
    • zálohy nastavení IIS (včetně aplikačních poolů a webů),
    • zálohy databází.
  • Provedení zálohy do adresáře „Temp“:
    • IIS: „applicationHost.config“,
    • aplikační pooly IIS: „apppools.xml“,
    • weby IIS: „sites.xml“,
    • databáze: „název_databáze.bak“ (MSSQL) nebo „název_databáze.fbk“ (Firebird).
  • Rozhodnutí, zda se bude vytvářet plná nebo přírůstková záloha:
    • Plná záloha se provede vždy, pokud:
      • adresář „Files“ je prázdný (dosud nebyla provedena žádná záloha),
      • poslední plná záloha je starší než 1 měsíc, nebo
      • uplynula doba definovaná parametrem „fullbackupinterval“ od poslední plné zálohy.
    • Přírůstková záloha se provede vždy, pokud se neprovádí plná záloha. Přírůstky se vytváří pro nově vytvořené soubory a pro soubory s novějším datem než dříve zálohované.
  • Uložení plné zálohy:
    • Plná záloha je ukládána ve formátu „yyyy-mm-dd-x (X).zip“, kde X je pořadové číslo ZIP souboru.
    • Pokud je celková velikost poslední plné zálohy větší než 10 GB, další plná záloha se vytváří pouze o víkendu.
  • Případné promazání starších záloh:
    • Pokud se provádí plná záloha a současně:
      • je „fullbackupinterval“ menší než 30 dní, nebo
      • (velikost poslední plné zálohy × 1,5) je větší než volné místo na disku,
    • smažou se všechny zálohy starší než 1 týden (plné i přírůstkové).
  • Vytvoření nové zálohy v adresáři „Files“:
    • ZIP archivy se vytváří z obsahu adresáře „Temp“ a ze všech adresářů definovaných v konfiguraci,
    • záloha se dělí na více ZIP souborů o maximální velikosti 1 GB,
    • jednotlivé soubory jsou pojmenovány „yyyy-mm-dd(X).zip“, kde X je pořadové číslo ZIP souboru.
  • Databáze větší než 1 GB:
    • pokud je záloha databáze větší než 1 GB, databáze se nevkládá do ZIP archivu, ale uloží se přímo do adresáře „Files“ jako:
      • „yyyy-mm-dd-název_databáze.bak“ (MSSQL), nebo
      • „yyyy-mm-dd-název_databáze.fbk“ (Firebird),
    • příslušný soubor databáze se následně z adresáře „Temp“ odstraní.
  • Vytvoření souborů „FileList.txt“ a „log.txt“ v adresáři „Files“:
    • „FileList.txt“ obsahuje výčet všech ZIP souborů a případných databází v adresáři „Files“,
    • v každém vytvořeném ZIP archivu je také „FileList.txt“, který obsahuje seznam všech zazálohovaných cest,
    • „log.txt“ obsahuje záznam o průběhu zálohy (např. „2014-01-01 05:00:00 OK“).
  • Spuštění programů definovaných parametrem „runfile“ (postupně).
  • Zašifrování nově vytvořených souborů v adresáři „Files“, pokud jsou v konfiguraci uvedeny „key1“ a „key2“.
  • Promazání záloh starších než 1 týden (plných i přírůstkových), pokud byla právě provedena plná záloha nebo pokud je datum zálohy starší než datum poslední plné zálohy.
  • Pro běh klientské části je nutné, aby byl adresář „Files“ vzdáleně přístupný. Toho lze dosáhnout přidáním virtuálního adresáře do IIS pod aplikaci NET Genia.
  • Virtuální adresář pojmenujte například „backupserver298“ a jako fyzické umístění nastavte „C:\Services\BackupServer\Files\“.
  • Tomuto adresáři nastavte oprávnění pro čtení tak, aby bylo možné zálohy z klientských stanic stahovat.

1.2. Klientská část – stažení zálohy na klienta

  • Klientská část slouží ke stahování záloh ze serveru.
  • V podadresáři „Client“ adresáře „BackupServer“ vyhledejte program „BackupServerService.exe“.
  • Spusťte „BackupServerService.exe“, aby se vytvořily zástupce „BackupServerService – console.lnk“ a „BackupServerService – user.lnk“.
  • Spusťte „BackupServerService – user.lnk“ a v dialogu klikněte na tlačítko „Install“. Tím dojde k instalaci služby „BackupServerService“, která se bude spouštět automaticky po startu systému.
  • Služba provádí kontrolu stahování záloh každých 10 minut.
  • Služba používá konfigurační soubor „BackupServerService.exe.config“.

Příklad konfiguračního souboru:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>

<add key="url" value="https://www.netgenium.com/backupserver298" />

<add key="smtpServer" value="localhost" />
<add key="smtpUserName" value="" />
<add key="smtpPassword" value="" />

<add key="errorFrom" value="backupserverservice@netgenium.com" />
<add key="errorTo" value="support@netgenium.com" />

<add key="key1" value="abcdefgh" />
<add key="key2" value="hgfedcba" />

<add key="logServiceConnectionString" value="driver=firebird;datasource=localhost;user=SYSDBA;password=masterkey;database=C:\Firebird\netgenium.fdb;charset=WIN1250;collation=WIN_CZ_CI_AI" />

</appSettings>
</configuration>

V konfiguračním souboru je nutné specifikovat:

  • cestu, odkud se budou stahovat zálohy – parametr „url“ (v příkladu je „backupserver298“ virtuální adresář vytvořený v IIS),
    • doporučuje se nastavit restrikce na IP adresy tak, aby byl přístup povolen pouze z určených klientských stanic,
  • SMTP server a přihlašovací údaje pro odesílání e-mailů – parametry „smtpServer“, „smtpUserName“ a „smtpPassword“,
  • e-mailovou adresu odesílatele chybových hlášení – parametr „errorFrom“,
  • e-mailovou adresu příjemce chybových hlášení – parametr „errorTo“,
  • klíče pro dešifrování záloh – volitelné parametry „key1“ a „key2“ (musí být shodné s klíči na serveru; pokud nejsou uvedeny, stažené zálohy se nedešifrují),
  • automatické zalogování služby „BackupServerService“ do tabulky „ng_sluzbawindows“ (interval 1 den) – parametr „logServiceConnectionString“.

Informace o stahování záloh

  • Zálohy jsou ukládány do složky „Files“ v umístění, kde je uložen program „BackupServerService.exe“.
  • Pokud jsou v konfiguraci uvedeny „key1“ a „key2“, všechny ZIP archivy a databáze se po stažení dešifrují.
  • Při každém stažení se kontroluje stáří plných záloh. Pokud je v adresáři „Files“ více plných záloh, první plná záloha a všechny starší plné zálohy se automaticky smažou.

2. Obnovení zálohy

  • Zálohu lze obnovit na klientském počítači spuštěním programu „BackupServer.exe“ s parametrem „/restore“.
  • Program nabídne volby:
    • Restore all databases and server settings
    • Restore all files
    • Restore all files except file attachments
    • Restore file attachments only
  • Poznámka: Pokud se obnova provádí přímo na serveru, je před spuštěním „BackupServer.exe /restore“ nutné nejprve provést dešifrování souborů pomocí „BackupServer.exe /decrypt“, protože zálohy na serveru jsou uloženy v zašifrované podobě.

2.1. Obnovení všech databází a nastavení serveru (Restore all databases and server settings)

  • Tato volba vytvoří adresář „Restore“, do kterého budou obnoveny zálohy všech databází a nastavení serveru z poslední provedené zálohy.
    • Zálohy databází lze následně hromadně obnovit pomocí programu „SqlBackup.exe“ volbou RA (restore all).
    • Nastavení IIS lze obnovit zkopírováním souboru „applicationHost.config“ do adresáře „Windows\System32\inetsrv\config\“. Pro tyto účely je v adresáři „Restore“ připraven dávkový soubor „applicationHost.bat.txt“.
    • Pokud soubor „applicationHost.config“ není k dispozici, lze část nastavení IIS obnovit importem souborů „sites.xml“ a „appools.xml“.

2.2. Obnovení všech souborů (Restore all files)

  • Tato volba obnoví celou adresářovou strukturu včetně všech souborů ze všech provedených záloh – od poslední plné zálohy včetně všech následujících přírůstkových záloh.
  • Program se zeptá, zda se má adresářová struktura obnovit:
    • do původního umístění (shodného s umístěním na serveru), nebo
    • do jiného zvoleného adresáře, odkud lze soubory následně přesunout podle potřeby.

2.3. Obnovení všech souborů kromě souborových příloh (Restore all files except file attachments)

  • Obnova všech souborů může být časově náročná. V krizových situacích je proto možné obnovu rozdělit do dvou fází:
    • v první fázi obnovit pouze adresářovou strukturu bez souborových příloh (tj. bez všech adresářů „Files“), aby bylo možné zprovoznit všechna NET Genia a služby,
    • ve druhé fázi následně obnovit samotné souborové přílohy.

2.4. Obnovení souborových příloh (Restore file attachments only)

  • Samostatná obnova souborových příloh je určena zejména jako druhá fáze obnovy po zprovoznění aplikací a služeb.
  • Při rozdělení obnovy do dvou fází platí:
    • v první fázi se obnoví adresářová struktura bez souborových příloh (bez adresářů „Files“),
    • ve druhé fázi se obnoví souborové přílohy.