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.
Alasivut
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:
Server / Client
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.
HUOM → SKJDataserver / server tarvitsee 1 lisenssin / yhtäaikainen client. ← HUOM
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
Virallinen tuki Windows 10
Data Export Utility
AUTOTIMESTAMP
Vain luku DSN mahdollisuus ODBC-yhteyksille
Tarkempi erittely https://docs.actian.com/zen/v14/#page/whnew/whatsnew.htm
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
Varmista, että sinulla on uuteen Pervasiveen oikea lisenssiavain
Sulje SKJ-ohjelmistot
Ota talteen tietokantapolut ja poista tämän jälkeen kaikki tietokantaviittaukset (SKJDB / odbcad32)
Poista vanha Pervasive versio
Käynnistä Windows uudelleen
Asenna uusi Pervasive versio
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ä
Pysäyttää Pervasiven Enginen
W3DBSMGR.EXE:n 'Suorita järjestelmänvalvojana' -valinnalla
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:
SKJSERVER
Asennettu Pervasive Workgroup
Tietokantatiedostot sijaitsevat C:\WINSKJ\FILES
Jaetaan hakemiston WinSKJ
Luodaan tietokanta SKJ, joka osoittaa tietokantahakemistoon
Tietokanta luodaan SKJDB.EXE -työkalulla, tietokannan nimeksi siis SKJ ja poluksi C:\WINSKJ\FILES
Lukitaan tietokantahakemiston gatewayksi kone SKJSERVER
Tarkistetaan tietokantahakemiston PVSW.LOC -tiedoston sisältö ja tiedostomääreet (read-only).
Kassa-1
Asennettu Pervasive Workgroup
Tietokantatiedostot sijaitsee tältä koneelta katsottuna \\SKJSERVER\WINSKJ\FILES
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
Luodaan ODBC-tietokanta SKJ, Pervasive Client -ajurilla, joka osoittaa koneelle SKJSERVER, tietokantaan SKJ.
Käynnistä ODBCAD32.EXE (64-bittisissä järjestelmissä SYSWOW64\ODBCAD32.EXE)
Valitse välilehti System DSN (Järjestelmä DSN)
Paina Add.. (Lisää..), valitse tyypiksi Pervasive Client Interface
Anna tietokannalle DSN-nimi (SKJ)
Kirjoita palvelinkoneen ip tai nimi (SKJSERVER)
Paina Get List..
Valitse oikea tietokanta palvelimelta (SKJ)
Paina OK
Tausta-1
Asennettu Pervasive Workgroup
Tietokantatiedostot sijaitsee tältä koneelta katsottuna \\SKJSERVER\WINSKJ\FILES
Luodaan tietokanta-alias SKJ, jonka poluksi määritellään \\SKJSERVER\WINSKJ\FILES
Luodaan ODBC-tietokanta SKJ, Pervasive Client -ajurilla, joka osoittaa koneelle SKJSERVER, tietokantaan SKJ.
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:
Avaa regedit
Poista HKLM\Software\Pervasive Software\Communications Requester\Version 10\Settings takaa SatEntry-alkuiset rivit
Aseta NumSatEntries arvoon 0
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ö:
SKJSERVER
Asennettu Pervasive Server
Tietokantatiedostot sijaitsevat C:\WINSKJ\FILES
Jaetaan hakemisto C:\WinSKJ nimellä WinSKJ
Luodaan tietokanta SKJ, joka osoittaa tietokantahakemistoon.
Kassa-1
Asennettu Pervasive Client
Tietokantatiedostot sijaitsee tältä koneelta katsottuna \\SKJSERVER\WINSKJ\FILES
Luodaan tietokanta-alias SKJ, jonka poluksi määritellään \\SKJSERVER\WINSKJ\FILES
Luodaan ODBC-tietokanta SKJ, Pervasive Client -ajurilla, joka osoittaa koneelle SKJSERVER, tietokantaan SKJ.
Kassa-2 (, jossa Offline-kassatoiminto)
Asennettu Pervasive Workgroup
Tietokantatiedostot sijaitsee tältä koneelta katsottuna \\SKJSERVER\WINSKJ\FILES
Luodaan tietokanta-alias SKJ, jonka poluksi määritellään \\SKJSERVER\WINSKJ\FILES
Luodaan ODBC-tietokanta SKJ, Pervasive Client -ajurilla, joka osoittaa koneelle SKJSERVER, tietokantaan SKJ
Luodaan tietokanta-alias OFFLINESKJ, jonka poluksi määritellään offline-kanta, esim C:\WINSKJ\FILES
Luodaan ODBC-tietokanta OFFLINESKJ, Pervasive Engine -ajurilla, joka osoittaa tietokantahakemistoon C:\WINSKJ\FILES.
Tausta-1
Asennettu Pervasive Client
Tietokantatiedostot sijaitsee tältä koneelta katsottuna \\SKJSERVER\WINSKJ\FILES
Luodaan tietokanta-alias SKJ, jonka poluksi määritellään \\SKJSERVER\WINSKJ\FILES
Luodaan ODBC-tietokanta SKJ, Pervasive Client -ajurilla, joka osoittaa koneelle SKJSERVER, tietokantaan SKJ
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")
temppasswd virhe user taulusta skjdbupdate jälkeen
Todennäköisesti skjdbupdate ei ole voinut tehtä päivityksiä kantaan, tarkasta log. Jos siinä puhutaan upper.alt:sta (invalid ACS ) niin ao scriptien pitäisi auttaa.
select * into utmp from "user" ;
SET TRUENULLCREATE = OFF ;
drop table "user" ;
SET TRUENULLCREATE = OFF;
CREATE TABLE "User" IN DICTIONARY USING 'USER.DAT' (
"Nimi" LSTRING(20) NOT NULL COLLATE 'UPPER.alt',
"Salasana" LSTRING(20) NOT NULL,
"Kokonimi" LSTRING(40) NOT NULL,
"Varalla2" SMALLINT NOT NULL,
"Super" UTINYINT NOT NULL,
"Myyja" INTEGER NOT NULL,
"SuljettuAsInt" UTINYINT NOT NULL,
"Salasanavaihdettu" DATE NOT NULL,
"SalaSanaHash" VARCHAR(100) NOT NULL,
"Ryhma" INTEGER NOT NULL,
"Webkaytto" LOGICAL NOT NULL,
"Varalla" LSTRING(25) NOT NULL,
"muutospvm" DATE NOT NULL,
"muutosklo" TIME NOT NULL,
"sahkoposti" VARCHAR(128) NOT NULL,
"luontipvm" DATE NOT NULL,
"luontiklo" TIME NOT NULL,
"temppasswd" INTEGER NOT NULL,
"temppasswdvalid" TIMESTAMP NOT NULL);
SET TRUENULLCREATE = ON;
CREATE UNIQUE INDEX "key0" IN DICTIONARY ON "User" (
"Nimi" );
CREATE INDEX "key1" IN DICTIONARY ON "User" (
"Myyja" );
CREATE INDEX "iryhma" IN DICTIONARY ON "User" (
"Ryhma" );
Nyt meilä on tietokantakuvauksessa taulu, mutta fyysinen taulu puuttu. saat sen tästä
kun olet purkanut tuon datin yrityshakemistoon, varmista että se on ok.
select * from "user" ;
jos ok palauta käyttäjä
Testaa ok selectillä.