Porovnávané verzie

Kľúč

  • Tento riadok sa pridal
  • Riadok je odstránený.
  • Formátovanie sa zmenilo.

...

  • nakopírujte všetky stiahnuté súbory do jedného adresára na cieľovom počítačí (kde je inštalovaný cieľový PostgreSQL)
  • upravte TrezorsTemplate.xlsx:
    • do bunky A3 zadajte meno aplikácie (rovnaké malé a veľké písmená, ako ukazuje D2SMC)
    • v bunke C3 zmeňte meno PostgreSQL tablespace, v ktorom sa vytvoria trezory, ak je iný ako D2000TRZ.
    • v bunke D3 nastavte dátum začiatku prvého trezora (menší alebo rovný dátumu, od ktorého máte k dispozícii Sybase/Oracle trezory)
    • ak potrebujete iné ako mesačné trezory, upravte bunku E5, ktorá definuje časový rozmer jedného trezoru. Týždňové trezory dosiahnete výrazom "=D3+7", desaťdňové "=D3+10", mesačné "=EDATE(D3;1)". Ak ste bunku E5 upravovali, skopírujte ju do všetkých buniek pod ňou, aby mali všetky vytvorené trezory rovnaký rozmer.
  • namnožte riadky (4-57) tak, aby ste mali dostatočný počet riadkov pokrývajúcich aj súčasnosť. Pokiaľ už máte zapnuté trezorovanie (a sú vytvorené napr. 2 trezory za posledné 2 mesiace), tak toto obdobie už pokryť nepotrebujete
  • ak už máte zapnuté trezorovanie, je nutné zmeniť ID-čka existujúcich trezorov tak, aby sme pred ne vložili trezory, ktoré ideme vytvárať. Postup je nasledovný:
    • vypnite archív
    • nástrojom pgAdmin choďte do archívnej databázy, nájdite v schéme public tabuľku trezors a zmeňte ID-čka existujúcich trezorov tak, aby plynule nadväzovali na IDčka starých trezorov, ktoré ideme vytvoriť. 
      Príklad: ideme vytvoriť 50 starých trezorov, v tabuľke trezors sú dáta 4 existujúcich trezorov. Je nutné zmeniť IDčka 1,2,3, 4 na 51, 52, 53, 54, čo možno dosiahnuť SQL príkazom
      UPDATE trezors SET "ID" = "ID" + 50;
    • premenujte v nástroji pgAdmin existujúce trezorové databázy tak, aby mená zrkadlili zmenu IDčiek trezorov (je možné aj SQL príkazmi, napr.
      ALTER DATABASE "myApp_TREZOR_1" RENAME TO "myApp_TREZOR_51";)
    • zapnite archív a overte príkazom LIST_TREZORS, že zmena bola korektná. Zároveň (pokiaľ sa vkladajú dáta aj do najstaršieho trezoru, prípadne dopĺňajú aj do ďalších existujúcich) odporúčame staré trezory odpojiť (ak sú pripojené) a pripojiť ich znovu, tentokrát aj na zápis. Pre príklad vyššie (máme trezory 51 - 54) by bolo treba spustiť príkazy
      DISMOUNT_TREZOR 51 53
      MOUNT_TREZOR 51 53 WRITE
      Trezor 54 je aktuálne používaný a je teda možné doň zapisovať.
  • ak nemáte ešte zapnuté trezorovanie, je nutné vytvoriť tabuľku trezors:
    • nástrojom pgAdmin choďte do archívnej databázy a spustite nástroj Query 
    • vytvorte tabuľku trezors SQL príkazom:

      CREATE TABLE public.trezors
      (
      "ID" integer NOT NULL,
      "TIME_FROM" timestamp without time zone NOT NULL,
      "TIME_TO" timestamp without time zone NOT NULL,
      "STATUS" integer NOT NULL,
      "DATAFILES" integer NOT NULL,
      "TRZ_SEG" smallint
      )
      WITH (
      OIDS=FALSE
      );

    • nastavte vlastníctvo tabuľky trezors užívateľovi dba, ktorého používa archív:
      ALTER TABLE public.trezors OWNER TO dba;

    • vložte do archívnej databázy informáciu o verzie tabuľky trezors:

      insert into tabver ("NAME", "VERSION", "PREV_VER") values ('TREZORS', 2, 1);


  • skopírujte stĺpec F (od riadku 2) do .bat súboru a umiestnite do adresára s inštaláciou PostgreSQL (napr. ). Zdajte heslo užívateľa postgres (prvý riadok riadok  "SET PGPASSWORD=***"). Po spustení dávkového súboru sa vytvoria prázdne PostgreSQL databázy, čo je možné overiť nástrojom pgAdmin.
  • skopírujte stĺpec H (od riadku 3) do okna Query v pgAdmin-e pripojený k archívnej databaze. Do tabuľky trezors sa vložia informácie o vytvorených trezoroch.
    Pozn: pokiaľ sa prvý trezor (v príklade č.1 zmenený na 51) nezačína presne v tom čase, ako končí posledný predchádzajúci trezor v Exceli (č. 50), je možné upraviť čas štartu (TIME_FROM) a posunúť ho do minulosti tak, aby sa zhodoval s časom konca. Napr.  
    update trezors set "TIME_FROM"='2016-04-27 22:00:00' where "ID" = 51
    alebo inteligentnejšie s referenciou na predchádzajúci trezor 50:
    update trezors set "TIME_FROM"=(select "TIME_TO from trezors where "ID" = 50) where "ID" = 51
  • skopírujte stĺpec I (od riadku 3) do .bat súboru a umiestnite do adresára s ostatnými súbormi. Upravte skript OneTrezor.bat - nastavte cestu k psql.exe (set psql=) a heslo pre užívateľa postgres (SET PGPASSWORD=)
  • spustením vytvoreného .bat súboru sa v trezorových databázach vytvoria potrebné tabuľky a naplnia sa
  • ak nebolo trezorovanie zapnuté, je nutné ho nakonfigurovať (minimálne nastaviť parameter TrezorPeriod)
  • teraz je možné vykonať ďalší reštart archívu a následne príkazom LIST_TREZORS overiť, že archív vidí ručne vytvorené trezory (všetky by mali byť prístupné na zápis). 
  • následne je možné utilitou arcsynchro napĺňať trezory.

    Pre Oracle trezory: pre každý Oracle trezor potrebujeme spustiť jedno arcsynchro (parameter /STO x kde x=1,2,3 ... udávajúci zdrojový Oracle trezor)
    Priklad (všimnite si časy od/do, ktoré pokrývajú všetky možné trezory aj s rezervou) kopíruje dáta z trezorov 1 a 2 z trezorov v zdrojovej databáze (DSN=ArcOrig) do trezorov v cieľovej databáze (DSN=SCADA.Archiv):
    arcsynchro /UP /CM 50000 /LOGDT /PTO /STO 1 /TTPG0 SCADA_TREZOR_#ID# /DC 1000 /SU scada_archiv ArcOrig SCADA.Archiv "2000-01-01 00:00:00" "2030-01-01 00:00:00"
    arcsynchro /UP /CM 50000 /LOGDT /PTO /STO 2 /TTPG0 SCADA_TREZOR_#ID# /DC 1000 /SU scada_archiv ArcOrig SCADA.Archiv "2000-01-01 00:00:00" "2030-01-01 00:00:00" 

    (...)
    Pozn: aktuálne verzie arcsynchro podporujú parameter /FM (file mode), ktorý môže migráciu niekoľkonásobne zrýchliť: Adresár špecifikovaný parametrom /FM musí byť prístupný pre užívateľa, pod ktorým je spustený PostgreSQL (NETWORK SERVICE):
    arcsynchro /UP /CM 50000 /FM c:\TEMP /LOGDT /PTO /STO 1 /TTPG0 SCADA_TREZOR_#ID# /DC 1000 /SU scada_archiv ArcOrig SCADA.Archiv "2000-01-01 00:00:00" "2030-01-01 00:00:00" 


    Pre Sybase trezory: pre každý Sybase trezor potrebujeme spustiť jedno arcsynchro. Keďže predpokladáme vytvorenie jediného Sybase DSN (TrzSrc
    zi ), medzi jednotlivými spúšťaniami arcsynchro musíme do databázového súboru špecifikovaného v TrzSrc nakopírovať postupne trezor za trezorom.
    Priklad (všimnite si časy od/do, ktoré pokrývajú všetky možné trezory aj s rezervou) kopíruje dáta z trezorov v zdrojovej databáze (DSN=TrzSrc) do trezorov v cieľovej databáze (DSN=SCADA.Archiv). DSN pre zdrojovú archívnu databázu sa nevyuživa, je nastavené na ľubovolný názov (Unused):
    arcsynchro /UP /CM 50000 /LOGDT /PTO /TTPG0 SCADA_TREZOR_#ID# /DC 1000 /ST TrzSrc  Unused SCADA.Archiv "2000-01-01 00:00:00" "2030-01-01 00:00:00"

    Pozn: aktuálne verzie arcsynchro podporujú parameter /FM (file mode), ktorý môže migráciu niekoľkonásobne zrýchliť: Adresár špecifikovaný parametrom /FM musí byť prístupný pre Windows užívateľa, pod ktorým je spustený PostgreSQL (NETWORK SERVICE):
    arcsynchro /UP /CM 50000 /FM c:\TEMP /PTO /TTPG0 SCADA_TREZOR_#ID# /DC 1000 /ST TrzSrc  Unused SCADA.Archiv "2000-01-01 00:00:00" "2030-01-01 00:00:00"

  • Synchronizáciu je možné aj paralelizovať. V prípade Oracle trezorov je možné spustiť viacero arcsynchro naraz. V prípade Sybase trezorov v zásade tiež, akurát je nutné vytvoriť niekoľko DSN ukazujúcich na niekoľko zdrojových trezorov s rôznym umiestnením na disku. Parameter /LOGDT utility arcsynchro zabezpečí, že každé arcsynchro použije vlastný logovací súbor (s časovou značkou, kedy bolo spustené).

...