Pervasive / Actian

Pervasiven versio ON OLTAVA VÄHINTÄÄN v11.30. Vanhempia versioita ei tueta.

Tuorein SKJ-versio vaatii vähintään Pervasive version 13:sta.


Sisällysluettelo

Tämän dokumentin tarkoitus on kuvata Pervasiven käyttömahdollisuuksia SKJ-järjestelmäympäristössä.

Pervasive.SQL

Pervasiven tietokanta on periytymää Btrieve -tietokannasta, ja nykyinen uusin versio kulkee numerolla 15. Tuotteen nimi on myös vaihtunut Actian Zen:ksi.

Vanhojen versioiden tuki ei enää jatku, niiden käyttöä voidaan jatkaa, mutta mikäli SKJ-ohjelmisto (jonka ohjelmistokehitys käyttää teknologiakumppaneiden uusimpia työkaluja) päivitetään uusimpaan niin jotkut ominaisuudet saattavat toimia epätäydellisesti.

Yleistä

Pervasiven tietokannat jakautuvat kahteen tyyppiin:

  1. Server / Client
  2. Workgroup

Workgroup -malli on yleisin, ja sen ainoana rajoitteena on käyttäjämäärä, joka on rajoitettu 5 yhtäaikaiseen käyttävään työasemaan/terminal-sessioon.

Server-versio tulee pakolliseksi yli 5 käyttäjän ympäristöissä, maksimimäärää ei käytännössä ole.

Server ja Workgroup -mallit tarvitsevat lisenssin toimiakseen. Client asentuu ilman lisenssiä, koska se käyttää joko Serverin tai Workgroupin lisenssiä.

Lisenssitarpeen laskenta

  • Workgroup -versiota käytetään 1-5 käyttäjän (työaseman) ympäristöissä.
  • Yli 5 käyttäjän ympäristöihin tarvitaan Server -versio.

Otetaan muutama käytännön esimerkki:

  • Kaksi kassaa + taustatyöasema (/palvelin)
    • Tarvitaan taustatyöasemalle 1 kpl 3 käyttäjän lisenssejä. (Käyttäjinä tausta + kassa + kassa).
    • Offline-tilaa varten tarvitaan kassoille 2 kpl 1 käyttäjän lisenssejä. (Käyttäjänä offline-tilassa vain kassa)
  • Yksi kassa (ei taustaa)
    • Tarvitaan kassalle 1 kpl 1 käyttäjän lisenssejä.
    • Offline-tilaa varten ei tarvitse erikseen lisenssejä.
  • Neljä kassaa + palvelin + tausta
    • Myydään Server-versio palvelimelle ja kassoille 4 kpl 1 käyttäjän lisenssejä (offline-tilaa varten).
  • Kaksi kassaa + kaksi taustaa (joista toinen palvelin)
    • Myydään 1 kpl 4 käyttäjän lisenssejä ja 2 kpl 1 käyttäjän lisenssejä.

Asennuksessa huomioitavaa:

  • Kassoille + palvelintaustalle asennetaan Workgroup lisensseineen.
  • Taustakoneelle voidaan asentaa Client-versio (=ilman lisenssiä) tai
    vaihtoehtoisesti Workgroup, mutta ODBC-tyyppinä tulee olla Client (ei
    Engine).


V15 Edut

  • Suorituskyky parannuksia
  • Hallinnointi parannuksia
  • Virallinen tuki Windows 10 IoT Enterprise
  • Virallinen tuki Windows 10, version 20H2
  • Vanhentuneiden käyttöjärjestelmä versioiden poisto virallisesta tuesta (Windows 7 ja Windows 2008 R2)
  • Tarkempi erittely https://docs.actian.com/zen/v15/#page/whnew/whatsnew.htm

V14 Edut

V13 Edut

  • Tuki LIMIT sanalle kyselyssä > Skj server osaa sivuttaa esim isot tuote ja asiakasaineistot
  • Muutamia parannuksia sql syntaksiin (joita tosin ohjelma ei vielä voi hyödyntää koska kentällä paljon v11)
  • Butil -cache komento, voidaan esim palvelimen bootin jälkeen ajaa serverin cacheen tuote ja asiakas taulut
  • tarkempi erittely https://docs.actian.com/psql/psqlv13/index.html#page/whnew%2Fwhatsnew_b.htm%23

V12 Edut 

  • Automattinen defrakmentointi (ei tosin toimi client cachen kanssa, mutta esim virtuaalipalvelimella)
  • Parannuksia ohjelmoijille.

V11 edut

  • Tuki 64-bit käyttöjärjestelmille (Server -versio)
  • Aito moniydintuki (ei varsinaisesti rajoitusta ydinten määrällä, 8 on maksimi testattu määrä)
  • Suorituskyky huomattavasti parempi kuin v10 ja v9
  • Virallinen tuki Windows 7:lle

Palomuuriasetukset

Palomuurista tulee avata normaalien Windows -levyjakojen lisäksi portit

  • TCP/1583
  • TCP/3351

Päivitys uudempaan / vanhempaan versioon

Mikäli halutaan päivittää Pervasiven versio (ns major-versio eli v11-v12, v11-v13 tai v12-v13), toimitaan seuraavan ohjeen mukaan

  1. Varmista, että sinulla on uuteen Pervasiveen oikea lisenssiavain
  2. Sulje SKJ-ohjelmistot
  3. Ota talteen tietokantapolut ja poista tämän jälkeen kaikki tietokantaviittaukset (SKJDB / odbcad32)
  4. Poista vanha Pervasive versio
  5. Käynnistä Windows uudelleen
  6. Asenna uusi Pervasive versio
  7. Määritä tietokannat uudelleen (SKJDB/odbcad32)

Mikäli kyseessä on ns. minor-version päivitys (v11.10-v11.30), voidaan versio päivittää ilman vanhan version poistamista.

Eri tietokanta versiot ja yhteensopivuus

Samassa ympäristössä tulisi pitäytyä samassa Pervasive-versiossa.

Versiot ovat pääsääntöisesti datamuotojen suhteen taaksepäin yhteensopivia vähintään yhden version verran, muutamin poikkeuksin:

  • Versio 9 → eivät osaa kirjoittaa Btrieve 5 -tiedostoja.

On kuitenkin aina järkevää päivittää myös datatiedostot uuteen Pervasive-versiomuotoon Pervasive-päivityksen yhteydessä.

Yhteensopivuudet:
Kuva__PSQL_Compatibility.jpg

  • Pystyriveillä Client -versio, sarakkeissa Server -versio
  • Selvennös:
  • v8 clientilla voit ottaa yhteyttä ainoastaan v8 palvelimeen
  • v9 clientilla voit ottaa yhteyttä sekä v9 että v10 palvelimeen
  • v10 Clientilla voit ottaa yhteyttä sekä v10 että v11 palvelimeen
  • v11 clientilla voit ottaa yhteyttä vain v11 palvelimeen.

64-bittiset Windows-järjestelmät

64-bittiseen ympäristöön asennetaaan Server -tapauksessa 64-bittinen versio, mutta Workgroup/Client-tapauksessa 32-bittinen versio. (32-bittinen ei tue yli 4GB muistin käyttöä)

64-bittisessä ympäristössä tulee ODBC-määritykset tehdä 32-bittisellä ODBC Administrator -työkalulla joka käynnistyy

  • C:\Windows\SysWow64\ODBCAD32.exe

Huom! System32-kansiossa on myös ODBCAD32.EXE mutta se on 64-bittinen.

Lisenssien asennus Workgroupissa ei välttämättä onnistu ilman, että

  1. Pysäyttää Pervasiven Enginen
  2. W3DBSMGR.EXE:n 'Suorita järjestelmänvalvojana' -valinnalla
  3. GUILCADM.EXE:n 'Suorita järjestelmänvalvojana' -valinnalla.

Toimintalogiikka

Pervasive toimii siten, että meidän pitää tietää ensinnäkin missä tietokannat fyysisesti sijaitsevat. Tietokannat voivat sijaita missä tahansa (esim NAS/SAN-palvelimella) mutta tehokkainta on, että tietokannat sijaisevat samalla fyysisellä koneella kuin tietokantapalvelinkin.

Workgroup

Workgroupin toimintalogiikka on lyhykäisyydessään se, että ensimmäisenä tietokantaan yhteyden ottanut tietokone toimii tietokannan palvelimena muille asiakaskoneille.

Käytännössä kuitenkin 5 koneen (ja alle) ympäristöissä on yksi työasema, jonka rooliksi valitaan palvelin, jolla myös tietokantatiedostot sijaitsevat. Palvelin tulee olla luonnollisesti aina päällä kun tietokantaa halutaan käyttää.

Workgroup -asennuksissa palvelinta kutsutaan Pervasiven terminologialla Gatewayksi, jota se siis todellisuudessa onkin, eli reitittää tietokantakutsut oikeaan paikkaan. Palvelinrooli tulee lukita k.o palvelimelle Pervasiven työkalulla, Gateway Locator'lla.

Esimerkkiympäristö/koneet:

  1. SKJSERVER
    1. Asennettu Pervasive Workgroup
    2. Tietokantatiedostot sijaitsevat C:\WINSKJ\FILES
    3. Jaetaan hakemiston WinSKJ
    4. Luodaan tietokanta SKJ, joka osoittaa tietokantahakemistoon
      • Tietokanta luodaan SKJDB.EXE -työkalulla, tietokannan nimeksi siis SKJ ja poluksi C:\WINSKJ\FILES
    5. Lukitaan tietokantahakemiston gatewayksi kone SKJSERVER
    6. Tarkistetaan tietokantahakemiston PVSW.LOC -tiedoston sisältö ja tiedostomääreet (read-only).
  2. Kassa-1
    1. Asennettu Pervasive Workgroup
    2. Tietokantatiedostot sijaitsee tältä koneelta katsottuna \\SKJSERVER\WINSKJ\FILES
    3. Luodaan tietokanta-alias SKJ, jonka poluksi määritellään \\SKJSERVER\WINSKJ\FILES
      • Tietokanta luodaan SKJDB.EXE -työkalulla, ruksaa Pervasive-tietokannasta "Älä käsittele" ja luo tietokanta:
        • Tietokannan nimeksi SKJ ja poluksi \\SKJSERVER\WINSKJ\FILES
    4. Luodaan ODBC-tietokanta SKJ, Pervasive Client -ajurilla, joka osoittaa koneelle SKJSERVER, tietokantaan SKJ.
      1. Käynnistä ODBCAD32.EXE (64-bittisissä järjestelmissä SYSWOW64\ODBCAD32.EXE)
      2. Valitse välilehti System DSN (Järjestelmä DSN)
      3. Paina Add.. (Lisää..), valitse tyypiksi Pervasive Client Interface
      4. Anna tietokannalle DSN-nimi (SKJ)
      5. Kirjoita palvelinkoneen ip tai nimi (SKJSERVER)
      6. Paina Get List..
      7. Valitse oikea tietokanta palvelimelta (SKJ)
      8. Paina OK
  3. Tausta-1
    1. Asennettu Pervasive Workgroup
    2. Tietokantatiedostot sijaitsee tältä koneelta katsottuna \\SKJSERVER\WINSKJ\FILES
    3. Luodaan tietokanta-alias SKJ, jonka poluksi määritellään \\SKJSERVER\WINSKJ\FILES
    4. Luodaan ODBC-tietokanta SKJ, Pervasive Client -ajurilla, joka osoittaa koneelle SKJSERVER, tietokantaan SKJ.
  4. Jne...

Ongelmatilanteet

Jos työasemassa on ollut aiemmin Pervasive-tietokantamääritys voi käydä niin että ODBCAD32.exe:n Get DSN List ei löydä palvelinkoneen tietokantaa.

Voit toimia seuraavasti:

  1. Avaa regedit
  2. Poista HKLM\Software\Pervasive Software\Communications Requester\Version 10\Settings takaa SatEntry-alkuiset rivit
  3. Aseta NumSatEntries arvoon 0
  4. Käynnistä ODBCAD32 uudestaan

Server / Client

Server -ympäristöissä palvelinrooli on mutkattomampi, koska Client ei pysty toimimaan palvelimena (toisinkuin Workgroup).

Server-ympäristössä ei tarvitse lukita Gatewaytä samalla työkalulla kuin Workgroupissa, mutta pitää varmistaa, ettei yksikään Workgroup pääse ns. Engine interfacella kiinni tietokantahakemistoon, jolloin Workgroup voi lukita Serverin pääsyn tietokantaan.

Esimerkkiympäristö:

  1. SKJSERVER
    1. Asennettu Pervasive Server
    2. Tietokantatiedostot sijaitsevat C:\WINSKJ\FILES
    3. Jaetaan hakemisto C:\WinSKJ nimellä WinSKJ
    4. Luodaan tietokanta SKJ, joka osoittaa tietokantahakemistoon.
  2. Kassa-1
    1. Asennettu Pervasive Client
    2. Tietokantatiedostot sijaitsee tältä koneelta katsottuna \\SKJSERVER\WINSKJ\FILES
    3. Luodaan tietokanta-alias SKJ, jonka poluksi määritellään \\SKJSERVER\WINSKJ\FILES
    4. Luodaan ODBC-tietokanta SKJ, Pervasive Client -ajurilla, joka osoittaa koneelle SKJSERVER, tietokantaan SKJ.
  3. Kassa-2 (, jossa Offline-kassatoiminto)
    1. Asennettu Pervasive Workgroup
    2. Tietokantatiedostot sijaitsee tältä koneelta katsottuna \\SKJSERVER\WINSKJ\FILES
    3. Luodaan tietokanta-alias SKJ, jonka poluksi määritellään \\SKJSERVER\WINSKJ\FILES
    4. Luodaan ODBC-tietokanta SKJ, Pervasive Client -ajurilla, joka osoittaa koneelle SKJSERVER, tietokantaan SKJ
    5. Luodaan tietokanta-alias OFFLINESKJ, jonka poluksi määritellään offline-kanta, esim C:\WINSKJ\FILES
    6. Luodaan ODBC-tietokanta OFFLINESKJ, Pervasive Engine -ajurilla, joka osoittaa tietokantahakemistoon C:\WINSKJ\FILES.
  4. Tausta-1
    1. Asennettu Pervasive Client
    2. Tietokantatiedostot sijaitsee tältä koneelta katsottuna \\SKJSERVER\WINSKJ\FILES
    3. Luodaan tietokanta-alias SKJ, jonka poluksi määritellään \\SKJSERVER\WINSKJ\FILES
    4. Luodaan ODBC-tietokanta SKJ, Pervasive Client -ajurilla, joka osoittaa koneelle SKJSERVER, tietokantaan SKJ
  5. Jne...

Nopeutta lisää Cache enginellä

Verkkoympäristössä voidaan työaseman nopeutta lisätä käyttämällä pervasiven Cache Engineä. Tällöin kaikkea tietoa ei noudeta aina serveriltä.
Cachen saa päälle pervasiven control centeristä (pcc.exe) → Configure Microkernel router →  Configure →  Performance tuning →  Use Cache Engine.

On havaittu että jossain tilanteissa (ehkä pelkkä psql client) ei 64 bitisessä windowsissa jää client cahce asetus päälle. Tämän voi puukottaa etsimällä rekisterieditorilla merkkijonoa "Microkernel Router". Kun se löytyy sen alta pitäisi löytyä Versio XX ja sen alla Settings ja sen alla  "Use Cache Engine" arvossa no. Muutetaan arvo arvoon yes ja bootataan kone

Muistinkäyttöasetukset

Oletuksena Pervasive käyttää muistia varsin vähäisesti. Nyrkkisääntönä voi pitää, että tietokannan tulisi saada käyttää muistia yhtä paljon kuin tietokantahakemistossa olevien *.DAT -tiedostojen yhteiskoko on.

Tee muutos järkevään muistinkäyttöön näin:

Dedikoidun tietokantaserveri muistimäärittelyt

Lainaus "Btrieve-Bill":n postauksesta actian forumilta liittyen tietokantapalvelimen muistinmäärittelyyn


Configuring the engine depends on many factors: data file size on disk, disk size of open files, active data pages within each file, overhead present in each file, server memory, and more.

For a dedicated database server, consider reserving 25% for the OS, and then allocating the rest to the database L1 cache, disabling L2 and the System Cache. However, these numbers can change based on the varying factors. A server that is ALSO a file server (or even one that simply houses a lot of log files) may need a large block of free OS memory for file system cache, so this may be too much. A server with 32GB of RAM but only 2GB of database files certainly doesn't need 24GB of memory allocated to the L1 cache, since no more than 2GB would ever possibly be used. A server with 512GB of RAM and a 2TB database might want at least 450GB for the L1 cache. You get the idea....

Varmuuskopiotilasta palautuminen

Jos esim kone tai winskj kaatuu kesken kaiken kun varmuuskopio on päällä, jää varmuuskopio tila päälle. Tällöin pitää pervasive käynnistää uusiksi (jos siis vain winskj kaatunut -ei tietenkään tarvitse jos kone boottattu) ja avat jokainen varmuuskopio tilassa oleva tiedosto. Helpoiten se menee komentoriviltä'

for %i in (files\*.dat) do butil -stat %i

normaalisti tuo riittää.

\programdata\pervasive sql\psql\logs\pvsw.log tiedostoa kannattaa seurata, sinne tulee logimerkintöjä

Tietokantavauriot

Tietokantavauroita voi tulla erinäisistä syistä. "Tietokantavirheitä" ei ole esintynyt vuosiin, mutta ongelmia voi tulle levyrikoista, haittaohjelmista ja levyn täytttymisestiä. Eritoteten levyn täyttyminen kesken varmuuskopion voi tuottaa ongelmia.
tiedosto.skj.fi:ssä SKJUSB kansiosta löytyy Brecover.12002.zip joka on kätevä apuohjelma tiedoston korjaukseen.
esin tehdään identti tyhjäkopio tiedostosta ja sitten korjataan tiedosto

butil -clone ehjatiedosto rikkonainentiedosto
brecover rikkonainentiedosto ehjatiedosto



Client koneella ODBC kannan lisäyskomentoriviltä

Powershelillä voidaan lisätä komentoriviltä odbckanta seuraavasti. Huomioi että jos workgroup pitää olla 32 bittinen powershell. Jos client - katso mikä client versio on. Powershell pitää ajaa admin oikeuksin.

Add-OdbcDsn -Name "MyclientDB" -DriverName "Pervasive ODBC Client Interface" -DsnType "System" -SetPropertyValue @("ServerName=MYDATABASESERVER", "DBQ=DATABASENAME_ON_SERVER")