...
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.
...
- TrezorPrefix - pokiaľ nie je nastavený, prefix názvu trezoru a dátových súborov je APLIKACIA_TS_TREZOR.
Nastavením hodnoty TrezorPrefix je možné zmeniť tento prefix. Parameter má význam v spojitosti s parametrom DbUsername pri migrácii archívnej databázy z jednej aplikácie do druhej (resp. pri premenovaní aplikácie) so zachovaním archívneho tablespace a existujúcich trezorov (napr. na OldApp_TS_TREZOR). - TrezorReadOnlyTimeout - parameter udáva timeout (v sekundách) pri dávaní trezoru do READ ONLY módu. Po vypršaní timeoutu archív vygeneruje systémový alarm "Changing trezor tablespace read-only takes more than 120 sec, possible Oracle lock!". Prednastavená hodnota je 120 sekúnd.
Kotva |
---|
| trezorreadsegment0 |
---|
| trezorreadsegment0 |
---|
|
TrezorReadSegment0 - Parameter má zmysel iba ak sú nakonfigurované trezorové segmenty (nenulová hodnota parametra TrezorCountSegments). Zapnutie parametra (hodnota 1) spôsobí, že pri čítaní z trezorov sa bude čítať aj z trezorového segmentu 0. Čítanie z trezorov tak bude pomalšie, ale zato je možné prekonfigurovať archívne objekty z prednastaveného trezorového segmentu 0 na iný segment a zároveň zachovať prístup k údajom, ktoré boli v minulosti uložené v segmente 0.
Parameter TrezorReadSegment0 sa dá nastavovať TELL príkazom SET_OPTION .- databáz.
Kotva |
---|
| trezorpostcompresscmdora |
---|
| trezorpostcompresscmdora |
---|
|
TrezorPostCompressCmd - názov programu, ktorý sa spustí po odpojení trezoru a prípadnom presune dátových súborov odpojeného trezoru. Program môže byť určený napr. na zozipovanie dátových súborov a ich prekopírovanie po sieti. Kotva |
---|
| trezorpostcompressparora |
---|
| trezorpostcompressparora |
---|
|
TrezorPostCompressPar - voliteľný parameter programu TrezorPostCompressCmd. Môže obsahovať ľubovoľný text a preddefinované makrá, ktoré sa nahradia pred spustením programu:- #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).
Príklad 1: Máme zapnuté vytváranie trezorov s jedným dátovým súborom, ktorý chceme po odpojení zbaliť do súboru TrezorID.zip (ID=1,2 atď.) a presunúť do adresára D:\backup
TrezorCountDatafiles 1
TrezorPostCompressCmd C:\utils\zip.exe
TrezorPostCompressPar -m D:\backup\Trezor#ID#.zip #FILE1#
Po odpojení napr. trezoru č.5 sa spustí program
C:\utils\zip.exe -m D:\backup\Trezor5.zip C:\ora920\oradata\D2000\TEST_TS_TREZOR5_1.ORA
Príklad 2: Konfigurácia, ktorá spustením TELL príkazu zabezpečí pripojenie trezoru na čítanie po jeho odpojení:
TrezorPostCompressCmd c:\D2000\D2000.E70\bin\tell.exe
TrezorPostCompressPar dst=SELF.ARC cmd="MOUNT_TREZOR #ID#" uid=myuser pwd=mypassword- TrezorNoLogging - parameter typu DWORD, ktorého nenulová hodnota spôsobí, že trezorový tablespace sa vytvára v NOLOGGING móde. Ak má nulovú hodnotu alebo neexistuje, trezorový tablespace sa vytvára v LOGGING móde (generuje REDO logy a je obnoviteľný).
...
Kotva |
---|
| pg_trezorfilepath |
---|
| pg_trezorfilepath |
---|
|
PG_TrezorFilePath - parameter je použiteľný pre PostgreSQL 9.5 a vyšší a aktivuje zápis do trezorov cez súbory, ktorý je 2 až 3-krát rýchlejší ako štandardný dávkový zápis cez ODBC rozhranie. Po nazhromaždení PG_TrezorFileMulti * CommitCount hodnôt sa tieto uložia do súboru s názvom archiv_<TrezorId>_<SegmentId>.txt (napr. archiv_4_1.txt) v adresári PG_TrezorFilePath a vykoná sa upsert do trezoru, pričom ako zdroj sa použije vzdialená tabuľka (foreign table) mapovaná na tento súbor pomocou PostgreSQL rozšírenia file_fdw.
Adresár PG_TrezorFilePath musí byť dostupný na zápis pre archív aj pre databázu PostgreSQL, preto je tento parameter použiteľný, ak je archív a databáza na tom istom počítači.
Kotva |
---|
| pg_trezorname0 |
---|
| pg_trezorname0 |
---|
|
PG_TrezorName0 - maska pre názov vytváranej trezorovej databázy. Pokiaľ sú zapnuté trezorové segmenty, táto maska sa použije pre segment 0. Prednastavená hodnota je appname_TREZOR_#ID#, kde appname je názov aplikácie a #ID# sa nahrádza číslom trezora.
Napr. pre aplikáciu Test vzniknú trezory Test_TREZOR_1, Test_TREZOR_2, Test_TREZOR_3 atď.
Zadaná maska teda musí obsahovať text #ID#.
Poznámka: ak nevyhovuje prednastavená hodnota, tak treba hodnotu parametra nastaviť pred zapnutím trezorovania. Pokiaľ by bolo potrebné zmeniť hodnotu počas trezorovania, je nutné ručne premenovať všetky už vytvorené trezorové databázy tak, aby boli v súlade s novou maskou.
Kotva |
---|
| pg_trezorname |
---|
| pg_trezorname |
---|
|
PG_TrezorName - maska pre názov vytváraných databáz - trezorových segmentov 1..N. Parameter je použitý iba ak TrezorCountSegments > 0.
Prednastavená hodnota je appname_TREZOR_#ID#_#SEG#, kde appname je názov aplikácie, #ID# sa nahrádza číslom trezora a #SEG# sa nahrádza číslom segmentu.
Napr. pre aplikáciu Test s počtom trezorových segmentov 1 vzniknú trezory Test_TREZOR_1, Test_TREZOR_1_1, Test_TREZOR_2, Test_TREZOR_2_2, Test_TREZOR_3, Test_TREZOR_3_1 atď.
Zadaná maska teda musí obsahovať text #ID# a #SEG#.
Poznámka: ak nevyhovuje prednastavená hodnota, tak treba hodnotu parametra nastaviť pred zapnutím trezorovania. Pokiaľ by bolo potrebné zmeniť hodnotu počas trezorovania, je nutné ručne premenovať všetky už vytvorené trezorové databázy tak, aby boli v súlade s novou maskou. Kotva |
---|
| trezorperiodpg |
---|
| trezorperiodpg |
---|
|
TrezorPeriod - perióda vytvárania trezorov. Udáva sa vo formáte NX, kde N je celé číslo a X udáva časovú jednotku.
Prípustné časové jednotky sú H - hodina, D - deň, W - týždeň, M - mesiac.
Poznámka: Nastavením prázdnej hodnoty alebo hodnoty 0H sa vypne vytváranie trezorových databáz. Kotva |
---|
| trezorcompressofflinepg |
---|
| trezorcompressofflinepg |
---|
|
TrezorCompressOffline - hodnota 1 (prednastavená) znamená, že skomprimovaný trezor bude daný do offline módu. Hodnota 0 znamená, že trezor ostane v read-only móde a dáta budú dostupné na čítanie. Hodnota 2 znamená, že archív nebude do trezoru pristupovať, kým sa vykonáva TrezorPostCompressCmd, takže je možné, aby tento príkaz vykonával rôzne operácie údržby, ktoré by inak mohli archív zablokovať. Kotva |
---|
| trezorcompresstimepg |
---|
| trezorcompresstimepg |
---|
|
TrezorCompressTime - čas určujúci komprimáciu odloženej trezorovej databázy. Počas tohto času je databáza prístupná na zápis oneskorených údajov. TrezorCompressTime musí byť menší ako TrezorPeriod. Kotva |
---|
| trezorcountsegmentspg |
---|
| trezorcountsegmentspg |
---|
|
TrezorCountSegments - počet trezorových segmentov (trezorových tablespace), ktoré trezor paralelne vytvára. Prednastavená hodnota je 0 (vytvára sa jediný segment 0), maximálna hodnota je 99 (vytvárajú sa segmenty 0 až 99). Parameter je typu DWORD !!!. Kotva |
---|
| trezorpostcompresscmdpg |
---|
| trezorpostcompresscmdpg |
---|
|
TrezorPostCompressCmd - názov programu, ktorý sa spustí po odpojení trezoru. Program môže napr. presunúť a zozipovať odpojený trezor alebo pomocou PostgreSQL utility pg_dump vytvoriť dump trezorovej databázy. Kotva |
---|
| trezorpostcompressparpg |
---|
| trezorpostcompressparpg |
---|
|
TrezorPostCompressPar - voliteľný parameter programu TrezorPostCompressCmd. Môže obsahovať ľubovoľný text a preddefinované makrá, ktoré sa nahradia pred spustením programu:- #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#.
rem Target directory for exports
set MyDir=D:\Trezors_export\
rem Set PGPASSWORD to password assigned to postgres user during installation
set PGPASSWORD=MyPostgresPassword
set PATH=%PATH%;c:\Program Files\PostgreSQL\9.5\bin
rem export of table trezors from the archive database
pg_dump -Fc -U postgres -f "%MyDir%\MyApp_arc_trezors.dmp" --table \"trezors\" MyApp.Archiv >> %MyDir%\%1.log
rem permit write access to depository database and cluster the data table
echo alter database "%1" set default_transaction_read_only=false | psql -S -U postgres MyApp.Archiv >> %MyDir%\%1.log
echo alter table data cluster on ix_data_rc | psql -S -U postgres %1 >> %MyDir%\%1.log
echo cluster data | psql -S -U postgres %1 >> %MyDir%\%1.log
rem set access to depository database back to read only
echo alter database "%1" set default_transaction_read_only=true | psql -S -U postgres MyApp.Archiv >> %MyDir%\%1.log
pg_dump -Fc -U postgres -f "%MyDir%\%1.dmp" %1 >> %MyDir%\%1.log