Databázový server Popis
Databázový server
Databázový server je pro provoz Kaskády klíčovým elementem.
Počítač, na kterém je uložen databázový soubor a zároveň je zde spuštěn SQL server,
je to aplikace, která pro klienty (pracovní stanice) zpracovává veškeré manipulace s daty.
V případě Kaskády se jedná o 602SQL server, který jakožto produkt renomovaného českého výrobce SW - Software602 - poskytuje záruky výkonu a stability při velmi dobrém poměru cena výkon.
Vyhrazený nevyhrazený server, zajištění bezpečnosti a výkonu
Ačkoliv není nezbytné, aby databázový server běžel na samostatném vyhrazeném počítači, je to nanejvýš vhodné. Nedoporučujeme takové řešení, při kterém na některém z počítačů sloužících jako stanice je mimochodem nainstalován samotný SQL server. Není to vhodné ani z hlediska výkonu ani z hlediska bezpečnosti.
Čím dál častějším opatřením proti počítačovým virům jsou antivirové programy. Ty jsou bezesporu užitečné, ale velmi zatěžují systém na kterém běží a značně snižují jeho výkon. Databázový server by měl být proti vnějším rizikům zabezpečen jiným způsobem. K tomuto počítači by měl být omezen fyzický přístup, nemělo by být nastaveno žádné sdílení diskového prostoru ani tiskáren, pro ostatní počítače by měl být dostupný pouze a jedině prostřednictvím TCPIP protokolu pro spojení s databází. Také antivirová kontrola e-mailů by měla být řešena na jiném počítači, než je databázový server
Z výše uvedeného tedy vyplývají následující doporučení
provozovat databázový server na počítači vyhrazeném pouze a jedině k tomuto účelu,
databázový server zajistit zdrojem nepřerušitelného napájení (viz. dále),
zajistit počítač proti nežádoucím vlivům (viry a jiné druhy útoků), ale neprovozovat přímo na databázovém serveru antivirový systém,
zajistit na tomto počítači bezpečnostní zálohování, především zálohování databázového souboru wb8.fil.
Doporučené HW parametry
Doporučené parametry je nutno chápat raději jako parametry minimální. Použitím počítačů s větším výkonem se samozřejmě nic nezkazí, naopak provozu to jedině prospěje.
Pro provoz databázového serveru by měl být vyhrazen počítač, u kterého nejsou důležité parametry, jako například kvalita zvukové karty, velikost monitoru apod. Zato je důležitý výkon procesoru, rychlost pevného disku a velikost operační paměti.
Minimální parametry pro takový počítač jsou následující
procesor Pentium IV (nebo ekvivalent a vyšší),
operační paměť 1 GB RAM a více,
operační systém Win2000NTXPWin7 (nikoliv Win9x, nikoliv Vista), některá varianta Windows serveru apod.
Nezbytným vybavením databázového serveru je UPS typu OnLine. Toto zařízení, česky nazývané nepřerušitelný zdroj napájení, je pro databázový server opravdu nezbytností, protože výpadek elektřiny, při kterém dojde k okamžitému vypnutí serveru bez uložení dat z operační paměti na pevný disk, může být naprostou katastrofou. Bez tohoto zabezpečení je provoz velmi rizikový a hrozí nemalé a zbytečné náklady, jak ve ztrátách času, tak ve ztrátách dat a financí při odstraňování následků případného problému. Toto zařízení v ceně přibližně 5.000,- Kč bohatě vynahradí riziko, které eliminuje.
Poznámka
UPS je zařízení, které má svoji omezenou životnost a nutné revize. Nejdéle po dvou letech provozu je nutno provést odborné přeměření kapacity baterie a zajistit jejich včasnou repasi. Pokud totiž UPS není pravidelně kontrolována, může při zhoršení stavu baterie dojít ke zcela opačnému efektu, kdy při krátkodobém poklesu napětí dojde k vypnutí počítače z důvodu špatného stavu baterií.
Závěrem lze říci, že UPS je zařízení nezbytné a velmi užitečné za předpokladu, že mu je věnována správná péče.
Co musí být nainstalováno (SW)
Patřičná verze 602SQL serveru. Ten lze nainstalovat z CD Kaskády, jeho instalační program se jmenuje 602SQL81.exe, použije se přitom volba Kompletní instalace.
Pozn. Na stejném počítači je také soubor wb8.fil, což je vlastní databázový soubor, obsahující veškerá data.
Datové větve
V jedné databázi může být nainstalována jedna datová větev, což je nejobvyklejší stav, může jich však být také více. Bližší popis je v samostatné kapitole Datová větev.
Jak by měl vypadat databázový server
1. Vyhrazený server
Je zcela nezbytné mít server vyhrazený pouze pro poskytování databázových služeb. Na tomto serveru nebudeme zakládat žádné uživatelské účty – ponecháme zde pouze účty nezbytně nutné pro chod systému. Pokud databázový systém vyžaduje pro každého databázového uživatele i systémový účet, je nutné tomuto uživateli zakázat interaktivní login.
Provozování dalších služeb na stejném serveru zbytečně snižuje výkon, komplikuje správu a ohrožuje stabilitu a bezpečnost systému. V ideálním případě nám postačí syslog, ssh, ftp a případný klient pro vzdálené zálohování. Použití NFS se snažíme vyhnout, kromě obvyklých problémů totiž často znestabilňuje systém. Pokud potřebujeme odesílat maily, nakonfigurujeme si mailserver tak, aby nepřijímal žádnou příchozí poštu zvenčí. Zásadně neprovozujeme na stejném serveru file, mail či web-services.
2. Víceprocesorový SMP server
Další, často opomínanou, nutností je použití více procesorů. Databázový server je velmi náročná úloha vzhledem k využití CPU zdrojů. Větší počet CPU poskytuje lepší vyrovnanost výkonu v závislosti na počtu pracujících uživatelů a prodlužuje se tak morální životnost serveru na dobu 5 - 7 let. Pokud se rozhodnete pro čtyřprocesorový server, je to ideální řešení.
3. Použití značkového serverového hardware
Použití značkového serverového hardware lze jen doporučit. Tyto sestavy bývají pečlivě testovány jako celek. Ačkoliv se to nezdá, jsou mezi jednotlivými výrobci poměrně velké rozdíly, a to jak v ceně, tak především ve spolehlivosti. Je nutné ještě před koupí zjistit, jaké jsou s danou sestavou (nebo alespoň produktovou řadou) zkušenosti. Osobní zkušenosti jsou sice nejlepší, ale i prohledávání archivů mailing listů poskytne dostatek referencí. To platí nejen o sestavě jako takové, ale také o použitých harddiscích.
4. Kompatibilita s operačním systémem
Přestože větší databázové systémy provozované pod OS Windows jsou spíše výjimkou, dodavatelé hardwaru to zatím moc nezaregistovali a většinou zaručují kompatibilitu pouze s OS Windows. Slovník: kompatibilita = nabootuje to. Zaručení kompatibility s OS Linux není tak časté. Pokud zaručena je, dostanete spolu se serverem obvykle CD-ROM s RedHatem. Zaručení kompatibility výrobcem není nezbytné – server budeme před uvedením do provozu testovat (viz další díl).
3. Volba procesoru: Intel, nebo AMD?
Řešení s procesory Intel je populárnější. Ve značkových serverech se prakticky s jinými procesory nesetkáte. Je to poměrně škoda, protože procesory Athlon MP poskytují vynikající výkon při použití v SMP systémech, kde jsou až o 30 (obvykle okolo 10) procent lepší. Docela hezká porovnání AMD a Intelu najdete na webu AMD.
4. Rychlost CPU
Obvykle se říká, že rychlost CPU není pro unixové servery rozhodující. To však neplatí u databázových serverů. Při běžném víceuživatelském provozu je tu přibližně lineární závislost mezi rychlostí CPU a celkovou propustností serveru. V každém případě však věnujte zvýšenou pozornost rychosti FSB a velikosti L2 (případně L3) cache a kupte procesor s nejlepšími možnými parametry.
5. Operační paměť
Použijeme co nejrychlejší paměť, kterou námi zvolený procesor a deska podporují. Pokud je možné používat paměť s ECC korekcí chyb, použijeme ji. Některé desky přistupují k paměti rychleji, pokud jsou instalovány dva shodné čipy. Rozhodnete-li se pro procesory Intel, počítejte s tím, že příliš mnoho (8GB/2CPU) paměti systém zpomalí. U procesorů AMD není zpomalení při větším množství RAM tak výrazné. Obvykle se u procesorů používá jako základní kombinace 1 GB RAM na procesor, přičemž za minimum se považuje 5 MB na jednoho databázového uživatele. Pokud budeme potřebovat více paměti než 4 GB, poohlédneme se v dnešní době raději po některém z dostupných 64bitových systémů. Optimalizace správné velikosti RAM závisí na předpokládané velikosti nejčastěji zpracovávaných dat (více v sekci optimalizace).
6. Disky: Systém
Jako systémový disk je nejlepší použít klasický IDE disk. K jeho největším pozitivům patří dostupnost i při problémech se SCSI řadičem. Kapacita a rychlost v tomto případě nehrají žádnou roli. Celý OS Linux se pohodlně vejde do dvou GB a systémové soubory se budou načítat z disku jen při startování systému. V serverech se obvykle používá kapacita okolo 30 GB.
7. Disky: Databáze
Pro provozování víceuživatelské databáze je zcela nezbytný SCSI-3 disk. V současné době jsou dostupné ve verzích s přenosovou rychlostí 180 nebo 360 MB. Testy neprokázaly žádné zlepšení výkonu při použití rychlejší verze rozhraní. Výkon naopak značně ovlivňuje rychlost disku (RPM), koupíme tedy co nejrychlejší. Naopak není nutné kupovat do rezervy větší kapacitu než potřebujeme: objem zpracovávaných dat se v čase moc nemění (stará data archivujeme), ceny disků rychle klesají a !disky každé dva roky vyměňujeme!
8. Disky: Databáze : RAID
Obvykle však používáme více než jeden databázový disk. S více disky se nám nabízí možnost vytvoření RAID pole. RAID disk pole je možné nakonfigurovat do verzí 0, 1 a 5. Zásadně upřednostňujeme HW raid před softwarovým.
RAID 1 (mirror): Obvykle se moc nepoužívá: čtení je sice 2× rychlejší, ale zápis je dvojnásobně pomalejší. Některé inteligentnější HW RAID řadiče jsou dvoukanálové, a tak umí zapisovat paralelně, čímž eliminují tento problém a nedochází u nich k výraznému snížení rychlosti zápisu.
RAID 5: Na RAID-5 jsou potřeba minimálně tři disky, získáme tím vyšší výkon při čtení, ale ztrácíme zde při zápisu. Není sice nutné zapisovat dvojnásobek dat jako u RAID 1, ale řadiče neumí v tomto režimu paralelní vícekanálový zápis. Pro použití na fileserveru je RAID5 nejoblíbenější volba, ne však pro databázový server, protože fileserver narozdíl od databázového serveru většinou provádí sekvenční zápis.
Vsuvka: jednou z operací, které databázový server nejvíce zdržují, je update indexů nad velkými tabulkami. Pokud updatujeme záznam ve velké tabulce, tak ke každému záznamu je nutno aktualizovat několik stránek v indexu, které navíc neleží na disku vedle sebe. Jedna databázová stránka má řádově 8 – 32kB (nejčastěji však 8).
Pokud na RAID5 zapisujeme menší blok, než je strip-size (obvykle 128K, pro provoz databáze je lepší 64K), je nutné načíst z disku celý strip-size blok, abychom mohli přepočítat jeho paritu, a následně blok + paritu zapsat. Tato operace značně zdržuje při náhodném zápisu. Databáze provádějí naprostou většinu zápisových operací náhodně. Sekvenční zápis je prováděn jen při vytváření redo logu, při práci s dočasnými soubory, a pokud nemáme moc fragmentovanou databázi, tak i u většiny datových bloků.
RAID-0 (striping): Velmi vhodný pro provoz databází, optimální je použití tří disků. Zrychluje čtení i zápis. Technicky vzato, není to RAID, protože nás nechrání před havárií disku. Pokud zhavaruje jakýkoliv disk ze série, jsou data zničena. Proto se nedoporučuje dělat RAID-0 přes více než tři disky, což poskytuje vhodný poměr výkonu ku bezpečnosti.
RAID-0+1: Novější RAID řadiče umožnují ještě režim 0+1. Jedná se o se zdvojené RAID-0 pole. Nejčastěji se používá, pokud potřebujeme RAID-0 pole o velikosti větší, než je velikost jednoho disku.
9. Zálohování: DAT
Pokud nepoužíváme některý ze síťových zálohovacích systémů, je nutné vybavit server páskovou mechanikou pro zálohování. Nejpoužívanější jsou tzv. DAT mechaniky označované DDS-číslo verze. Čím novější verze, tím jsou mechaniky rychlejší, umí zazálohovat více dat a kupodivu jsou i spolehlivější. Tyto mechaniky umí hardwarovou kompresi dat. Ůčinnost této komprese pro běžné soubory mírně překračuje výrobcem inzerovaný poměr 2:1. Pásky je nutné zhruba po roce obměňovat a mechaniku pravidelně čistit.
10. Zálohování: DVD
Jako zálohovací médium lze využít, v poslední době oblíbený, DVD-R* disk. Jeho největší nevýhodou je však nízká kapacita, a proto se pro servery nedoporučuje. Výhodou je cena.
Radim Kolář