Page tree
Skip to end of metadata
Go to start of metadata

Po dosiahnutí časovej hĺbky archivácie, proces D2000 Archiv v pravidelných intervaloch vymazáva staré údaje z archívnej databázy. V dôsledku vymazávania starých archívnych hodnôt a pridávania nových sa postupne archívne tabuľky a ich indexy fragmentujú (obsahujú nevyužité miesta) a databázový súbor sa zväčšuje.

Proces D2000 Archiv využíva mechanizmus reorganizácie, ktorý je použiteľný na databázových platformách Oracle, PostgreSQL a Sybase Adaptive Server Anywhere 8.0 a vyššej. Reorganizácia nie je podporovaná na platformách MSSQL a Sybase Adaptive Server Anywhere 7.0 a nižšej.

Reorganizácia databáz môže byť automatická, periodická alebo ručná (prostredníctvom TELL príkazu REORGANIZE).

Reorganizácia na platforme Oracle


Reorganizácia prebieha použitím SQL príkazu ALTER TABLE MOVE. V rámci TELL príkazu REORGANIZE je možné zadať aj cieľový tablespace - v tomto prípade sa vykonáva ALTER TABLE MOVE TABLESPACE, ktorý tabuľku presunie do cielového tablespace-u.

Poznámka k implementácii ALTER TABLE MOVE pre Oracle 9i: Pred zapnutím reorganizácie je nutné, aby TEMPORARY tablespace v databáze bol dostatočne veľký, pretože pri reorganizácii je tabuľka najskôr skopírovaná do TEMPORARY tablespace-u, tam je zreorganizovaná, skopírovaná do pôvodného alebo iného tablespace-u a pôvodná tabuľka je odstránená.

Poznámka k implementácii ALTER TABLE MOVE pre Oracle 10g: Pri reorganizácii databázy sa nepoužíva TEMPORARY tablespace - tabuľka je skopírovaná do pôvodného tablespace, tam je zreorganizovaná a pôvodná tabuľka je odstránená.

Od verzie D2000 7.02.008 je podporená pre databázu Oracle 10g a vyššie aj reorganizácia, ktorá používa SQL príkaz ALTER TABLE SHRINK SPACE. Výhodou tejto reorganizácie je, že môže prebiehať počas normálnej práce archívu - počas reorganizácie je povolené vkladanie aj mazanie záznamov reorganizovanej tabuľky. Tento spôsob reorganizácie sa nastavuje štartovacím parameterom /DBCS alebo dynamicky TELL príkazom REORGANIZE SHRINK. Taktiež sa nepoužíva TEMPORARY tablespace.

Reorganizácia na platforme Sybase


Reorganizácia prebieha použitím SQL príkazu REORGANIZE TABLE INDEX, reorganizujú sa dáta aj index (úroven fragmentácie je možné zistiť pomocou procedúr sa_index_density a sa_table_fragmentation, bližšia dokumentácia viď manuál Sybase).

Reorganizácia archívnych tabuliek nezmenší veľkosť databázového súboru, ale uvoľní v ňom miesto použiteľné pre vkladanie ďalších dát. Veľkosť voľného miesta v databáze sa zobrazí v nástroji Sybase Central po kliknutí pravým tlačidlom myši na databázu a výberom položky Properties z kontextového menu. Na záložke Extended Information sa nachádza atribút FreePages, ktorý udáva množstvo voľných stránok v databáze. Počas reorganizácie je možné po kliknutí na tlačidlo Refresh sledovať zväčšovanie sa atribútu FreePages.

Počas reorganizácie archívnej tabuľky je práca s ňou (čítanie, zápis) zablokovaná. Požiadavky na čítanie, mazanie a zápis do tabuľky, ktorá sa reorganizuje, sú odkladané a spracujú sa po dokončení reorganizácie.

Reorganizácia môže trvať od niekoľko sekúnd (malé archívne tabuľky) až po desiatky minút (veľké štrukturované archívy) a závisí od harvérovej konfigurácie databázového servera.

Reorganizácia na platforme PostgreSQL


Reorganizácia prebieha použitím SQL príkazu VACUUM. Pri tom sa uvoľňujú už nepotrebné verzie riadkov z tabuliek. PostgreSQL podporuje aj automatický vacuuming, viac info viď dokumentácia k PostgreSQL - konfiguračný parameter autovacuum.

Počas reorganizácie archívnej tabuľky je možné čítanie aj zápis do tabuľky.

Pre PostgreSQL archív je odporúčaná periodická reorganizácia s niekoľkodňovou periódou.



Automatická reorganizácia

Z dôvodov spätnej kompatibility je automatická reorganizácia štandardne vypnutá. Zapína sa pomocou štartovacieho parametra archívu /DBCY. Po zapnutí automatickej reorganizácie bude archívna tabuľka reorganizovaná, ak sú splnené obe nasledujúce podmienky:

Parametre ReorganizeTableRowLimit a ReorganizeTableTimeLimit sa nachádzajú v registroch systému Windows (Windows Registry) vo vetve archívu a sú typu DWORD.

Okrem štartovaceho parametra archívu /DBCY, je možné povoliť reorganizáciu iba pre aktívnu inštanciu archívu (štartovací parameter /DBCA) alebo iba pre pasívnu inštanciu archívu (štartovací parameter /DBCP).

Použitie parametra /DBCA má zmysel pri súčasnom použití parametra /DBSH (zdieľanie archívnej databázy), aby pasívna inštancia reorganizáciou neznemožnila aktívnej inštancii prácu s archívnou tabuľkou. Parameter /DBCA spôsobí, že v pasívnom móde nebude prebiehať ani reorganizácia ani mazanie starých archívnych hodnôt.

Použitie parametra /DBCP má zmysel vtedy, keď nie je žiadúce, aby sa čítanie z archívu kvôli reorganizácii pozastavilo. Ako príklad je možné uviesť štrukturovaný archív so zapnutým prehrávaním archívu a zverejnovaním hodnôt, pričom podľa zverejňovaných hodnôt sa riadi. V takejto konfigurácii je nežiadúce, aby reorganizácia (trvajúca napr. niekoľko minút) spôsobila oneskorenie zverejňovania hodnôt, preto reorganizovať môže iba pasívna inštancia, ktorá vykonáva iba zápis do archívu.

Parameter /DBCP spôsobí, že v aktívnom móde nebude prebiehať ani reorganizácia ani mazanie starých archívnych hodnôt.

žiadne /DBCY /DBCA /DBCP
Aktívna mazanie: áno
 reorganizácia: nie
mazanie: áno
reorganizácia: áno
mazanie: áno, reorganizácia: áno mazanie: nie, reorganizácia: nie
Pasívna mazanie: nie, reorganizácia: nie mazanie: áno, reorganizácia: áno


Periodická reorganizácia

Kvôli kompletnej reorganizácii všetkých archívnych tabuliek je možné nakonfigurovať periodickú reorganizáciu.
Riadená je parametrami archívu ReorganizePeriode a ReorganizeOffset. Aktívna je, ak má parameter ReorganizePeriode nenulovú hodnotu. Vtedy sa každých ReorganizePeriode hodín (s offsetom ReorganizeOffset) vygenerujú požiadavky na reorganizáciu všetkých tabuliek v archíve, pokiaľ platí:

  • reorganizácia je zapnutá (/DBCY),
  • reorganizácia v pasívnom móde je zapnutá (/DBCP) a archív je pasívny,
  • reorganizácia v aktívnom móde je zapnutá (/DBCA) a archív je aktívny.

Poznámka 1: Periodická a automatická reorganizácia sa môže kombinovať, napr. nakonfigurovať raz mesačne periodickú reorganizáciu a automatickú reorganizáciu po 50000 zmazaných riadkoch nie častejšie ako raz za 72 hodín.
Poznámka 2: Parametre ReorganizeOffset a ReorganizePeriode sa dajú nastavovať TELL príkazom SET_OPTION.


Ručná reorganizácia

Pomocou TELL príkazu REORGANIZE je možné reorganizovat jednu tabuľku alebo celý archív. Pri ručnej reorganizácii sa neberú do úvahy parametre ReorganizeTableRowLimit a ReorganizeTableTimeLimit.

TELL príkaz REORGANIZE umožňuje, počas behu archívu, meniť parametre /DBCY, /DBCA, /DBCP, ReorganizeTableRowLimit a ReorganizeTableTimeLimit. Zmeny štartovacích parametrov sú platné iba počas behu archívu a neukladajú sa do konfiguračnej databázy. Zmeny parametrov archívu sa ukladajú aj do registrov systému Windows (Windows Registry).


Poznámka: Aktuálne hodnoty parametrov reorganizácie je možné zistiť vo výpise TELL príkazu SHOW_INFO.

Write a comment…