Vidíte historickú verziu tejto stránky. Pozrite si aktuálnu verziu.

Porovnať s aktuálnou verziou Zobraziť históriu stránky

« Predchádzajúce Verzia 5 Ďalej »

Aplikácia arcsynchro je samostatný program (súbor arcsynchro.exe sa nachádza v inštalačnom adresári v podadresári Bin). Spúšťa sa ručne z príkazového riadku. Na spustenie potrebuje iba informácie o zdrojovej a cieľovej archívnej databáze, ktoré synchronizuje (do cieľovej databázy dopĺňa záznamy zo zdrojovej). Teda nie je potrebný bežiaci proces D2000 Server ani žiadny iný proces systému D2000, iba bežiace databázové servery.
Od verzie systému D2000 v7.01.010 je podporované aj zapisovanie do trezorových databáz (Oracle aj Sybase).
Od verzie systému D2000 v7.01.016 je podporované čítanie z trezorových databáz Sybase, ktoré umožňuje migráciu archívov a trezorov na platformu Oracle.

Obsah



Deklarácia

arcsynchro [voliteľné parametre] source target time_start time_end [id|+id|-id|mask] 
 
arcsynchro [voliteľné parametre] [/TD time_delta] /A source target [id|+id|-id|mask] 
 
arcsynchro [voliteľné parametre] [/TD time_delta] /AN source target
 
arcsynchro [voliteľné parametre] [/TD time_delta] /AX source target [id|+id|-id|mask] 
 
arcsynchro [voliteľné parametre] /A+ source target [id|+id|mask] 
 
arcsynchro /CLD source target


Parametre

/SU source_userMeno užívateľa pre source (potrebné, ak je iné ako štandardné).
/SP source_passwordHeslo užívateľa pre source (potrebné, ak je iné ako štandardné).
/TU target_userMeno užívateľa pre target (potrebné, ak je iné ako štandardné).
/TP target_passwordHeslo užívateľa pre target (potrebné, ak je iné ako štandardné).
source
TNS (ak je source Oracle databáza) alebo DSN (ak je source ľubovoľná databáza prístupná cez nakonfigurované ODBC) archívu, ktorý obsahuje platné archívne záznamy.
target
TNS alebo DSN archívu, v ktorom chýbajú záznamy.
time_startZačiatok časového intervalu, v ktorom sa dopĺňajú chýbajúce archívne záznamy.
time_endKoniec časového intervalu, v ktorom sa dopĺňajú chýbajúce archívne záznamy.
id
Identifikátor (číslo) archívneho objektu, ktorý sa bude synchronizovať. Ak je id=113, tak príslušná archívna tabuľka je DT0000113 (názvy spracúvaných archívnych tabuliek sú vypisované pri behu programu).
+id
-id
+id -id
Identifikátor (číslo) archívneho objektu, od ktorého (+id) resp. do ktorého (-id) resp. v akom intervale (+id -id) prebieha synchronizácia.
Ak je napr. +113, tak sa synchronizujú premenné s HOBJ=113 a vyšším (tabuľky DT0000113, DT0000114 atď.).
Je možné zadať aj interval pomocou +id -id, napr. +1 -999 bude synchronizovať archívne objekty s HOBJ 1 až 999.
Poznámka: Tento parameter sa dá použiť na paralelizáciu synchronizácie archívov (napr. pri napĺňaní archívu) tak, že sa paralelne spustí niekoľko arcsynchro, pričom prvý má parametre +1 -999, druhý +1000 -1999 atď. Aby sa oddelili logy paralelne spustených arcsynchro, odporúčame použiť aj parameter LOGDT.
maskMaska pre názov archivovanej premennej. V maske je možné použiť špeciálne znaky (? *), čím je možné synchronizovať zvolené premenné. Maska nie je citlivá na veľké/malé písmená.

Príklad: maske H11?E* vyhovujú premenné H11_Edo, H11re, h111Element. Nevyhovujú jej premenné H11abEdo, H11Edo, H12_edo

/A

Automatická synchronizácia archívov na základe informácií o dobách výpadkov archívu, ktoré sa nachádzajú v cieľovom archíve (tabuľka ARC_HOLE, od verzie D2000 7.00.031).
Archív pri štarte vytvorí nový záznam v tabuľke ARC_HOLE a počas práce doň pravidelne zapisuje. Štruktúra tabuľky ARC_HOLE je nasledovná:

StĺpecPopis
IdIdentifikátor riadku.
From_time
Začiatok diery v archíve.
To_time
Koniec diery v archíve.
Status
Stav diery:
  • 0 - aktuálna diera (From_time sa stále zväčšuje)
  • 10 - diera v archíve aj trezore (pokiaľ je trezorovanie aktívne), ktorá potrebuje synchronizáciu
  • 15 - diera v archíve potrebuje synchronizáciu, diera v trezore uzavretá (neštandardný stav)
  • 20 - uzavretá diera v archíve, synchronizácia trezora nebola vykonaná
  • 25 - uzavretá diera v archíve aj v trezore
  • 30 - diera, ktorá bola uzavretá, ale pri synchronizácii neboli vložené žiadne hodnoty
  • -1 - blokovaná diera (nebude synchronizovaná)

Pokiaľ sa synchronizuje archív aj trezor, spracované budú diery so Status=10.
Pokiaľ sa synchronizuje iba archív, spracované budú diery so Status=10 alebo Status=15.
Pokiaľ sa synchronizuje iba trezor, spracované budú diery so Status=10 alebo Status=20.
Po úspešnej synchronizácii (ak v zdrojovom archíve nie je diera obsahujúca dieru cieľového archívu a ak je pri synchronizácii vložený aspoň 1 záznam) bude nastavený:

  • Status=15, ak sa synchronizoval iba trezor
  • Status=20, ak sa synchronizoval iba archív
  • Status=25, ak sa synchronizoval archív aj trezor
Ak nebol vložený žiadny záznam, nastaví sa Status=30, aby pri následnom spustení sa arcsynchro nepokúšal stále znovu a znovu synchronizovať tú istú dieru.
/ANRovnaký význam ako /A, ale neopravuje záplatami - skončí po výpise zoznamu dier, ktoré by boli synchronizované. Slúži na zistenie množstva a veľkosti dier, ktoré potrebujú synchronizáciu.
/AXRovnaký význam ako /A, ale Status v tabuľke ARC_HOLE po plátaní diery sa nezmení.
Poznámka: Tento parameter sa dá použiť na synchronizáciu archívov s 3 alebo viacerými inštanciami. Na zaplátanie diery v databáze1 za použitia databázy2 a databázy3 je potrebné spustiť:
arcsynchro /AX databáza2 databáza1
arcsynchro /NU /A databáza3 databáza1
Prvý riadok zapláta dieru v databáze1 dátami z databázy2, ale nechá dieru označenú ako nesynchronizovanú.
Druhý riadok zapláta (iba vkladá údaje, neaktualizuje) dieru v databáze1 dátami z databáz3 a označí dieru ako zaplátanú.
Zvyčajne stačí na plátanie diery jeden príkaz arcsynchro. Uvedený príklad dokáže zaplátať dieru, aj keď databáza2 a databáza3 obsahujú nekompletné dáta (t.j. archívy [2] a [3] mali tiež drobné výpadky počas dlhšie trvajúceho výpadku archívu [1]).
/A+Pre každý archivovaný objekt sa synchronizuje celá jeho časová hĺbka (podľa konfigurácie objektov) až do aktuálneho času. Parameter je použiteľný pri kopírovaní celého archívu do nového archívu. Štandardne sa dá nahradiť vhodne zvolenými time_start a time_end parametrami (time_start musí byť dostatočne ďaleko v minulosti, aby pokryl najväčšiu nakonfigurovanú časovú hĺbku), ale v prípade, že zdrojový archív má vypnuté mazanie hodnôt, by takýto prístup dosynchronizoval aj staré hodnoty.
Poznámka: Konfigurácia je zisťovaná zo zdrojovej alebo cieľovej databázy (viď popis parametra /TAD).
/TD time_delta
Veľkosť okolia diery v archíve, ktoré bude tiež synchronizované.
Pri zápise do archívu môžu prichádzať z komunikácie aj hodnoty so starším alebo novším časom ako je aktuálny. Po výpadku archivačného procesu následne chýbajú aj novšie a staršie dáta z okolia diery. Preto je možné zadaním parametra time_delta nastaviť veľkosť okolia diery (v sekundách), ktoré bude tiež synchronizované. Prednastavené time_delta= 10.
/NUAk sa v cieľovej archívnej databáze hodnota archívneho objektu s konkrétnym časom už nachádza (takže vloženie hodnoty zlyhá), nebude následne hodnota aktualizovaná. Parameter slúži na zrýchlenie synchronizácie, pokiaľ cieľová archívna databáza obsahuje iba diery a nie dáta s inými hodnotami, ako zdrojová databáza.
/UVykoná sa aktualizácia štruktúr tabuliek v archívnej databáze. Pokiaľ je aspoň jedna z tabuliek v archívnej databáze neaktuálna (napr. tabuľky ARCHIV_DEF, ARC_HOLE, UTC_OFFSET), utilita Arcsynchro bez prepínača /U skončí s chybovým hlásením. S použitím prepínača /U sa štruktúra databázy aktualizuje (to ale môže vadiť, pokiaľ by niekto omylom použil nový arcsynchro na opravenie dier v staršej aplikácii, ktorá by potom nebola schopná s upgradovaným archívom pracovať).
/UF
Arcsynchro najskôr vykoná aktualizáciu hodnoty (update). Pokiaľ nie je v dôsledku aktualizácie modifikovaný žiaden riadok, až potom sa vykoná vloženie hodnoty (insert). Parameter je implementovaný iba v ODBC verzii.
Pozn: parameter má zmysel pre archívy na platforme PgSql na minimalizáciu generovania transakčných ID (XID) pri použití DSN s nastavením "Level of rollback on errors" na hodnotu Transaction.
Pozn: pre PgSql od verzie 9.5 je možné na redukciu generovania XID použiť parameter /UP.
Pozn: identickú funkcionalitu v archíve zapína parameter archívu SelectBeforeUI.
/UP
Parameter zapína použitie SQL príkazu "UPSERT" (kombinácia Insert a Update SQL príkazu), ktorý je podporovaný pre databázu PostgreSql od verzie 9.5. V takom prípade bude vkladanie hodnôt do archívu a trezorov realizované pomocou príkazu INSERT .. ON CONFLICT .. DO UPDATE. Parameter je implementovaný iba v ODBC verzii.
Pozn: parameter má zmysel pre archívy na platforme PgSql na minimalizáciu generovania transakčných ID (XID) pri použití DSN s nastavením "Level of rollback on errors" na hodnotu Transaction.
Pozn: pre staršie verzie PgSql ako 9.5 je možné na redukciu generovania XID použiť parameter /UF.
Pozn: identickú funkcionalitu v archíve zapína parameter archívu Upsert.
/PO
Synchronizujú sa iba primárne archívy, nie štatistické ani vypočítané.
/TID tid
Parameter je prípustný iba vtedy, ak je zadaný aj parameter id (synchronizácia dát jedného objektu s konkrétnym identifikátorom).
Vtedy sa hodnoty objektu s identifikátorom id načítané zo zdrojovej databázy vkladajú do cieľovej archívnej databázy do tabuliek objektu s identifikátorom tid. Ak sa synchronizujú dáta do trezorov, tak sa identifikátor objektu id nahradí pri vkladaní do cieľového trezoru identifikátorom tid.
Pozn: Parameter /TID je použiteľný pri spájaní aplikácií a ich archívov, ak dochádza k zmene HOBJ objektov (ID objektu v zdrojovej aplikácii a zdrojovom archíve je iné ako v cieľovej aplikácii/archíve).
/LOGDT
Arcsynchro nebude písať do štandardného logu arcsynchro.log ale do logu s časovou značkou arcsynchro yyyy-mm-dd hh-mi-ss.log. Možnosť použitia - viď poznámka.


Parametre pre trezory

/ST trezor_dsn
DSN zdrojovej trezorovej databázy (iba pre Sybase).
Parameter môže byť použitý iba raz. Parameter implicitne zapína aj parameter /TAD (t.j. z trezorovej databázy sa načítavajú iba hodnoty objektov, ktorých definície sú v cieľovej archívnej databáze).

Poznámka: Ak je použitý parameter /ST, parameter source (DSN zdrojového archívu) bude ignorovaný.

/TT trezor_dsn
DSN cieľovej trezorovej databázy.
Pre cieľovú databázu na Sybase môže byť parameter opakovaný aj viackrát (napr. pre synchronizáciu aktuálnej a predchádzajúcej trezorovej databázy: /TT app.curr_trezor /TT app.prev_trezor).

Poznámka: Ak sa nepodarí otvoriť prvú trezorovú databázu, arcsynchro skončí s chybou. Chyba otvorenia druhej alebo ďalšej databázy je ignorovaná (aby sa umožnilo štandardné použitie s aktuálnym a predchádzajúcim trezorom, pričom predchádzajúci už nemusí byť dostupný).

Pre cieľovú databázu na Oracle má význam iba vtedy, ak sú trezory umiestnené oddelene od archívnej databázy (v opačnom prípade použite parameter /TTO). Preto je možné parameter použiť iba jedenkrát. Užívateľské meno použité pre pripájanie sa k databáze špecifikuje parameter target_user, užívateľské heslo je nastaviteľné parametrom /TTP trezor_password.

/STO trezor_id
Pre zdrojovú databázu na Oracle: synchronizujú sa dáta z trezoru trezor_id. Parameter je použiteľný pre Oracle trezory, ktoré sú umiestnené v tej istej databáze ako archív. Parameter umožňuje naplnenie cieľovej databázy, prípadne trezorov cieľovej databázy (Oracle, PostgreSQL, Sybase) z trezoru Oracle databázy.
Príklady:
/TTO
Pre cieľovú databázu na Oracle: synchronizovať sa majú aj trezory. Parameter je použiteľný pre Oracle trezory, ktoré sú umiestnené v tej istej databáze ako archív. Ak sú trezory vo zvláštnej databáze, je nutné použiť parameter /TT trezor_dsn.
/PTOV cieľovej databáze sa synchronizujú iba trezory, nie samotný archív. Parameter target bude ignorovaný, pokiaľ sa použije parameter /TT trezor_dsn a nepoužije sa parameter /TAD.
/TTP trezor_passwordHeslo na pripojenie sa k cieľovej trezorovej databáze.
/TAD
Arcsynchro použije definíciu archívnych objektov z cieľovej databázy. Štandardne sa používa definícia archívnych objektov zo zdrojovej databázy, tento prepínač je potrebný, ak je nakonfigurovaný v cieľovom Oracle archíve iný počet trezorových segmentov ako v zdrojovom archíve a synchronizujú sa dáta aj do trezorov.
Bez prepínača /TAD by archív ukladal dáta do trezorového segmentu 0 (ak počet trezorových segmentov v zdrojovom archíve je menší ako v cieľovom) alebo by nenašiel trezorový segment, do ktorého má dáta ukladať (ak počet trezorových segmentov v zdrojovom archíve je väčší ako v cieľovom).
/TTPG0 mask0
/TTPGN maskN

Pre cieľovú databázu na PostgreSQL: synchronizovať sa majú aj trezory.
Pokiaľ sa vytvára iba jeden trezorový segment (TrezorCountSegments=0), stačí použiť parameter /TTPG0 mask0, pričom mask0 je hodnota parametra PG_TrezorName0.
Pokiaľ sa vytvára viacero trezorových segmentov (TrezorCountSegments>0), je treba špecifikovať aj parameter /TTPGN maskN, pričom maskN je hodnota parametra PG_TrezorName.

/FM path

Pre trezory na PostgreSQL od verzie 9.5: dáta sa do trezorov nevkladajú cez ODBC, ale vytvorí sa súbor v adresári path, v ktorom budú dáta v textovej forme. Po vložení počtu riadkov, ktorý zodpovedá štartovaciemu parametru /CM (default 1000, ale odporúčame pri použití /FM zvýšiť až na 1000000) sa pomocou PostgreSQL rozšírenia 'file_fdw' vytvorí tzv. foreign table (externá tabuľka) mapovaná na tento súbor a dáta sa vložia do trezoru z nej (upsert).

Tento postup obchádza pomalosť ODBC, ktoré spracúva riadky po jednom. Podmienkou je, aby adresár path bol čitateľný pre PostgreSQL databázu (t.j. arcsynchro musí bežať na tom istom počítači ako databáza).

Použitím parametra /FM sa zrýchlilo načítavanie dát v konkrétnom prípade cca 3-násobne (z 2400 na 7050 riadkov za sekundu).


Iné parametre

/CLD
Kopírovanie obsahu tabuľky LOG_DATA.
Kopírovanie je nutné pri pridávaní novej inštancie archívu do už existujúcej aplikácie alebo pri prechode na novú databázu (napr. pri prechode zo Sybase nižšej verzie na vyššiu, alebo z Sybase na Oracle platformu a opačne). Tabuľka LOG_DATA obsahuje údaje o prechode archívu na monotónny čas a o začiatku zmenovej archivácie. Pokiaľ sa budú do archívnej databázy kopírovať staršie dáta (zo staršej archívnej databázy), je nutné nakopírovať z neho aj obsah tabuľky LOG_DATA a až následne spustiť archiváciu. V opačnom prípade dôjde k zlej interpretácii starých údajov a k ich prípadnému poškodeniu pri prepočtoch.
Kopírovanie obsahu tabuľky LOG_DATA je nutné spustiť pred tým, ako proces D2000 Archiv začne zapisovať do novej archívnej databázy dáta. Doporučený postup je nasledovný:
  1. Vytvorenie novej archívnej databázy (platforma Sybase, MSSQL) alebo archívneho tablespace (platforma Oracle).
  2. Spustenie procesu D2000 Archiv s parametrom /RO (read only). Vytvoria sa tabuľky pre archivované hodnoty, ale nezapisujú sa dáta.
  3. Po skončení vytvárania tabuliek vypnutie procesu D2000 Archiv.
  4. Spustenie:
    arcsynchro /CLD source target,
    source je DSN ukazujúce na starú archívnu databázu s údajmi,
    target je DSN ukazujúce na novú archívnu databázu s prázdnymi tabuľkami.
  5. V tomto bode je možné spustenie procesu D2000 Archiv (začiatok bežnej archivácie do novej archívnej databázy).
  6. Kopírovanie všetkých starých dát zo starého do nového archívu
    arcsynchro source target time_start time_end.
Poznámka: Riadok 'STOP' udávajúci čas posledného zastavenia procesu D2000 Archiv nebude v tabuľke LOG_DATA v cieľovej databáze prepísaný.
/DDDetailné ladiace výpisy.
Po zapnutí parametra budú na obrazovku aj do logovacieho súboru arcsynchro.log zapisované rozšírené ladiace výpisy.
/DC countPo nastavení parametra na nenulovú hodnotu count budú na obrazovku aj do logovacieho súboru arcsynchro.log zapisované písmená 'I' resp. 'U' po vložení (Insert) resp aktualizovaní (Update) count hodnôt v archíve.

Poznámka: Na obrazovke sa výpisy zobrazujú priebežne, v logovacom súbore až po ukončení spracovania jedného archívneho objektu.
/CM count
Commitovanie v archívnej databáze bude po count vložených/aktualizovaných hodnotách. Prednastavená hodnota tohto parametra je 1000.



Popis

Utilita Arcsynchro slúži na synchronizáciu archívnych databáz po výpadku jedného z archívov (target). Pripojí sa k archívnej databáze, ktorá obsahuje údaje (source) a údaje, ktoré sú z časového intervalu <time_start, time_end> skopíruje do cieľového archívu.
Archivované hodnoty, ktoré sa už v cieľovom archíve nachádzajú, sú prepísané (UPDATE).

Od verzie systému D2000 v7.00.031 je podporovaný mód automatickej synchronizácie, ktorá získava potrebný time_start/time_end priamo z archívu (viď popis parametra /A).

Pre verzie 7.01.025 a novšie: formát začiatočného a koncového času time_start, time_end je 'YYYY-MM-DD HH:MI:SS' a je to lokálny čas (čas užívateľa).
Pre verzie 7.01.024 (Release 65) a staršie: formát začiatočného a koncového času time_start, time_end závisí od konkrétnej databázy a operačného systému a priamo sa porovnáva s časmi v archívnej databáze. Pre databázu Oracle sa nastaví časový formát na YYYY-MM-DD HH24:MI:SS.

Po spustení vypisuje Arcsynchro informácie o synchronizácii na obrazovku ako aj do súboru arcsynchro.log v aktuálnom adresári. Tento súbor obsahuje navyše aj informácie o čase spustenia a ukončenia programu ako aj časové pečiatky všetkých oznamov.

Pre platformu Sybase je nutné vytvoriť DSN pre všetky trezory, ktoré sa majú synchronizovať.
Pre platformu Oracle udáva DSN (arcsynchro.exe) alebo TNS (arcsynchro_ora.exe) cieľovú databázu. Synchronizovať sa budú všetky trezory, ktoré sú namontované na zápis (aktuálny, predchádzajúci a staršie, ktoré sú namontované príkazom MOUNT_TREZOR).


Príklad

Databáza Sybase pod Windows:

arcsynchro.exe dbsrvmain dbsrvbackup "2001-03-30 15:00:00" "2001-03-30 15:30:00"

Databáza Oracle:
arcsynchro_ora.exe /SU myapp_archiv /TU myapp_archiv dbsrvmain dbsrvbackup "2004-03-13 10:40" "2004-03-14 03:12:25"

Databáza Oracle so synchronizáciou trezorov:
arcsynchro_ora.exe /TTO /TAD /SU myapp_archiv /TU myapp_archiv /A dbsrvA dbsrvB

Databáza Sybase, synchronizujú sa aj dva trezory (aktuálny a predchádzajúci):
arcsynchro.exe /TT TrzCurr /TT TrzPrev dbsrvmain dbsrvbackup "2004-03-13 10:40" "2004-03-14 03:12:25"

Databáza Oracle, synchronizujú sa všetky dostupné trezory (aktuálny, predchádzajúci a staršie trezory pripojené na zápis):
arcsynchro_ora.exe /TTO /SU myapp_archiv /TU myapp_archiv dbsrvmain dbsrvbackup "2004-03-13 10:40" "2004-03-14 03:12:25"

Kopírovanie dát zo starého Sybase trezoru TrzSrc do Oracle archívu TrzDstArc a do Oracle trezorov v tomto archíve:
arcsynchro /TTO /ST TrzSrc unusedDSN TrzDstArc "2006-07-27 07:00:00" "2006-07-27 08:00:00"

Kopírovanie dát zo starého Sybase trezoru TrzSrc do Oracle archívu TrzDstArc a do Oracle trezorov v tomto archíve, pričom Oracle trezory používajú segmenty (nutný /TAD parameter):
arcsynchro /TAD /TTO /ST TrzSrc unusedDSN TrzDstArc "2006-07-27 07:00:00" "2006-07-27 08:00:00"

Automatické patchovanie archívu a trezorov na PostgreSQL, pričom nie sú použité trezorové segmenty a patchujú sa iba primárne archívy:
arcsynchro /LOGDT /PO /TTPG0 MyAPP_TREZOR_#ID# /A MyApp.Archiv.Arc2 MyApp.Archiv.PG


Návratové kódy

0Úspešné ukončenie programu.
1Chybné parametre programu.
2Chyba pripojenia sa k zdrojovej databáze zadanej parametrom source.
3Chyba pripojenia sa k zdrojovej trezorovej databáze zadanej parametrom /ST.
4Chyba pripojenia sa k cieľovej databáze zadanej parametrom target.
5Chyba pripojenia sa k samostatnej cieľovej trezorovej databáze na platforme Oracle zadanej parametrom /TT trezor_dsn.
6Chyba pripojenia sa k prvej cieľovej trezorovej databáze na platforme Sybase zadanej prvým parametrom /TT trezor_dsn.
7V zdrojovej databáze source bola začatá, ale nebola dokončená konverzia na časové rezy.
8V cieľovej databáze target bola začatá, ale nebola dokončená konverzia na časové rezy.
9Cieľová databáza target nie je na platforme Oracle a použitý bol parameter /TTO.
10Chyba pri čítaní zoznamu trezorov z cieľovej databázy target na platforme Oracle pri použití parametra /TTO.
11Chyba pri čítaní zoznamu trezorov zo samostatnej trezorovej databázy /TT trezor_dsn na platforme Oracle pri použití parametra /TTO.
12Chyba pri zistení parametrov zdrojovej trezorovej databázy zadanej parametrom /ST.
13Chyba pri synchronizácii dát (napr. rozpad spojenia s databázou).


Poznámka 1

Pokiaľ sa arcsynchro.exe (ODBC verzia) používa na prístup k Oracle databáze Oracle9i, je nutné, aby verzia ODBC bola vyššia ako 9.2.0.0 (súčasť inštalácie Oracle ODBC). Verzia 9.2.0.0 obsahuje chyby pri práci s časovými značkami (timestamp) a vracia nulový počet riadkov pre špecifikované časové obdobie, aj keď sa riadky v databáze nachádzajú.

Odporúčame použiť patch na ODBC ovládače 9.2.0.6 a vyššie.

Upozornenie: Oracle patchset 9.2.0.6 (cca 200MB) neobsahuje patch ODBC 9.2.0.6 (cca 2MB), ale je potrebné ho stiahnuť samostatne z web stránok Oracle.


Poznámka 2

Pri použití parametra /A (automatická synchronizácia) sa diera v cieľovej databáze neoznačí ako zaplátaná, pokiaľ bol zadaný parameter id alebo mask. Pokiaľ bol zadaný parameter +id alebo nebola špecifikovaná maska a úspešne prejde synchronizácia, diera v cieľovej databáze sa označí ako zaplátaná (status=20).


Poznámka 3

Ak pri synchronizácii archívov založených na Oracle databáze nastane chyba "ORA-01555 Snapshot too old", je nutné zväčšiť Undo Retention čas v databáze a zopakovať synchronizáciu. Táto chyba môže nastať najmä pri synchronizácii archívoch, ktoré obsahujú veľké štruktúrované premenné.


Arcsynchro spúšťané priamo z archívu


Od verzie 9.00.021 bola v procese D2000 Archiv doplnená možnosť spustiť arcsynchro hneď po štarte a inicializácii archívu. Slúži na to parameter archívu ArcsynchroAuto. Udáva úplnú cestu a parametre buď priamo k utilite arcsynchro alebo k dávkovému súboru (.bat, .cmd), ktorý arcsynchro spúšťa.
Parameter ArcsynchroAuto sa použije, iba ak je archív spustený ako inštančný proces (Pokiaľ nie je, predpokladá sa, že existuje iba jediný archív a nie je odkiaľ ho dosynchronizovať. Konfigurácia systému s redundantnými kernelmi, z ktorých každý má lokálne spustený archív, nie je podporená, pretože je považovaná za nesprávnu.).

Príklady:
C:\D2000\D2000.exe\bin\arcsynchro.exe /PO /A MyApp.Arc2 MyApp.Archiv
C:\D2000\D2000.exe\bin\arcsynchro_ora.exe /PO /TTO /TAD /SU myapp_archiv /TU myapp_archiv /A Arc2 Arc1 (platforma Oracle, aj so synchronizáciu trezorov)

V oboch prípadoch je použitý parameter /PO, aby sa synchronizovali iba primárne archívy, keďže sa neskôr prepočítajú všetky vypočítané a štatistické archívy.
Ešte pred spustením arcsynchro, si archív načíta z databázy zoznam nezaplátaných archívnych dier (záznamy z tabuľky ARC_HOLE, kde Status=10). Po spustení arcsynchro archív periodicky kontroluje, či sa stav týchto riadkov nezmenil.
Pokiaľ sa Status niektorej archívnej diery zmení na hodnotu -1 (blokovaná diera) alebo 30 (do diery neboli vložené žiadne hodnoty), archív si iba vnútorne vymaže dieru zo zoznamu sledovaných.
Pokiaľ sa Status niektorej archívnej diery zmení na hodnotu 20 (synchronizovaná diera) alebo 25 (synchronizovaná aj v trezore), archív urobí tieto činnosti:

  • Zistí si čas začiatku a konca diery (z tabuľky ARC_HOLE) a rozšíri tento interval o ArcsynchroTimeDelta sekúnd (kvôli existencii oneskorujúcich sa hodnôt) na < From_time - ArcsynchroTimeDelta ; To_time + ArcsynchroTimeDelta >.
  • Pre primárne archívy zistí, či boli v diere vložené nejaké hodnoty. Ak áno, vymaže cache primárneho archívu, aby neobsahovala informácie staršie ako koniec diery.
  • Pre vypočítané a štatistické archívy sa takisto vymaže cache a spustí sa prepočet (recalc) za rozšírený časový interval. Pokiaľ bol nastavený parameter archívu ArcsynchroBackground na hodnotu 1, prepočet sa vykoná na pomocnom výpočtovom tasku, inak sa vykoná na hlavnom tasku/taskoch.

Táto funkcionalita umožňuje, aby sa po zaplátaní diery archív korektne "doinicializoval" a pokiaľ boli v diere vložené hodnoty primárnych archívov, dočítal si ich a ďalej s nimi počítal (inak by bral do úvahy iba hodnoty vyčítané pri štarte archívu).

  • Žiadne štítky