<Insert Picture Here> Zajištění vysoké dostupnosti a zabezpečení dat, novinky Oracle Database 11g David Krch Technology Sales Consultant 1
Dva pohledy na databázi Vývoj Struktura dat SQL Uložené procedury Zabudované funkce Rozhraní ODBC, OLE DB, ADO.NET, JDBC, OCI,... Provoz Správa a monitorování databáze Výkon, jeho škálování a ladění Dostupnost a spolehlivost Bezpečnost Oracle - Světová databázová jednička Trh databází 22% 17% 12% Databáze pro SAP 9% 3% 17% 4% 67% 49% Oracle IBM Microsoft Other Oracle IBM Informix M/soft SAPDB Datové sklady Databáze na Linuxu 14% 9% 23% 32% Marketshare (%) 80% 60% 40% 20% 22% Oracle IBM M/soft Teradata Others 0% 2004 2005 2006 Oracle Others Zdroje: Gartner DataQuest June 2009, IDC Worldwide Data Warehouse Management Tools 2009, AMR 2005 2
Nezávislost + škálovatelnost Cluster GRID/ blade servers SMP Desktop Server 1 Uživatel Uniprocessor 32-bit 64-bit Linux Windows AIX Solaris SPARC HP-UX Solaris x86 MacOS Dostupnost 3
Dostupnost systému Dostupnost 95 % 99 % 99,9 % 99,99 % 99,999 % Celková doba výpadků a odstávek za rok 18,25 dne 87,6 hodin 8,75 hodin 52 minut 5 minut Dostupnost není jen záležitostí technologie (SW, HW), ale má i další dimenze např. vyškolení obsluhy, definovaný postup, testování, způsob nasazování aplikací a patchování... Situace řešené běžnými mechanismy databází Příkaz končí chybou Všechny příkazy probíhají v rámci implicitní transakce data se vrátí do stavu před příkazem Pád uživatelských procesů serveru Instance databáze sestává z více procesů Speciální proces - PMON - zajistí uklizení Pád instance (všech procesů na serveru) Při opětovném spuštění serveru proběhně automaticky instance recovery Chyba médií (uložení dat) Nutný zásah administrátora obnova ze zálohy 4
Řešení vysoké dostupnosti v Oracle Database Neplánovan nované výpadky Plánovan nované odstávky Selhání uzlu Selhání médií & Katastrofy Lidské chyby Systémov mová údržba Údržba databáze, aplikace Failover cluster, Real Application Clusters Kompletní řešení nulového výpadku služby by Zálohování, DataGuard Kompletní řešení nulové ztráty ty dat Flashback Návrat databáze do minulosti Dynamické rekonfigura onfigurace Požadovan adovaná kapacita bez výpadků při rekonfiguraci Rolling Upgrade, Online redefinice Údržba bez přerup erušení provozu Řešení vysoké dostupnosti v Oracle Database Neplánovan nované výpadky Plánovan nované odstávky Selhání uzlu Selhání médií & Katastrofy Lidské chyby Systémov mová údržba Údržba databáze, aplikace Failover cluster, Real Application Clusters Kompletní řešení nulového výpadku služby by Zálohování, DataGuard Kompletní řešení nulové ztráty ty dat Flashback Návrat databáze do minulosti Dynamické rekonfigura onfigurace Požadovan adovaná kapacita bez výpadků při rekonfiguraci Rolling Upgrade, Online redefinice Údržba bez přerup erušení provozu 5
Failover cluster Databáze Běžné řešení vysoké dostupnosti Přepnutí zajišťuje plně clusterware např. IBM HACMP, HP Service Guard, RedHat Cluster, MS Cluster Service Univerzální pro všechny aplikace Horší využití druhého serveru mrtvé železo Výpadek postihne všechny uživatele Výpadek 5-15 minut Nelze využít pro škálování výkonu Real Application Clusters Databáze Využití obou serverů Dynamické rozkládání zátěže Výpadek postihne jen část uživatelů Rychlé a transparentní přepojení Není nutné upravovat aplikaci 10g-Nevyžaduje cluster na úrovni OS Výpadek Oba servery serveru poskytují databáze služby, je žádné dále plně mrtvé dostupná železo 6
Oracle RAC u nás C.S.CARGO a.s. Centrum pro regionální rozvoj ČR ČD-Telematika a.s. Ministerstvo vnitra Úřad pro zastupování státu ve věcech majetkových Česká spořitelna, a.s. Československá obchodní banka, a.s. Český hydrometeorologický ústav Český rozhlas Český úřad zeměměřický a katastrální ČEZData E.ON Česká republika, a.s. GE Money Bank, a.s. GTS NOVERA a.s. Home Credit International a.s. ING Management Services, s.r.o. IZIP, spol. s r.o. Merck Sharp & Dohme Ministerstvo zemědělství ČR Panasonic Automotive Systems Czech, s.r.o Škoda AUTO a.s. T-Systems Czech, s r.o. Vítkovice Steel a.s. VZP ČR Řešení vysoké dostupnosti v Oracle Database Neplánovan nované výpadky Plánovan nované odstávky Selhání uzlu Selhání médií & Katastrofy Lidské chyby Systémov mová údržba Údržba databáze, aplikace Failover cluster, Real Application Clusters Kompletní řešení nulového výpadku služby by Zálohování, DataGuard Kompletní řešení nulové ztráty ty dat Flashback Návrat databáze do minulosti Dynamické rekonfigura onfigurace Požadovan adovaná kapacita bez výpadků při rekonfiguraci Rolling Upgrade, Online redefinice Údržba bez přerup erušení provozu 7
Ochrana dat pomocí záložního centra Jak využít záložní systémy když primární běží? Průběžné analýzy dat Testování Přenos transakčních logů Data Guard Provozní databáze Záložní databáze Změny Oracle Database postupně 11g: přenášejí na záložní lokalitu Dříve: Nové Ochrana možnosti dat využití vs. investice záložního do systému mrtvého systému Investice Vyšší návratnost do záložního vložených systému investic se špatně zdůvodňují Ochrana dat je stále zachována Řešení vysoké dostupnosti v Oracle Database Neplánovan nované výpadky Plánovan nované odstávky Selhání uzlu Selhání médií & Katastrofy Lidské chyby Systémov mová údržba Údržba databáze, aplikace Failover cluster, Real Application Clusters Kompletní řešení nulového výpadku služby by Zálohování, DataGuard Kompletní řešení nulové ztráty ty dat Flashback Návrat databáze do minulosti Dynamické rekonfigura onfigurace Požadovan adovaná kapacita bez výpadků při rekonfiguraci Rolling Upgrade, Online redefinice Údržba bez přerup erušení provozu 8
9i - Oracle Flashback Query Comparing results Read Delete Flashback 2:10 Insert back SCN1 SCN2 SCN1 SCN3 14:10 14:13 14:15 14:17 Možnost získat historickou podobu dat obnova dat po lidské chybě SELECT * FROM accounts AS OF TIMESTAMP TO_TIMESTAMP( 13-MAR-02 14:10:00, DD-MON-YY HH24:MI:SS ); Rozšíření Flashback mechanismů v 10g Customer Order Databáze Obnova na všech úrovních Flashback Database Flashback Database obnoví celou databázi k zadanému času Používá Flashback Logs Flashback Table Flashback Table obnoví záznamy v tabulce k zadanému času Používá UNDO Flashback Drop obnoví zrušenou tabulku /index Odpadkový koš pro DROP Flashback Query Obnova jednotlivých záznamů 9
Oracle Flashback Rychlá obnova dat Bez použití klasické zálohy Při ztrátě/poškození způsobeném lidskou chybou (cca 40%-50% případů) Doba obnovy není závislá na velikosti databáze, ale na velikosti opravované chyby Řádově rychlejší než obnova ze zálohy Existence Flashback mechanismů neznamená,! že máte přestat zálohovat! Flashback neřeší poškození médií atd. Zabezpečení dat 10
Databáze poslední hradba mezi útočníkem a vašimi daty Zabezpečení dat i v případě, že útočník obejde aplikaci Deklarativní řízení přístupu průhlednost, možnost kontroly přes Data Dictionary Pokud více aplikací nad stejnými daty, zabezpečení lze řešit centrálně Certifikované mechanismy (Common Criteria / ISO 15408) Aplikace Aplikace Aplikace Data Data Běžné řízení přístupu k datům Org A Org B DATABÁZOVÁ TABULKA 11
Řízení přístupu na úrovni řádků Oddělení dat ve stejných tabulkách Org A Org B Org D Org C DATABÁZOVÁ TABULKA Lze zajistit bezpečnou správu dat i v konsolidovaném prostředí Data různých oddělení ve stejné databázi Data různých organizací ve stejné databázi Jak funguje Virtual Private Database? Přístup k objektu spustí připojenou bezpečnostní politiku (uložená procedura) Politika vrací predikát dotazu (podmínku WHERE ) Databáze dynamicky doplní predikát k dotazu Nový dotaz je optimalizován a spuštěn SELECT * FROM FROM emp emp SELECT * FROM FROM emp emp WHERE deptno deptno = (( SELECT deptno deptnofrom emp emp WHERE ename ename = sys_context('userenv','session_user')) bezpečnostní bezpečnostní politika politika deptno deptno = ( ( SELECT SELECT deptno deptno FROM FROM emp emp WHERE WHERE ename ename = sys_context sys_context ('USERENV','session_user')) ('USERENV','session_user')) 12
Odpovídá IT realitě v organizaci? Organizace Databázový administrátor Zodpovědnost za provoz databáze Chief Security Officer Pravidla zabezpečení dat kdo, kdy, odkud může co provádět, další požadavky na IS Kontrola splnění definovaných pravidel Databáze Databázový administrátor Minimálně jeden má vždy plná zodpovědnost za zabezpečení i provoz databáze Jen statické přidělování práv kdo může co provádět Nástroje pro správu Oracle Database Vault FIN HR Jiné Bezpečnostní správce Účetnictví Sklady Person. Mzdy OLTP DWH Hlavní DBA Administrátor Administrátor Administrátor Cíl Rozdělení zodpovědnosti Zavedení principu 4 očí Přesnější definice aplikačních DBA Bezpečnostní správce určuje pravidla pro každodenní operace db. správců Pravidla na základě kombinace různých faktorů Kdo, kdy, odkud,... Specificky pro různé skupiny objektů Specificky pro různé příkazy Přesnější rozdělení funkcí jednotlivých databázových administrátorů 13
Oracle Database Vault Nové mechanismy řízení přístupu Oblasti (Realm) sada chráněných db. objektů, schémat a rolí Explicitně vyjmenovaní uživatelé autorizovaní pro práci s objekty Další pravidla pro řízení přístupu na základě různých faktorů např. IP adresa klienta, datum, typ autentifikace, jméno uživatele/proxy uživatele, jméno klientského programu, libovolné PL/SQL Příkazová pravidla dále omezující spuštění jednotlivých databázových příkazů definuje Database Vault Běžné řízení přístup Data a operace definuje DBA Bezpečnostní správce Novinky 11g 14
Online Application Upgrade (11.2) Již žádná odstávka kvůli upgrade aplikace Žádná odstávka = minimalizace nákladů na upgrade V databázi lze připravit objekty pro novou verzi aplikace Obě verze mohou být dočasně provozovány současně Obě verze sdílí data Změny ze staré jsou vidět v nové Změny v nové se jsou vidět ve staré Nově se připojující uživatelé postupně začnou používat novou verzi aplikace Edice Aplikace Verze 1 PL/SQL... Verze 1 Struktury Verze 1 Data Aplikace Verze 2 PL/SQL... Verze 2 Struktury Verze 2 Edice Určení počtu záznamů u nekorelovaných dat SELECT FROM.. WHERE model = AND color = 'RED' RED Optimalizátor předpokládá nekorelovaná data Statistiky: 1/2 aut jsou 1/3 aut je červených = 1/2 x 1/3 = 1/6 aut splňuje obojí Make PORSCHE MERC MERC Model 911 SLK C320 --------------------------------------------------------------------- Id Operation Name Starts E-Rows A-Rows --------------------------------------------------------------------- * 1 INDEX RANGE SCAN C_MC 1 1 1 --------------------------------------------------------------------- Color RED BLACK SILVER RED BLACK SLIVER 15
Určení počtu záznamů u korelovaných dat bez rozšířených statistik SELECT FROM.. WHERE model = AND make = ; RED BLACK SILVER Optimalizátor předpokládá nekorelovaná data Statistiky: 1/2 aut jsou 1/2 aut je = 1/2 x 1/2 = 1/4 aut splňuje obojí Make PORSCHE MERC MERC Model 911 SLK C320 --------------------------------------------------------------------- Id Operation Name Starts E-Rows A-Rows --------------------------------------------------------------------- * 1 INDEX RANGE SCAN C_MC 1 1 3 --------------------------------------------------------------------- Color RED BLACK SILVER RED BLACK SLIVER Určení počtu záznamů u korelovaných dat s multi-column statistikami SELECT FROM.. WHERE model = AND make = ; RED BLACK SILVER Optimalizátor najde statistiky za (make, model) a z nich počítá Statistiky: 1/2 11gR1 jen pro podmínky na shodu (=) Make PORSCHE MERC MERC Model 911 SLK C320 --------------------------------------------------------------------- Id Operation Name Starts E-Rows A-Rows --------------------------------------------------------------------- * 1 TABLE ACCESS FULL CARS 1 3 3 --------------------------------------------------------------------- Color RED BLACK SILVER RED BLACK SLIVER 16
Častý problém velkých datových skladů Propustnost dat do/z úložiště Současné datové sklady mají často nedostatečnou kapacitu propojení mezi disky a servery Vnitřní úzká hrdla diskových polí (procesory a Fibre Channel) Malé množství Fibre Channel adapterů v serverech Nedostatečně nakonfigurovaná a komplexní Storage Area Network Linky mezi disky a servery často až 10x pomalejší, než by objem dat vyžadoval Zpracování dotazu nad 1TB tabulkou Při použití běžného úložiště ❶ SELECT customer_name FROM calls WHERE amount > 200; ❷ Žádost o bloky tabulky ❸ Načtení dat ❻ Získání výsledku ❺ Výběr 1000 zákazníků odpovídajících podmínce ❹ Poslání 1 TB dat na server Pro datové sklady je typický Full Table Scan a Full Index Scan. Veškerá inteligence až v databázovém serveru Veškerá data se musí přenést na server, kde se jich ale většina zahodí Zbytečná zátěž pro SAN i databázový server 17
Zpracování dotazu nad 1TB tabulkou Při použití Exadata Storage Server ❶ SELECT customer_name FROM calls WHERE amount > 200; ❷ Žádost o Smart Scan zaslána do Exadata ❻ Získání výsledku ❺ Konsolidace result setu z jednotlivých úložišť Na server putují jen relevantní sloupce customer_name a řádky where amount>200 Přenos řádově menšího objemu dat Zátěž CPU spotřebovaná filtrováním odsunuta ze serveru na storage ❸ Smart Scan načte data a vybere řádky a sloupce dle definované podmínky ❹ 2MB dat zaslány na server jako result set Sun Oracle Exadata Storage Server Hybridní sloupcová komprese Data organizována na úložišti po sloupcích a pak komprimována Vhodné pro hromadné natahování a přesuny dat Query mode pro datové sklady Typický kompresní poměr 10:1 Adekvátní zrychlení table scanu Archival mode pro neaktivní data Typický kompresní poměr 15:1-50:1 Až 50X 18
Dva pohledy na databázi Vývoj Struktura dat SQL Uložené procedury Zabudované funkce Rozhraní ODBC, OLE DB, ADO.NET, JDBC, OCI,... Provoz Správa a monitorování databáze Výkon, jeho škálování a ladění Dostupnost a spolehlivost Bezpečnost 19