péntek márc. 23, 2012

Tömörítés becslése - Compression Advisor

Az Oracle Database 11g verziójától már OLTP adatbázisok is hatékonyan tömöríthetők az Advanced Compression funkcióval. Nem csak a tárolandó adatok mennyisége csökken ezáltal felére, vagy akár negyedére, de az adatbázis teljesítménye is javulhat, amennyiben I/O korlátos a rendszer (és általában az). Hogy pontosan mekkora tömörítés várható az Advanced Compression bevezetésével, az kiválóan becsülhető a Compression Advisor eszközzel. Ez nem csak az OLTP tömörítés mértékét, de 11gR2 verziótól kezdve a HCC tömörítés arányát is becsülni tudja, amely Exadata Database Machine, Pillar Axiom illetve ZFS Storage alkalmazásával érhető el. A HCC tömörítés becsléséhez csak 11gR2 adatbázisra van szükség, nem kell hozzá a speciális célhardver (Exadata, Pillar, ZFS).

Hogyan működik az Oracle Advanced Compression

A Compression Advisor valójában a DBMS_COMPRESSION package használatával érhető el. A package-hez tartozik 6 konstans, amellyel a kívánt tömörítési szintek választhatók ki:

Constant Type Value Description

COMP_NOCOMPRESS

NUMBER

1

No compression

COMP_FOR_OLTP

NUMBER

2

OLTP compression

COMP_FOR_QUERY_HIGH

NUMBER

4

High compression level for query operations

COMP_FOR_QUERY_LOW

NUMBER

8

Low compression level for query operations

COMP_FOR_ARCHIVE_HIGH

NUMBER

16

High compression level for archive operations

COMP_FOR_ARCHIVE_LOW

NUMBER

32

Low compression level for archive operations

A GET_COMPRESSION_RATIO tárolt eljárás elemzi a tömöríteni kívánt táblát. Mindig csak egy táblát, vagy opcionálisan annak egy partícióját tudja elemezni úgy, hogy a tábláról készít egy másolatot egy külön erre a célra kijelölt/létrehozott táblatérre. Amennyiben az elemzést egyszerre több tömörítési szintre futtatjuk, úgy a tábláról annyi másolatot készít. A jó közelítésű becslés (+-5%) feltétele, hogy táblánként/partíciónként minimum 1 millió sor legyen.

11gR1 esetében még a DBMS_COMP_ADVISOR csomag GET_RATIO eljárása volt használatos, de ez még nem támogatta a HCC becslést.

Érdemes még megnézni és kipróbálni a Tyler Muth blogjában publikált formázó eszközt, amivel a compression advisor kimenete alakítható jól értelmezhető formátumúvá.

Végül összegezném mit is tartalmaz az Advanced Compression opció, mivel gyakran nem világos a felhasználóknak miért kell fizetni:

  • Data Guard Network Compression

  • Data Pump Compression (COMPRESSION=METADATA_ONLY does not require the Advanced Compression option)

  • Multiple RMAN Compression Levels (RMAN DEFAULT COMPRESS does not require the Advanced Compression option)

  • OLTP Table Compression

  • SecureFiles Compression and Deduplication

Ez alapján RMAN esetében például a default compression (BZIP2) szint ingyen használható, viszont az új ZLIB Advanced Compression opciót igényel. A ZLIB hatékonyabban használja a CPU-t, azaz jóval gyorsabb, viszont kisebb tömörítési arány érhető el vele.

csütörtök márc. 22, 2012

Online Application Upgrade

Amikor HA (High Availability - Magas Rendelkezésre Állás) megoldásokról beszélünk, általában elsőként a klaszterek, redundáns megoldások jutnak eszünkbe. Pedig nem csak a hardver hibákra kell gondolni, hanem a tervezett leállásokkal is érdemes foglalkozni. Az egyik talán legkevésbé megoldott probléma az, ha egy alkalmazás verzió váltást kell végrehajtani úgy, hogy közben változik az adatstruktúra is. Ez nyilván azt eredményezi, hogy le kell állítani az adatbázist is, és az átszervezéseket, akár adat átalakításokkal együtt végre kell hajtani. De a legnagyobb probléma talán az, hogy amennyiben valami rosszul sül el, és vissza kell állni a kiinduló állapotra, akkor az adatbázis mentést is vissza kell tölteni, hiszen átmenetileg minden felhasználó aki épp használatba vette az új alkalmazás verziót már egy új adatstruktúrába kezdett dolgozni.

Az Oracle Database Online Application Upgrade képessége, vagy pontosabb nevén az Edition Based Redefinition pontosan ezt a problémát célozza meg. Az Edition Based Redefinition 3 alap objektummal működik, ezek: edition, editioning view és crossedition trigger. Az edition egy új nonschema objektum típus. 11gR2 verziótól minden adatbázis rendelkezik legalább egy edition-nel, melynek neve Ora$Base. Minden új edition egy már létező gyermeke kell, hogy legyen. Amikor kapcsolódunk az adatbázishoz, meghatározható, hogy melyik edition-höz kapcsolódjunk. Kizárólag nézetek, szinonímák és PL/SQL ojektum típusoknak lehet több edíciója (ezek metadat típusú objektumok, nem tartalmaznak adatokat). Azok az objektumok, melyek több edícióval rendelkeznek egyedileg csak úgy azonosíthatók, ha az owner, name, namespace mellett az edition-t is megnevezzük. Azaz két vagy több példánya is létezhet egy adatbázison belül ugyanazzal az owner, name és namespace azonosítókkal rendelkező objektumnak, amennyiben használjuk az edition-based redefinition-t. Egy új objektum típus, az editioning view is edicionálható. Mivel a fizikai tábla nem edicionálható (elkerülendő az adatok többszörös tárolását és teljesítmény gondokat), ezért az editioning view feladata egy adott tábla egyszerű leképezése egy nézet formájában, ami már több edition-ben is létezhet, és képes elfedni a tábla módosításait. Amennyiben a tábla módosítások olyan táblákat érintenek, amelyek tartalmát  az alkalmazás felhasználók módosítják, szükség van olyan triggerekre, amelyek az egyes editioning view-k között a módosításokat karbantartják. Ezek a crossedition triggerek.

Természetesen ahhoz, hogy az online application upgrade működjön, minden érintett tábla elé el kell készíteni az editioning nézetet és a megfelelő crossedition triggereket. Ezeket használva az alkalmazás két vagy több különböző verzió képes ugyanazon adatbázison párhuzamosan futni, és ha megtörtént a verzióváltás, akkor még mindig egyszerű visszaállni a régi verzióra egészen addig, amíg a régi edition eldobásra nem kerül.

További információk az Edition-Based Redefinition című whitepaper-ben találhatók.

About


Sárecz Lajos vagyok, 2003 óta dolgozok az Oracle Hungary Kft-nél értékesítési tanácsadóként. Szakterületem az Oracle Engineered Systems, azaz olyan szerverek, amelyek hardver és szoftver komponensek előre optimalizált konfigurációja.
A blogon publikált vélemények a saját nézeteimet tükrözik, nem feltétlenül egyeznek meg az Oracle álláspontjával.
The views expressed on this blog are my own and do not necessarily reflect the views of Oracle.
View Lajos Sárecz's LinkedIn profileView Lajos Sárecz's profile

Search

Archives
« március 2012 »
HKSzeCsPSzoV
   
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
24
25
26
27
28
29
30
31
 
       
Today