Dnes: 17. prosince 2017    | Registrace | Hledáme | Redakce | Info | Testy | Školení | Ocenění | Nápověda | Čtenář: nepřihlášen

Rychlé odkazy
  • Hlavní stránka
  • Seznam rubrik
  • Ankety
  • Editoriály
  • TOP 15
  • KONFERENCE 2008
  • KONFERENCE 2007
  • KONFERENCE 2006
  • KONFERENCE 2005
  • KONFERENCE 2004
  • Sborník
  • Testy
  • Virtuální školení
  • Personalizace


  • Hledáte práci?
    Hledáme redaktora - pojďte s námi tvořit Databázový svět!

    Vyhledávání

    Hledej
    na Databázovém světě!



    Rozšířené vyhledávání

    Rubriky
    Aktuality
    Bezpečnost
    Business
    Česká scéna
    Datové sklady
    Dokumentace
    Dotazovací jazyky
    Hardware
    Historie
    Komentáře
    Literatura
    Metodologie
    Nondb
    Open Source
    Poradna
    Produkty
    Případové studie
    Redakce
    Rozhovory
    Standardy
    Technologie
    Tipy - triky
    Tiskové zprávy
    Vývoj
    Vývojové nástroje
    Zajímavosti

    Co je to?
    Datový sklad
    Tento pojem poprvé formuloval koncem 80. let William Inmon jako strategii přístupu k datům určeným pro rozsáhlé analýzy. V případě datového skladu hovoříme o historických, časově rozlišených, agregovaných, průběžně rozšiřovaných datech uspořádaných pro podporu potřeb managementu.

    Akce
    Dynamická Datová Centra
    - na semináři se seznámíte s komplexním řešením a koncepcí Dynamických Datových Center od Fujitsu Siemens Computers se speciálním důrazem na řešení FlexFrame.

    Textová inzerce
    IBPhoenix - Vše o InterBase a Firebirdu.

    Smějete se rádi? - Pak je pro vás Vtipník to pravé!

    Prodejce reklamy - Hledáme schopného prodejce reklamního prostoru, možnost i externí spolupráce.

    Přihlášený čtenář
    Nepřihlášený čtenář

    O portálu
    Databázový svět
    ISSN: 1213-5933

    Web je optimalizován pro rozlišení 1024x768, nicméně kromě větších rozlišení podporujeme i 800x600. Podrobnosti najdete zde.

    Chcete-li mít kdykoliv možnost zkontrolovat obsah našeho portálu, můžete využít podporu rss. Podrobnosti najdete zde.
    Tipy a triky pro Oracle VII. – jak na přenosy velkých dat poprvé


    [Tipy - triky] - V sedmém pokračování seriálu věnovaného praktickým tipům a trikům pro databázovou platformu Oracle Database se po přestávce zaměříme na problematiku přenosu velkých objemů dat pomocí Oracle Data Pump. Cílem seriálu je přinášet vám nejen praktické informace, které vám mohou pomoci při správě či vývoji na této platformě, ale také upozorňovat na zajímavé funkce. O kterých možná ani nevíte, že existují. Jako bonus vás dnes navíc čekají dvě "polo-živé" praktické ukázky.



    Data přibývají, databáze rostou a současně jsou kladeny čím dál větší požadavky na zkrácení doby přenosu dat mezi systémy. V dnešní části si ukážeme, jak přenášet velké objemy dat pomocí Oracle Data Pump.

    Podle průzkumů společnosti Winter Corporation se v roce 1998 velikosti největších datových skladů pohybovaly v jednotkách terabajtů (1 – 2 TB), v roce 2003 v desítkách TB (10 – 30 TB) a v roce 2005 až ve stovkách TB (30 – 100 TB).

    Pro účely přenosu velkých objemů dat nabízí databáze Oracle několik možností. My si ukážeme dvě, které jsou představeny ve verzi Oracle Database 10g, a to Oracle Data Pump a v příštím díle i Oracle Transportable Tablespaces Cross Platform.

    Oracle Data Pump
    Oracle Data Pump je nová generace předešlých utilit Oracle Export (exp) a Import (imp). K extrakci dat z databáze využívá proprietární API (DBMS_DATAPUMP), které obchází SQL buffer, a tím se stává extrémně rychlým

    . Oracle Data Pump byl vytvořen speciálně pro přenos velkých objemů dat, tedy pro situace, kde původní exp a imp zrovna nevynikal. I z tohoto důvodu například Data Pump nevytváří exportované soubory na klientu, ale v souborovém systému na serveru.

    Samotná operace exportu a importu dat je spouštěna na pozadí jako databázová úloha (job) a je průběžně zaznamenávána do databázové tabulky (tzv. Master table). Tato funkcionalita umožňuje databázovému administrátorovi snadno monitorovat a řídit celý proces přesunu dat – úloha může být kdykoli restartována, zastavena a opět spuštěna.

    V případě vzniku databázové chyby (nejčastěji při problému s místem v tabulkovém prostoru), která má za následek ukončení operace, může administrátor vzniklou chybu opravit a spustit úlohu, která začne přesně tam, kde předtím skončila. Toto je obrovská výhoda v případě, že pracujete s velkým objemem dat. Představte si, že spustíte úlohu, která běží 5 hodin a těsně před koncem vám dojde místo v databázi.

    Pro zvýšení výkonu operací je možné využít paralelismu a definovat jeho stupeň, a to dokonce i v případě, že úloha je již rozběhlá. Volání PL/SQL API (DBMS_DATAPUMP) může být přímo zařazeno do vašeho ETL procesu nebo třeba webové aplikace.

    Další nespornou výhodou Oracle Data Pump je možnost extrahovat data nebo pouze metadata (tj. skript s příkazy pro založení databázových objektů). Oracle Data Pump umožňuje také detailně specifikovat, jaké objekty chcete exportovat či importovat – ať již výčtem typů databázových objektů, jako jsou například programové balíčky, procedury, funkce, pohledy, indexy nebo tabulky z určitých tabulkových prostorů atd., případně jejich jménem.

    Proces přenosu dat je následující (ukázka přenosu dat z vybraných tabulkových prostorů (tablespace) TBS1 a TBS2):

    1. Ve zdrojové databázi je třeba vytvořit databázový objekt DIRECTORY pro uložení vyexportovaných dat. Důvodem je skutečnost, že Data Pump ukládá data na serveru, nikoliv na klientovi.

      CREATE DIRECTORY dump_dir AS '/u01/dumps';
      GRANT READ,WRITE on DIRECTORY dump_dir to <uživatel>;
      

      Pro vytvoření objektu DIRECTORY musíte mít právo CREATE ANY DIRECTORY. Příkazem GRANT pak zajistíte, že uživatel, pod kterým budete export provádět, bude moci přes databázový server zapisovat do daného adresáře.

    2. Nyní můžete vyexportovat data pomocí utility Oracle Data Pump Export:

      LINUXSHELL> expdp <uživatel/heslo> 
        TABLESPACES=\(TBS1,TBS2\) 
        DUMPFILE=tbs1_tbs2.dmp 
        DIRECTORY=dump_dir
      

      Tento krok vytvoří soubor /u01/dumps/tbs1_tbs2.dmp, který obsahuje veškeré datové objekty z tablespace TBS1 a TBS2.

      Místo parametru TABLESPACES můžete exportované objekty specifikovat i jinak, například:

      • TABLES=HR.EMPLOYEES – export jedné tabulky
      • TABLES=\(HR.EMPLOYEES,HR.DEPARTMENTS\) – export vyjmenovaných tabulek
      • QUERY=HR.EMPLOYEES:'"WHERE department_id = 10 AND salary = 10000"' – export pouze vybraných záznamů z tabulky

      Obrácená lomítka v parametrech jsou nutná proto, aby operační systém následující znak nevyhodnocoval, ale předal aplikaci expdp. Jejich použití je závislé na operačním systému.

    3. Překopírujte vytvořený soubor tbs1_tbs2.dmp na cílový server libovolným prostředkem operačního systému (ftp, scp, rcp, cp, atd.), například do adresáře /u01/dumps.

    4. V cílové databázi opět potřebujete databázový objekt DIRECTORY pro načtení exportu dat:

      CREATE DIRECTORY dump_dir AS '/u01/dumps';
      GRANT READ on DIRECTORY dump_dir to <uživatel>;
      

    5. Nakonec zbývá jen provést import obsahu souboru do cílové databáze pomocí utility Oracle Data Pump Import:

      LINUXSHELL> impdp <uživatel/heslo>
        DIRECTORY=dump_dir 
        DUMPFILE=tbs1_tbs2.dmp
      

    V případě, že množství dat v tabulkových prostorech je relativně malé, případně nejste omezeni nízkou rychlostí sítě, je možné vykonat všechny předešlé kroky jedním příkazem:

    impdp <uživatel/heslo>
      NETWORK_LINK='srcdb' 
      TABLESPACES=\(TBS1,TBS2\)
    

    Tento příkaz importuje data ze zdrojové databáze do cílové přes databázový link s názvem srcdb.

    Na závěr je třeba upozornit, že Oracle Data Pump používá jiný formát exportních souborů, než předešlá generace nástrojů – exp a imp. Proto je třeba data vyexportovaná pomocí Data Pump importovat opět Data Pumpem.

    Naopak data exportovaná Exportem(exp) je třeba importovat Importem(imp). Z toho také vyplývá, že pokud chcete přenášet data mezi Oracle Database 10g a staršími verzemi databázového serveru, musíte vždy použít exp/imp. Z těchto důvodů obsahuje verze 10g obě verze nástrojů pro export i import.

    Pokud místo příkazové řádky preferujete spíše grafické rozhraní, podívejte se na ukázky exportu a importu dat pomocí Oracle Data Pump přímo z prostředí Oracle Enteprise Manageru 10g.

    Ve druhé části se příště zaměříme na přenos dat pomocí transportu celých tabulkových prostorů (Oracle Transportable Tablespaces).

    Více se o Oracle Data Pump dozvíte v manuálu Oracle Database Utilities.

    Dnešní ukázky si můžete vyzkoušet na libovolné edici Oracle Database, včetně volně dostupné Express Edition. V případě potřeby si Oracle Database můžete stáhnout na webu společnosti Oracle.

    O autorovi
    Erik Eckhardt (*1976) od roku 2004 pracuje ve společnosti Oracle Czech na pozici BI/DW Sales Consultant. Zde se specializuje na podporu prodeje řešení pro podporu rozhodování (tj. datové sklady, reporting a analýzy). Před působením v Oracle pracoval 2,5 roku ve společnosti Tesco Stores jako databázový architekt a administrátor. Předtím více než 2 roky ve společnosti Unicorn na pozicích vývojář a softwarový architekt. Po celou dobu se především specializoval na databázové systémy, a to jak z pohledu vývoje, správy, tak i návrhu architektury. Je Oracle 8i a 9i Certified Professional Database Administrator.

    Související články:
    Tipy a triky pro Oracle XVI. – rychlejší aplikace i bez změn dotazů podruhé (03.02.2009)
    Tipy a triky pro Oracle XV. – rychlejší aplikace i bez změn dotazů poprvé (21.11.2008)
    Tipy a triky pro Oracle XIV. – datová komprese (21.10.2008)
    Tipy a triky pro Oracle XIII. – externí data rychle (17.09.2008)
    Tipy a triky pro Oracle XII. – Jak na řízení přístupu na úrovni záznamů? (15.04.2008)
    Tipy a triky pro Oracle XI. – Error Logging Tables (12.11.2007)
    Tipy a triky pro Oracle X. – bojujete s češtinou v Oracle podruhé? (14.05.2007)
    Tipy a triky pro Oracle IX. – bojujete s češtinou v Oracle? (06.02.2007)
    Tipy a triky pro Oracle VIII. – jak na přenosy velkých dat podruhé (03.01.2007)
    Tipy a triky pro Oracle VI. – trochu jiné triggery (25.09.2006)
    Tipy a triky pro Oracle V. – změna dat v pohledu? (06.09.2006)
    Tipy a triky pro Oracle IV. – analytické funkce podruhé (14.08.2006)
    Tipy a triky pro Oracle III. – analytické funkce poprvé (19.07.2006)
    Tipy a triky pro Oracle II. – jak na hierarchické struktury? (07.06.2006)
    Tipy a triky pro Oracle I. – jak na automatické přidělování ID? (05.05.2006)

    ( Celý článek! | Autor: Erik Eckhardt | Počet komentářů: 0 | Přidat komentář | Informační e-mailVytisknout článek )

    Vyhledávání
     

    Anketa
    Kolik ročně utratíte za dovolené?

    Nic 
     (1507 hl.)
    Do 1 000,- Kč 
     (1044 hl.)
    Do 10 000,- Kč 
     (978 hl.)
    Do 25 000,- Kč 
     (1347 hl.)
    Do 50 000,- Kč 
     (994 hl.)
    Do 75 000,- Kč 
     (1151 hl.)
    Více než 75 000,- Kč 
     (993 hl.)

    Celkem hlasovalo: 8014


    Poslední komentáře
    frontierd@126.com
    frontierd@126.com
    frontierd@126.com
    c
    http://www.coachoutl

    Newsletter
    Přihlaste si nezávazně - i bez registrace - odběr informačního newsletteru. Podrobné informace najdete zde.

    Emailová adresa:


    Kalendář
    <<  Prosinec  >>
    PoÚtStČtSoNe
        123
    45678910
    11121314151617
    18192021222324
    25262728293031

    Redakci připojuje


    Nejčtenější

    Databáze je prázdná!


    Nejvíce komentářů

    Databáze je prázdná!


    Reklama






    Nenechte si ujít články na dalších webech




    Na této stránce použité názvy programových produktů, firem apod. mohou být ochrannými známkami
    nebo registrovanými ochrannými známkami příslušných vlastníků.

    Databázový svět | dfKlub - digitální fotografie | Vtipník - vtipy přímo k Vám | Reminder - přestaňte zapomínat | Databázový svět

    Copyright (c) 2004 AVRE Publishing, spol. s r.o. Všechna práva vyhrazena