Dnes: 19. září 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?
    Replikace
    Replikace slouží pro zajištění konzistentnosti dvou a více databází, nejčastěji pak o stejné struktuře v rámci distribuovaného zpracování. Vyspělé SŘBD replikace podporují, případně lze použít řešení třetích stran či replikační logiku zajistit vlastními postupy.

    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 VIII. – jak na přenosy velkých dat podruhé


    [Tipy - triky] - V osmém pokračování seriálu věnovaného praktickým tipům a trikům pro databázovou platformu Oracle Database se opět zaměříme na problematiku přenosu velkých objemů dat, konkrétně se budeme věnovat vlastnosti Oracle Transportable Tablespaces, která umožňuje přenášet data na úrovni celých datových souborů – dokonce mezi různými platformami a operačními systémy. Jako bonus vás navíc i dnes čekají dvě "polo-živé" praktické ukázky.



    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í.

    Celý proces je založen na těchto čtyřech základních krocích:

    1. Identifikace a příprava tablespace (tabulkových prostorů)
    2. Překopírování datových souborů
    3. V případě nutnosti, konverze datových souborů do správného endian formátu
    4. Přenos metadat

    Transportable Tablespaces
    Nejrychlejší cestou jak přenést velký objem dat mezi dvěma databázemi Oracle je přenos celých tabulkových prostorů, tedy datových souborů patřících do příslušného tablespace. Oproti přenosu pomocí Oracle Data Pump Export a Data Pump Import se v tomto případě obchází zpracování databázovým serverem, čímž se minimalizuje zátěž serveru a celý proces významně urychluje. Daní za to je nutnost přenášet celé prostory (ne pouze jednotlivé tabulky) a potřeba dočasně přepnout tabulkový prostor do READ-ONLY režimu.

    Přenos datových souborů se provádí nástroji operačního systému (ftp, scp, cp, rcp, atd.). Doba trvání této operace je závislá na použitém HW a rychlosti sítě. Ale pouhé kopírování datových souborů nestačí. Předtím než data mohou být zpřístupněna koncovým uživatelům, je třeba předat cílové databázi informace o existenci nových datových souborů a jejich obsahu. To zajistíte dodatečným přenosem metadat (tedy informacemi z data dictionary databáze).

    Před použitím této metody je nutné udělat kontrolu, zda sada transportovaných prostorů je soběstačná (self-contained). To znamená, že přenášená sada prostorů obsahuje vedle samotných tabulek i všechny ostatní segmenty s tabulkami souvisejícími, jako například indexy, všechny oddíly atd.

    Příklad: Přenášíte prostor TBS1 a TBS2 (jedna transportní sada). Tabulka T1 je umístěná v TSB1 a její index je v TBS2. Tato transportní sada je soběstačná. Jestliže je druhý index umístěn v TBS3, pak transportní sada TBS1 a TBS2 není soběstačná.

    K přenosu metadat je možné využít Oracle Data Pump nebo utility Oracle Export a Import.

    Proces přenosu dat je následující (ukázka přenosu dat z tablespaců TBS1 a TBS2):

    1. Kontrola zda přenášené tablespace jsou soběstačné:

      EXECUTE SYS.DBMS_TTS.TRANSPORT_SET_CHECK ('TBS1','TBS2');
      SELECT * FROM TRANSPORT_SET_VIOLATIONS;
      

      No rows selected znamená, že sada je soběstačná.

    2. Ujistit se, zda přenášené tablespace jsou v režimu READ-ONLY:

      SELECT STATUS
        FROM DBA_TABLESPACES
        WHERE TABLESPACE_NAME IN ('TBS1','TBS2');
      
      STATUS
      ---------
      READ ONLY
      READ ONLY
      

    3. V případě, že tablespaces nejsou v režimu READ ONLY:

      ALTER TABLESPACE TBS1 READ ONLY;
      ALTER TABLESPACE TBS2 READ ONLY;
      

    4. Překopírovat všechny databázové soubory přenášených tablespaces ze zdrojové databáze do cílové pomocí utilit operačního systému (ftp, scp, rcp, cp, atd.), např. do adresáře /u01/oradata. Tento krok je časově nejnáročnější.

    5. V cílové databázi vytvořit databázový link ukazující na zdrojovou databázi:

      CREATE DATABASE LINK srcdb USING 'srcdb';
      

      Pro tento krok je třeba v TNSNAMES.ORA na cílovém serveru definovat připojovací řetězec srcdb, který umožní připojení do zdrojové databáze.

    6. Do cílové databáze je třeba naimportovat metadata o přenášených tablespacech:

      LINUXSHELL> impdp <user/password>
      TRANSPORT_DATAFILES= 
      "'/u01/oradata/tbs1_1.dbf','/u01/oradata/tbs2_1.dbf'"
      NETWORK_LINK='srcdb'
      TRANSPORT_TABLESPACES=\(TBS1,TBS2\)
      NOLOGFILE=Y
      

      Tento krok zpřístupní tablespace TBS1, TBS2 a data, které obsahují v cílové databázi.

    7. Nakonec můžeme vrátit oba dva tablespace ve zdrojové databázi do stavu READ-WRITE a tak je opět zpřístupnit pro DML operace:

      ALTER TABLESPACE TBS1 READ WRITE;
      ALTER TABLESPACE TBS2 READ WRITE;
      

      Tímto je přenos dokončen.

    Co dělat ovšem v případě, kdy zdrojová a cílová databáze poběží na různých platformách nebo operačních systémech (např. HP Tru64 UNIX vs. Linux x86)? Je možné stále využít možnosti Transportable Tablespaces? Samozřejmě že ano. Platforma Oracle Database od verze 10g podporuje Transportable Tablespaces přes různé platformy (Cross Platform).

    Při přenosu mezi zdrojovou a cílovou platformou se musí vzít v úvahu jestli oba operační systémy používají stejné pořadí bytů (byte-order) známé jako "endianness" (little-endian a big-endian). V případě, že oba operační systémy mají stejné pořadí bajtů, je možné využít kroky 1 až 7 tak, jak jsou popsány výše. Když se ale pořadí liší, je nutné provést dodatečný krok, a to konverzi datových souborů pomocí utility Oracle Recovery Manager (RMAN).

    Přehled platforem a endian formátů:

    SELECT * 
      FROM V$TRANSPORTABLE_PLATFORM 
      ORDER BY PLATFORM_ID;
    
    PLATFORM_ID PLATFORM_NAME                       ENDIAN_FORMAT
    ----------- ----------------------------------  ---------------
              1 Solaris[tm] OE (32-bit)             Big
              2 Solaris[tm] OE (64-bit)             Big
              3 HP-UX (64-bit)                      Big
              4 HP-UX IA (64-bit)                   Big
              5 HP Tru64 UNIX                       Little
              6 AIX-Based Systems (64-bit)          Big
              7 Microsoft Windows IA (32-bit)       Little
              8 Microsoft Windows IA (64-bit)       Little
              9 IBM zSeries Based Linux             Big
             10 Linux IA (32-bit)                   Little
             11 Linux IA (64-bit)                   Little
             12 Microsoft Windows 64-bit for AMD    Little
             13 Linux 64-bit for AMD                Little
             15 HP Open VMS                         Little
             16 Apple Mac OS                        Big
             17 Solaris Operating System (x86)      Little
             18 IBM Power Based Linux               Big 
    

    Jestliže naše zdrojová databáze běží na SUN Solaris a cílová na Linux x86, musíme přistoupit k dodatečnému kroku. Ke konverzi formátu datových souborů pomocí RMAN. Kroky 1 až 7 jsou stejné, před nebo za krok 4 pouze vložíme jeden extra krok.

    Extra krok spuštěn na zdrojové platformě SUN Solaris s konverzí do Linux x86:

    RMAN> CONVERT TABLESPACE TBS1
      TO PLATFORM 'Linux IA (32-bit)'
      DB_FILE_NAME_CONVERT
      '/u01/oradata','/u01/tts'
      PARALLELISM=4;
    

    Tento příkaz vytvoří konvertované datové soubory tablespace TBS1 se stejným jménem jako jsou originální soubory tj. tbs1_1.dbf, ale v jiném adresáři /u01/tts. Konverze do specifického adresáře vám zjednoduší vyhledání souborů pro přenos.

    Druhou možností je spustit konverzi až na cílové platformě Linux x86 s konverzí ze systému SUN Solaris:

    RMAN> CONVERT DATAFILE
      '/u01/oradata/tbs1_1.dbf', '/u01/oradata/tbs2_1.dbf'
      TO PLATFORM='Linux IA (32-bit)'
      FROM PLATFORM='Solaris[tm] OE (64-bit)'
      DB_FILE_NAME_CONVERT="tbs","tbslinux";
    

    Tento příkaz vytvoří konvertované soubory pro platformu Linux x86 s novým názvem, kde tbs je nahrazeno tbslinux (původní soubor tbs1_1.dbf, nový soubor tbslinux1_1.dbf).

    Pokud místo příkazové řádky preferujete spíše grafické rozhraní, podívejte se na ukázky přenosu tabulkového prostoru v prostředí Oracle Enteprise Manageru 10g (na zdrojové databázi, na cílové databázi).

    Více se o Oracle TT dozvíte v manuálu Oracle Database Administrator's Guide nebo v manuálu Oracle Database Data Warehousing Guide.

    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 VII. – jak na přenosy velkých dat poprvé (21.11.2006)
    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ářů: 6 | Přidat komentář | Informační e-mailVytisknout článek )

    Vyhledávání
     

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

    Nic 
     (1446 hl.)
    Do 1 000,- Kč 
     (1005 hl.)
    Do 10 000,- Kč 
     (950 hl.)
    Do 25 000,- Kč 
     (1207 hl.)
    Do 50 000,- Kč 
     (957 hl.)
    Do 75 000,- Kč 
     (1108 hl.)
    Více než 75 000,- Kč 
     (948 hl.)

    Celkem hlasovalo: 7621


    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ář
    <<  Září  >>
    PoÚtStČtSoNe
        123
    45678910
    11121314151617
    18192021222324
    252627282930 

    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