V D2000 verzii 21 a vyššej je nastavením parametra TrezorCompress = 1 zapnúť kompresiu trezora po jeho odpojení . Kompresia trezora Kompresia dát trezora trezora je implementovaná na platforme PostgreSQL. Vykonáva optimalizáciu jeho štruktúry a niekoľkokrát zmenší jeho veľkosť. Do komprimovaného trezora už nie je možné zapisovať (ani utilitou arcsynchro). Kompresia dát je dostupná v D2000 verzii 21 a vyššej. Nastavenie parametra TrezorCompress = 1 zapína kompresiu dát trezora po jeho odpojení.
Aj staršie trezory je možné skomprimovať „ručne” pomocou tell príkazu TREZOR COMPRESS. Je podporený aj opačný proces – dekompresia pomocou tell príkazu TREZOR DECOMPRESS.
Rýchlosť čítania z komprimovaných trezorov je porovnateľná s nekomprimovanými. V niektorých hraničných prípadoch (čítanie konkrétnej hodnoty v čase) môžu byť komprimované trezory pomalšie. V iných prípadoch môže byť čítanie komprimovaných dát rýchlejšie (záleží od pomeru rýchlosti a záťaže I/O subsystému a procesora). Navyše kompresia dát umožní uchovávanie väčšieho množstva dát v pamäti (v cache operačného systému a PostgreSQL).
Prácu s komprimovanými trezormi je Prácu s komprimovanými trezormi je možné si vyskúšať „na nečisto“. Nastavenie parametra TrezorCompressKeep = 1 spôsobí, že pri kompresii vzniknú tabuľky s komprimovanými dátami (CDATA, DATA0), ale pôvodná tabuľka (DATA) sa nevymaže. Po kompresii sa následne čítajú komprimované dáta. Príkazom Príkazom TREZOR DECOMPRESS. je možné sa veľmi rýchlo vrátiť k pôvodnej štruktúre trezora, keďže nie je nutné vykonať dekompresiu, ale stačí vymazať tabuľky s komprimovanými dátami.
Praktické testy ukázali, že kompresia dát v trezore prebieha rýchlejšie, ak sú predtým dáta upratané. Preto existuje parameter TrezorCompressReorg, ktorý je prednastavený na hodnotu 1 a ktorý aktivuje reorganizáciu dáta (SQL príkazom CLUSTER DATA) pred kompresiou. Vypnutie reorganizácie pred kompresiou neodporúčame.
Parameter TrezorCompressCmt udáva počet archívnych objektov, po ktorých komprimovaní sa vykoná COMMIT. Prednastavená hodnota je 10. V aplikáciách s intenzívne archivovanými objektami (veľa hodnôt jedného archívneho objektu v trezore) je možné tento parameter znížiť až na hodnotu 1. Naopak, v aplikáciách s veľa archívnymi objektami, ktoré sa menia zriedkavo, je možné hodnotu tohto parametra zvýšiť.
Posledný parameter týkajúci sa komprimovaných trezorov je TrezorCompressOrder. Tento parameter udáva, či pri čítaní dát z komprimovaného trezora je nutné použiť zoradenie podľa času. Keďže sú dáta zoradené pri kompresii, štandardne je možné nechať parameter na hodnote 0, čo zrýchľuje čítanie z komprimovaného trezora.
Výpis trezorov príkazom LIST_TREZOR ukazuje pri komprimovaných trezoroch príznak CPS:
Trezorová databáza (trezor) je dlhodobý archív, ktorý zabezpečuje časovo neobmedzenú archiváciu hodnôt v SQL databázach. Do trezorovej databázy sú zapisované všetky hodnoty archívneho objektu, ktorý má vo svojej konfigurácii nastavený parameter Zápis aj do trezoru. Požiadavka na zápis do trezorovej databázy je generovaná okamžite po zápise do hlavnej archívnej databázy. Čiže zápis prebieha takmer paralelne so zápisom do archívnej databázy. Na rozdiel od hlavnej databázy, údaje z trezorovej databázy nie sú automaticky on-line prístupné a nikdy sa nevymazávajú. On-line sprístupnenie údajov z trezorových databáz je možné po ich namontovaní do systému.
Trezorové databázy sú dostupné na platformách Sybase, Oracle a PostgreSQL, pričom ich vlastnosti nie sú úplne totožné a závisia od možností, ktoré tieto platformy ponúkajú. Pre platformu Microsoft SQL Server, resp. Microsoft Desktop Engine (MSDE) nie sú trezorové databázy implementované.
Poznámka: Zistenie konfigurácie trezorov je možné pomocou TELL príkazu LIST_TREZOR.
...
V konfigurácií archívu je definovaná perióda, počas ktorej archív zapisuje údaje do jednej trezorovej databázy. Po uplynutí periódy sa databáza odloží a začne sa zapisovať do novej trezorovej databázy. Odložená databáza je ešte určitý čas (konfiguračný parameter TrezorCompressTime) prístupná na zápis oneskorených údajov. Po uplynutí tohto času je skomprimovaná nástrojmi Sybase do ReadOnly tvaru a odložená do adresára, ktorý určuje konfiguračný parameter TrezorCompressPath. Meno komprimovanej databázy obsahuje čas skončenia zapisovania do trezoru (napr. Trezor_2008_03_20_16.cdb).
Poznámka: Kompresia Sybase databáz je implementovaná na podporovaných verziách Sybase Adaptive Server Anywhere 6 až 9. Od verzie Sybase SQL Anywhere 12 už neexistuje utilita na kompresiu databázy a táto vlastnosť sa považuje za zastaranú. Trezorové databázy sa nekomprimujú, ale ostávajú v adresári, ktorý určuje konfiguračný parameter TrezorCompressPath, ako súbory .db a .log (napr. Trezor_2010_02_04_07.db a Trezor_2010_02_04_07.log).
Predčasné odpojenie aktuálnej trezorovej databázy je možné TELL príkazom RELEASE_TREZOR.
Off-line analýza údajov z trezorovej databázy je možná bez jej dekompresie. Na analýzu bola vytvorená podpora pre import dát z trezorovej databázy do EXCELU. Vzhľadom na použitie štandardného SQL formátu, je možné na analýzu použiť ľubovoľný nástroj vhodný pre prácu s SQL databázami.
Konfigurácia parametrov definujúcich spôsob vytvárania trezorových databáz je implementovaná v procese D2000 Management Console. Dajú sa nastaviť pre každý proces D2000 Archiv.
...
Parametre TrezorPeriod a TrezorCompressTime sa udávajú v hodinách, dňoch, týždňoch alebo v mesiacoch. Syntax zápisu je napr.:
- 4H - štyri hodiny
- 2D - dva dni
- 1W - jeden týždeň
- 1M - jeden mesiac
Poznámka: Zistenie konfigurácie trezorov, ako aj zoznam pripojených trezorov, je možné pomocou TELL príkazu LIST_TREZOR.
Upozornenie: Pri vytváraní trezorovej databázy, alebo ak databáza neexistuje, proces D2000 Archiv databázových templates nakopíruje template trezorovej databázy a inicializuje jej vnútornú štruktúru. Preto je neprípustné manuálne kopírovanie templates trezorovej databázy, nakoľko D2000 Archiv už neinicializuje trezorovú databázu, keď ju nájde v adresári \Trezor príslušného aplikačného adresára.
...
Trezorová databáza je realizovaná samostatným tabuľkovým priestorom (tablespace), ktorého názov je APLIKACIA_TS_TREZORID, kde ID=1,2..atď, napr. TEST_TS_TREZOR5). Trezorový tablespace sa skladá z dátových súborov (datafiles), ktorých počet určuje parameter TrezorCountDatafiles (štandardne 1). Dátové súbory sa vytvárajú v adresári TrezorPath.
Ak TrezorCountDatafiles=1, názov dátového súboru je APLIKACIA_TS_TREZORxxID_YYYYMMDD.ORA.
Ak TrezorCountDatafiles>1, názvy dátových súborov sú APLIKACIA_TS_TREZORxxID_01_YYYYMMDD.ORA, APLIKACIA_TS_TREZORxxID_02_YYYYMMDD.ORA atď., kde xxID je ID zľava doplnené nulami na dĺžku 4 znakov a YYYYMMDD je dátum vytvorenia trezoru, napr. TEST_TS_TREZOR0005_03_20060930.ORA. Veľkosť dátového súboru určuje parameter TrezorStartDatafileSize, parametrom TrezorMaxDatafileSize je možné nastaviť rast dátového súboru až do udanej veľkosti.
Podobne ako pre Sybase, v konfigurácii archívu je definovaná perióda TrezorPeriod, počas ktorej archív zapisuje údaje do jednej trezorovej databázy. Po uplynutí periódy sa databáza odloží a začne sa zapisovať do novej trezorovej databázy. Odložená databáza je ešte určitý čas (konfiguračný parameter TrezorCompressTime) prístupná na zápis oneskorených údajov. Po uplynutí tohto času je trezorový tablespace prepnutý do read-only módu (ALTER TABLESPACE APLIKACIA_TS_TREZORID READ ONLY) a pokiaľ hodnota parametra TrezorCompressOffline=1, je daný do offline (ALTER TABLESPACE APLIKACIA_TS_TREZORID OFFLINE). Pokiaľ sú zadané konfiguračné parametre TrezorPath, aj TrezorCompressPath, dátové súbory sú presunuté do adresára TrezorCompressPath.
Po odpojení trezoru (a prípadnom presune) je možné spustiť externý program, ktorého cestu a názov určuje konfiguračný parameter TrezorPostCompressCmd a jeho parametre určuje parameter TrezorPostCompressPar.
Predčasné odpojenie aktuálnej trezorovej databázy je možné TELL príkazom RELEASE_TREZOR.
Archív si vnútorne udržuje zoznam trezorov v archívnej databáze v tabuľke Trezors.
Poznámka 1: Pri prepínaní tablespace do read-only módu vyžaduje Oracle, aby na celej databáze nebola aktívna žiadna transakcia. Preto archív robí pred prepínaním commit na zápisy do archívu aj aktívneho trezoru. Je dôležité, aby databáza, ktorej súčasťou je trezorový tablespace, nebola používaná na iné účely, ktoré by vyžadovali dlhšie trvajúce transakcie, pretože v takom prípade dôjde k zablokovaniu trezorovej časti archívu až do doby ukončenia prebiehajúcich transakcií. Na informáciu o zablokovaní trezorov slúži parameter TrezorReadOnlyTimeout.
Poznámka 2: Maximálna dĺžka názvu tablespace v Oracle je 30 znakov. Toto obmedzenie treba brať do úvahy pri definovaní názvu aplikácie, aby sa celý názov APLIKACIA_TS_TREZORID (resp. APLIKACIA_TS_TREZORID_seg pri použití trezorových segmentov) zmestil do 30 znakov.
Poznámka 3: Databáza Oracle môže mať maximálne toľko dátových súborov, ako udáva parameter DB_FILES v jej inicializačnom súbore. Preto pred zapnutím trezorovania zvýšte parameter DB_FILES na dostatočnú hodnotu.
...
Od verzie 7.01.10 podporuje D2000 Archiv na platforme Oracle koncept trezorových segmentov. Trezorovým segmentom sa rozumie trezorový tablespace, pričom sa vytvára a napĺňa viac trezorových tablespace naraz. Každá archivovaná hodnota sa ukladá do jedného trezorového segmentu, ktorého číslo určuje konfiguračný parameter Trezorový segment na archivovanej hodnote.
Počet trezorových segmentov, ktoré archív vytvára, učuje registry parameter TrezorCountSegments. Archivované hodnoty, ktoré majú parameter Trezorový segment väčší ako je hodnota registry parametra TrezorCountSegments, budú zapisované do nultého trezorového segmentu (to je trezorový tablespace, ktorý sa vytvára aj pri vypnutých trezorových segmentoch).
Zmyslom trezorových segmentov je vytvorenie viacerých menších trezorov, takže pri čítaní jednej archivovanej hodnoty za dlhší časový úsek je možné vystačiť s menším diskovým priestorom (keďže je nutné montovať iba trezorové segmenty obsahujúce túto archivovanú hodnotu), ako by vyžadovalo montovanie celého objemu trezorov za žiadané obdobie.
Po zapnutí trezorových segmentov bude mať tablespace nultého segmentu názov APLIKACIA_TS_TREZORID (rovnaký ako trezorový tablespace pri vypnutých segmentoch) a všetky ostatné segmenty názvy APLIKACIA_TS_TREZORID_seg, kde seg je dvojmiestne číslo segmentu (medzi 01 a TrezorCountSegments).
Ak TrezorCountDatafiles=1, názov dátových súborov sú APLIKACIA_TS_TREZORxxID_Syy_YYYYMMDD.ORA.
Ak TrezorCountDatafiles>1, názvy dátových súborov sú APLIKACIA_TS_TREZORxxID_Syy_zz_YYYYMMDD.ORA, kde xxID je ID zľava doplnené nulami na dĺžku štyroch znakov, yy je číslo segmentu zľava doplnené nulou na dĺžku dvoch znakov, z je číslo dátového súboru zľava doplnené nulou na dĺžku dvoch znakov a YYYYMMDD je dátum vytvorenia trezoru.
Príklad názvu: TEST_TS_TREZOR0005_S02_01_20060930.ORA.
Poznámka: Od verzie D2000 7.02.010 je možné špecifikovať aj inú príponu dátového súboru ako ORA parametrom TrezorDatafileSuffix.
Poznámka: Je možné zmeniť prednastavený prefix názvu trezorových tablespace a dátových súborov z APLIKACIA_TS_TREZOR na ľubovolný pomocou parametra TrezorPrefix.
...
Všetky konfiguračné parametre umiestnené vo Windows Registry sú typu String s výnimkou parametrov TrezorCompressOffline, TrezorCountDatafiles, TrezorCountSegments a TrezorNoLogging, ktoré sú typu DWORD.
...
- #ID# - nahradí sa Id trezora (napr. 15).
- #TREZOR# - nahradí sa názvom trezorového tablespace (napr. TEST_TS_TREZOR5).
- #SEGMENTS# - nahradí sa počtom segmentov trezoru (t.j. hodnotou konfiguračného parametra TrezorCountSegments).
- #FILES# - nahradí sa počtom dátových súborov trezoru (t.j. hodnotou konfiguračného parametra TrezorCountDatafiles).
- #FILE1#, #FILE2# atď. - nahradí sa názvom príslušného dátového súboru aj s cestou, pokiaľ bola cesta udaná parametrom TrezorPath (napr. C:\ora920\oradata\D2000\TEST_TS_TREZOR5_1.ORA).
...
Trezory mimo archívu na platforme Oracle
...
Spoločný trezor pre viac archívov na platforme Oracle
...
Poznámka 1: Parameter Trezor_Active_Only musí mať nastavené všetky tieňové archívy, inak dôjde k vzájomnému blokovaniu sa archívov pri pokuse zapisovať do trezoru tú istú hodnotu.
...
Trezorová databáza je realizovaná samostatnou databázou. Názov trezorových databáz je daný konfiguračným parametrom PG_TrezorName0.
Podobne ako pre Sybase, v konfigurácii archívu je definovaná perióda TrezorPeriod, počas ktorej archív zapisuje údaje do jednej trezorovej databázy. Po uplynutí periódy sa databáza odloží a začne sa zapisovať do novej trezorovej databázy. Odložená databáza je ešte určitý čas (konfiguračný parameter TrezorCompressTime) prístupná na zápis oneskorených údajov. Po uplynutí tohto času je nastavený read-only prístup do trezorovej databázy (ALTER DATABASE APLIKACIA_TREZOR_#ID# SET default_transaction_read_only = true) a pokiaľ hodnota parametra TrezorCompressOffline=1, je zakázaný prístup k trezorovej databáze (update pg_database set datallowconn = false where datname = 'APLIKACIA_TREZOR_#ID#'). Po odpojení trezoru je možné spustiť externý program, ktorého cestu a názov určuje konfiguračný parameter TrezorPostCompressCmd a jeho parametre určuje parameter TrezorPostCompressPar.
Program môže napr. presunúť a zozipovať odpojený trezor alebo pomocou programu pg_dump vytvoriť dump trezorovej databázy.
Pozn 1: Aby databázový užívateľ dba (pod ktorým sa D2000 Archív pripája na PostgreSQL server) mohol databázy vytvárať a odpájať, je odporúčané dať mu privilégium superužívateľa ( ALTER ROLE dba WITH SUPERUSER; ).
Pozn 2: Keďže každá trezorová databáza (resp. každý trezorový segment) je samostatná databáza, ku ktorej proces D2000 Archiv pristupuje cez samostatné databázové spojenie, je nutné v konfigurácii PostgreSQL servera nastaviť dostatočný počet spojení (parameter max_connections), aby D2000 Archív mohol vytvoriť spojenia na všetky pripojené trezory.
...
Trezory na platforme PostgreSQL podporujú aj trezorové segmenty (podobne ako na platforme Oracle). Trezorovým segmentom sa rozumie trezorová databáza, pričom sa vytvára a napĺňa viac trezorových databáz naraz. Každá archivovaná hodnota sa ukladá do jedného trezorového segmentu, ktorého číslo určuje konfiguračný parameter Trezorový segment na archivovanej hodnote.
Počet trezorových segmentov, ktoré archív vytvára, učuje registry parameter TrezorCountSegments. Archivované hodnoty, ktoré majú parameter Trezorový segment väčší ako je hodnota registry parametra TrezorCountSegments, budú zapisované do nultého trezorového segmentu (to je trezorová databáza, ktorý sa vytvára aj pri vypnutých trezorových segmentoch).
Každý trezorový segment je realizovaný samostatnou databázou. Názov databáz reprezentujúcej segmenty 0 je daný konfiguračným parametrom PG_TrezorName0, názvy databáz reprezentujúcich segmenty 1..N sú dané konfiguračným parametrom PG_TrezorName.
Zmyslom trezorových segmentov je vytvorenie viacerých menších trezorov, takže pri čítaní jednej archivovanej hodnoty za dlhší časový úsek je možné vystačiť s menším diskovým priestorom (keďže je nutné montovať iba trezorové segmenty obsahujúce túto archivovanú hodnotu), ako by vyžadovalo montovanie celého objemu trezorov za žiadané obdobie.
...
- #ID# - nahradí sa Id trezora (napr. 5).
- #OID# - nahradí sa OID (object identifier) trezorovej databázy (OID zodpovedá názvu adresára s databázou v rámci PostgreSQL tablespace).
- #OID0#, #OID1#, #OID2# atď - nahradí sa OID (object identifier) trezorovej databázy reprezentujúcej príslušný trezorový segment 0, 1, 2 atď.
- #TREZOR# - nahradí sa názvom trezorovej databázy (napr. Test_TREZOR_5).
- #TREZOR0#, #TREZOR1#, #TREZOR2# atď. - nahradí sa názvom trezorovej databázy reprezentujúcej príslušný trezorový segment
Príklad dávkového súboru, ktorý slúži na upratanie a export trezorov po ich odpojení ako aj na export tabuľky trezors z archívnej databázy MyApp.Archiv. Dávkový súbor vyžaduje ako parameter názov trezorovej databázy, čo dosiahneme nastavením parametra TrezorPostCompressPar na hodnotu #TREZOR#.
...
.
Výpis trezorov príkazom LIST_TREZOR ukazuje pri komprimovaných trezoroch príznak cps:
Received TELL command : LIST_TREZOR
List all
List of existing trezors:
--------------------------------------------------------------------------
ID | Data start(UTC)| Data end(UTC) | Status |
--------------------------------------------------------------------------
0134 31-05-2020 22:00 30-06-2020 22:00 being used for writing
0133 30-04-2020 22:00 31-05-2020 22:00 mounted read-only cps
0132 31-03-2020 22:00 30-04-2020 22:00 mounted read-only cps
0131 29-02-2020 23:00 31-03-2020 22:00 mounted read-only
0130 31-01-2020 23:00 29-02-2020 23:00 mounted read-only
Obmedzenie PostgreSQL
Komprimované trezory na PostgreSQL podliehajú nasledovnému obmedzeniu: veľkosť dát jedného archívneho objektu (resp. jednej položky štruktúrovaného archívu), ktoré sa ukladajú do jedného riadku komprimovanej dátovej tabuľky CDATA, musí byť menšia ako 1 GB. V opačnom prípade kompresia skončí s chybou a je vypísané ID objektu, ktorý ju spôsobil. Príklad:
[2021-04-05 20:36:52.371]E MES_TREZOR_20 ExecSqlCommand insert into cdata with avgc as (select '20090701 000000.000'::timestamp as cmin, '20090801 000000.000'::timestamp as cmax,'20090701 000000.000'::timestamp + ('20090801 000000.000'::timestamp - '20090701 000000.000'::timestamp)/2 as c), sdata as (SELECT * from data where "ID"= 1309454 and "ROW"= 0 and "COL"= 0 order by "CAS") select "ID", "ROW", "COL", avgc.c, array_agg( ((extract (epoch from "CAS"-avgc.c)*1000)::integer, "VALUE", "STATUS", "LIMIT_STATUS", "ARCHIV_STATUS", "FLAGS")::d2trzitem) from sdata, avgc where "CAS" between avgc.cmin and avgc.cmax + '1 hour'::interval group by "ID", "ROW", "COL", avgc.c
(54000)ERROR: array size exceeds the maximum allowed (1073741823);
[2021-04-05 20:36:52.381]E Error inserting cdata for 20 ID=$1309454
Kotva | ||||
---|---|---|---|---|
|
TrezorCompress - zapnutie kompresie dát trezora. Kompresia dáta prebehne pri odpájaní trezora.Kotva trezorcompress trezorcompress
Parameter môže byť zmenený za behu tell príkazom SET_OPTION TrezorCompress.
TrezorCompressKeep - parameter slúži na otestovanie kompresie dát trezora. Ak má hodnotu 1, tabuľka s pôvodnými dátami (DATA) nebude vymazaná, ale sa ponechá. Dáta sa budú ale čítať z tabuliek s komprimovanými dátami (CDATA, DATA0). Príkazom TREZOR DECOMPRESS je možné sa veľmi rýchlo vrátiť k pôvodnej štruktúre trezora, keďže nie je nutné vykonať dekompresiu, ale stačí vymazať tabuľky s komprimovanými dátami.Kotva trezorcompresskeep trezorcompresskeep
Parameter môže byť zmenený za behu tell príkazom SET_OPTION TrezorCompressKeep.
Ak chcete vymazať komprimované dáta a zachovať nekomprimované, použite nasledovný postup:
- Príkazom SET_OPTION TREZOR_COMPRESS_KEEP OFF nastavte hodnotu parametra TrezorCompressKeep na 0.
- Príkazom TREZOR DECOMPRESS vykonajte dekompresiu dát trezora (dekompresia prebehne rýchlo, keďže budú iba vymazané tabuľky s komprimovanými dátami - CDATA, DATA0).
Ak chcete zachovať komprimované dáta a vymazať nekomprimované, použite nasledovný postup:
- Príkazom TREZOR DECOMPRESS vykonajte dekompresiu dát trezora (dekompresia prebehne rýchlo, keďže bude iba trezor označený ako dekomprimovaný. Vďaka hodnote parametra TrezorCompressKeep=1 nebudú vymazané tabuľky s komprimovanými dátami - CDATA, DATA0).
- Príkazom SET_OPTION TREZOR_COMPRESS_KEEP OFF nastavte hodnotu parametra TrezorCompressKeep na 0.
- Príkazom TREZOR COMPRESS vykonajte kompresiu dát trezora (kompresia prebehne rýchlo, keďže sa použijú existujúce dáta v tabuľkách s komprimovanými dátami). Kompresia vymaže tabuľku s pôvodnými nekomprimovanými dátami (DATA).
TrezorCompressReorg - reorganizácia dát trezora pred kompresiou. Tento parameter má prednastavenú hodnotu 1 - v praxi sa ukazuje, že je efektívnejšie a rýchlejšie najskôr zreorganizovať dáta (SQL príkazom CLUSTER DATA) a až následne vykonať ich kompresiu. Hodnota 0 vypína reorganizáciu dát trezora pred kompresiou. Vypnutie reorganizácie pred kompresiou nie je odporúčané.Kotva trezorcompressreorg trezorcompressreorg
Parameter môže byť zmenený za behu tell príkazom SET_OPTION TrezorCompressReorg.
TrezorCompressCmt - parameter udáva počet archívnych objektov, po ktorých komprimovaní sa vykoná COMMIT. Prednastavená hodnota je 10. V aplikáciách s intenzívne archivovanými objektami (veľa hodnôt jedného archívneho objektu v trezore) je možné tento parameter znížiť až na hodnotu 1. Naopak, v aplikáciách s veľa archívnymi objektami, ktoré sa menia zriedkavo, je možné hodnotu tohto parametra zvýšiť.Kotva trezorcompresscmt trezorcompresscmt
Parameter môže byť zmenený za behu tell príkazom SET_OPTION TrezorCompressCmt.
TrezorCompressOrder - parameter sa týka čítania z trezorov s komprimovanými dátami. Tento parameter udáva, či pri čítaní dát z komprimovaného trezora je nutné použiť zoradenie podľa času. Keďže sú dáta zoradené pri kompresii, štandardne je možné nechať parameter na hodnote 0, čo zrýchľuje čítanie z komprimovaného trezora (vynecháva sa ORDER BY).Kotva trezorcompressorder trezorcompressorder
Parameter môže byť zmenený za behu tell príkazom SET_OPTION TrezorCompressOrder.
Kotva | ||||
---|---|---|---|---|
|
Príklad ekvivalentného dávkového súboru pre platformu Linux:
...
- Ak boli staré trezory už upratané (napr. zálohovací skript obsahoval "cluster data"), je možné pred kompresiou vypnúť upratovanie tell príkazom:
SET_OPTION TREZOR_COMPRESS_REORG OFF - Trezory, ktoré budú komprimované, treba pripojiť na zápis. Najskôr ich teda treba odpojiť a následne pripojiť. Napríklad pre trezory 1-10:
DISMOUNT_TREZOR 1 10
MOUNT_TREZOR 1 10 WRITE - Teraz je možné trezory komprimovať tell príkazom
TREZOR COMPRESS <trezor_id>
napr. TREZOR_COMPRESS 1
Trezor s veľkosťou okolo 20 GB sa na štandardnom serveri komprimuje okolo hodiny - dvoch. Ak je to oveľa viac, tak zrejme nie sú dáta "upratané" a treba zapnúť upratovanie pred kompresiou (SET_OPTION TREZOR_COMPRESS_REORG ON).
Štandardne má archív zapnutú debug kategóriu DBG.ARCHIV.COMPRESS.TREZOR a v D2000 Sysconsole sú vidieť debug výpisy. Hovoria o kompresii konkr. objektov (resp. položiek štruktúrovaných archívov), v zátvorke je poradové číslo / celkový počet objektov). Raz za 10 objektov nasleduje commit do databázy (toto sa dá parametrizovať tell príkazom SET_OPTION TREZOR_COMPRESS_CMT <pocet>).
Compress trezor 81 ID $11291( 1048/ 39113)
Compress trezor 81 ID $11291( 1048/ 39113) done
Compress trezor 81 ID $11293( 1049/ 39113)
Compress trezor 81 ID $11293( 1049/ 39113) done
Compress trezor 81 ID $11295( 1050/ 39113)
Compress trezor 81 ID $11295( 1050/ 39113) done (commit)
Compress trezor 81 ID $11297( 1051/ 39113)
Compress trezor 81 ID $11297( 1051/ 39113) done
Compress trezor 81 ID $11299( 1052/ 39113)
Compress trezor 81 ID $11299( 1052/ 39113) done - Po skomprimovaní je vhodné trezory odpojiť a pripojiť na čítanie. Napríklad pre trezory 1-10:
DISMOUNT_TREZOR 1 10
MOUNT_TREZOR 1 10 - Tell príkazom LIST_TREZOR je možné skontrolovať, ze sú skomprimované všetky požadované trezory. Skomprimovaný trezor má príznak "cps". Napríklad trezor 140:
0140 31-07-2019 22:00 31-08-2019 22:00 mounted read-only cps - Ak bola vypnutá kompresia pred upratovaním, odporúčame ju zapnúť tell príkazom:
SET_OPTION TREZOR_COMPRESS_REORG OFF - Kompresia novovytvorených trezorov sa zapne tell prikazom:
SET_OPTION TREZOR_COMPRESS ON