4. ANDMEBAASIDE TURVAMINE





4.1. Andmebaasid turvamise olemus




Olulisimaks teemaks andmebaaside administreerimisel on andmete turvamine – tuleb tagada, et andmed säiliks, et nad oleksid usaldatavad (õiged) ja et nad oleks kaitstud volitamata kasutamise vastu. Kui need kolm asuja on andmebaaside administreerimise käigus lahendamata muutuvad kõik teised administreerimistoimingud mõttetuks. Samuti muutub mõttetuks kogu seliste andmebaaside kasutamine üldse. Seda selle pärast, et meil on andmed ainult näiliselt olemas ja nende kadu on lihtsalt aja küsimus. Kui parafraseerida Jaapani sõjakunsti käsiraamatut, mis ütleb (see ütlus käib kannatlikkuse kohta) „kui istuda piisavalt kaua jõe ääres, siis ujub lõpuks mööda sinu vaenlase laip“ siis võib rakendamata turbemehhanismiga andmebaaside kohta öelda „kui oodata piisavalt kaua, siis hävinevad andmed lõpuks igas andmebaasis, kus andmeturbe meetmed on rakendamata“. Loomulikult ei ole ka korrektsete andmeturbe meetmetega andmebaasides see oht, et nad riknevad, täielikult kõrvaldatud ja eelnevalt parafraseeritud lauset võik siin kohal parafraseerida natuke teisiti:„kui oodata piisavalt kaua, siis rikneb lõpuks iga andmebaas“. Siin ei saa me aga aga rääkida kuidagi andmete hävinemisest. Seda selle pärast, et korrektselt rakendatud turvameetmetega andmebaasi riknemisel on seal olnud andmed võimalik taastada. See tähendab seda, et riknes küll konkreetne andmebaasi eksemplar (koopia), kuid meie käsutuses on, tänu läbi viidud turvameetmetele, vahendid, mis võimaldavad üles ehitada uue korrektse andmebaasi ja jätkata tööd sealt, kust see pooleli jäi.



Andmebaaside turvamise tähtsus

Loomulikult on „100%-lise efektiivsusega“ andmeturve väga kallis. On kohti kus seda peab rakendama „täie võimsusega“. Samas on aga kohti, kus sõltuvalt tööprotsessi ja andmete iseloomust võib rakendada andmeturbe oluliselt nõrgemat taset. Seejuures on kõikidel juhtudel eesmärgiks tagada tööprotsessi võimalikult väike häirimine, andmete säilimine ja andmete usaldatavus (õigsus). Peamine millega erinevate „võimsustega“ andmeturbe protsesside ja meetodite kehtestamisel „mängida“ saab ongi tööprotsessi normaalse toimimise häirimise tase – andmeturbe protsess peab olema üles ehitatud nii, et andmed ei hävineks ja nende usaldusväärsuse ei kaoks ja et normaalse tööprotsessi taastamise aeg jääks aktsepteeritavatesse piiridesse.



Andmeturbe erinevad tasemed

Süsteemi töövõime taastamise aja planeerimisel võib isegi arvestada sellega, et „õnnetuse“ korral ei säili isegi kõik andmebaasis olevad andmed vaid osa nendest tuleb taastada „käsitsi“. Võtame näiteks väikese firma personali halduse süsteemi. Seal piisab täiesti, kui me varundame andmeid korra ööpäevas, näiteks öösel kell 3:00. Seega kõige suurema andmekadu, mis meil tekkida saab on ühe päeva töö andmed. Kui selles firmas pole ametialaseid liikumisi väga palju võime me täitsa vabalt võtta endale riski teha ühe päeva töö uuesti. Kuna tegemist on toetava funktsiooniga, mis otseselt äritegevust ei mõjuta, siis võime täiesti rahulikult nii käituda.



Andmete taastamine „käsitsi“

Kui me vaatame nüüd sama infosüsteemi mingi tööotsingute kontori seisukohalt, mis osutab lisaks töötajate otsingule ka personaliarvestuse teenust paljudele ettevõtetele, siis midagi sellist me lubada ei saa. Siin on personali infosüsteem äritegevuse aluseks ja iga katkestus toodab kahjumit. Seega peame lisaks iga öistele varunduskoopiatele pidama veel ka andmete muutuste logisid ja tagama nende säilimise sõltumatult töötavast andmebaasist. Sellisel juhul saame me andmebaasi riknemise korral taastada andmebaasi eelmise öö varunduskoopiast ja seejärel lisada sinna muudatuste logi alusel kõik varunduskoopiast saadik andmebaasis tehtud muudatused.



Andmete täielik taastamine

Loomulikult erineb kõrge tasemega andmeturbe maksumus madalama tasemega andmeturbe maksumusest ja need erinevused võivad olla kümneid ja isegi sadu kordi. Seepärast tekkib alati dilemma – kui kõrgele TASUB viia andmeturbe tase. Ega sellel päris ühest vastust ei olegi. Peamised piirid seavad siin ette äriprotsessi iseloom n(võimalikud ärikahjud), eeldatav mingi konkreetse riski ilmnemise tõenäosus ja andmeturbele tehtavate kulutuste (võimalik) suurus. Üldine reegel on see, et andmeturbele ei tohiks kulutada rohkem, kui seda on võimalikud tekkivad kahjud (st kahjude suurus kaalutud nende tekkimise tõenäosusega).



Andmeturbe maksumus

Paraku on tihti nii, et äri iseloom „sunnib peale“ mingid väga ranged andmeturbe meetmed. Heaks näiteks on pank. Tänapäeva pank on 24/7/365 režiimis töötav organisatsioon. Võib öelda, et „keegi töötab kogu aeg“. Kui ka tööpäev on lõppenud, siis toimub läbi internetipankade, makseterminalide ja rahaautomaatide ikkagi aktiivne tegevus. Siin ei ole võimalik mitte kuidagi tingida andmete säilimises – kõik tehingud, mis on tehtud peavad säilima „101%“ kindlusega. Samuti ei ole mitte mingil tingimusel lubatavad sisse murdmised pangasüsteemi. Siin on ka kulude ja nende alusel tehtavate turbetoimingute planeerimine veidi erinev. „Sunnitud“ andmeturbe tasemega firma peab kirjeldama oma tuludes piiri, milleni turbekulud võivad (mitte ei pea) tõusta ja üritama nendes piirides luua nii hea turbe kui võimalik. Kõrgemale kulude tasemele tõustes võib muutuda äri tegemine mõttetuks samuti nagu madala turvatasemelgi



Sunnitud“ andmeturbe tase

Andmete turvamiseks tuleb rakendada 5 erinevat meetmete kompleksi:



Viis andmeturbe meetmete kompleksi


Andmete füüsiline kaitsmine



Füüsiline kaitse


Andmete säilismise tagamine



Säilimise tagamine


Andmetele juurdepääsu tagamine



Juurdepääsu juhtimine


Andmete kasutamise reglementeerimine



Kasutamise reglementeerimine


Andmete õigsuse tagamine



Õigsuse tagamine

Nende viie andmeturbe meetmete kompleksi sisu lahtiseletusele ongi pühendatud käesolev loengumaterjal.



Loengumaterjali sisu

       

4.2. Andmete füüsiline kaitse




Kõik hakkab pihta andmete füüsilisest kaitsest. kui teie andmed ei ole füüsiliselt kaitstud, siis ei ole tähtust, kui palju te panustate ülejäänud nelja meetmete kompleksi, ikkagi jääb teie süsteem haavatavaks. Kui server, kus asuvad teie andmebaasid füüsiliselt ära varastakse siis lähevad kaduma andmed ja olenemata teie teistest turvatoimingutest on vargal võimalik kulutada piisavalt palju aega selleks, et teie andmetele ligi saada ja nad enda jaoks mõistetavaks teha.



Füüsiline kaitse kui kõige alus

Tegelikult on siin tegemist kahe erineva probleemiga. Üks on seotud riistvara „täieliku hävinemisega“ ja seega, isegi kui te olete oma süsteemi suuteline taastama, lisandub taastamise ajale uue riistvara hankimise aeg. Taastama olete te oma süsteemi muidugi sellisel juhul, kui teri varundusseadmed ja meedia olid kusagil mujal, kui varastatud arvuti. Seega võite te olla pärast sedamete vargust „täileikus null-seisus“.



Riistvara „häving“

Teine probleem, millest me juba ka rääkisime on teie jaoks oluliste andmete sattumine teie poolt kontrollitavast piirkonnast välja poole. Seejuures võivad need andmed olla krüpteeritud, hajutatud vms. Aga nende andmete „uuel omanikul“ on piisavalt aega et nende andete „avamisega“ tegeleda – kogu vajalik informatsioon selleks läks kaasa koos andmetega. See kas ta need andmed avab sõltub pigem sellest, kui väga ta neid vajab või tahab.



Andmete kaotamine

Tegelikkuses on andmete ja riistvara võõraste eest füüsiline kaitse ainult füüsilise kaitse üks pool. Tegelikkuses tuleb mõelda ka erinevatele (loodus)õnnetusjuhtumitele. Seda, et lennuk teie majja kukub ja „serveri ära lõhub“juhtub vast harva. Samas on aga erinevate kommunaalsüsteemide rikked üsna sagedased ja seepärast tuleb mõelda serverite (ja seega ka andmebaaside) kaitsele nende eest.



Riistvara häving

Nii näiteks on hea kui serverid ja kettamassiivid saavad toidet UPS-seadmetest. Kuid isegi vaid see ei ole piisav. Seda eriti kettamassiivide korral. Kuna ühegi UPSi autonoomse töö aeg ei ole liiga pikk ja kui see otsa saab lülitub seade ikkagi välja. Kui nüüd ei ole lisatud mingit mehhanismi, mis enne UPSI välja lülitamist lõpetaks kettaseadme töö „normaalse“ seiskamisega, siis võib juhtuda, et äkkväljalülitusel riknevad ketastel salvestatavad struktuurid. Võimsate RAID-seadmete korral (SAN ja NAS), mis normaalses töörežiimis on väga töökindlad ja tagavad andmete säilimise ka üksikute ketaste tõrgete korral, võivad „saba seinast välja tõmbamisel“ käitud väga ettearvamatult. Seega oluline on andmebaasidega seotud seadmete puhul rakendada nn. Smart UPSe, mis suudavad enda poolt hallatavatele seadmetele anda korralduse „normaalseks töö lõpetamiseks“. Ja seda igal juhul, kui tegemist on andmeid hoidva serveriga. Tavalise, mingit rakendust „pööritava“ serveri korral ähvardab teid ka kõige suurema „hävingu“ korrasl peamiselt mingi koguse tarkvara uuesti installeerimine. Andmeid sisaldava serveri puhul võivad teie kaotused olla „igavikulise tähendusega“.



UPS ja sellega seotud probleemid

Nüüd tekkib aga uus probleem – voolu taastumisel seadmed ise käima küll ei lähe. Siit tuleneb mehitatud valve vajadus 24/7/365 süsteemide jaoks, mis toimib 24 tundi ööpäevas. Tase tõuseb.



Mehitatud valve

Veel suuremat ohtu kujutab endast riistvarale veevärk. Seega tuleb, mitte tunda muret, kui uued või vanad on torud serverite läheduses vaid kanda hoolt selle eest, et neid seal poleks. Ja mitte seda, et neid ei oleks serveritega ühes ruumis vaid ka seda, kuidas nad on paigutatud naabruses ja kuidas seal tekkivad kahjud võivad mõjutada serveri ruumi.



Veevärk

Kindlasti tuleb üsna tugevasti mõelda tulekahjuriskide maandamisele Sellesse valdkonda kuuluvad nii tulekindlamate (mitte tulekindlate, sest sellist asja pole olemas) ruumide ehitamine kui ka „riistvarasõbralike“ tulekustutussüsteemide hankimine.



Tuli

Tegelikkuses tuleb vaadata asjale veel laiemalt ja püüda leida üles kõikvõimalikud ja (esialgu) võimatuna näivad ohud ja kõrvaldada need. Selliseks ohuks võib näiteks olla ka naabruses (samas majas?) töötav suure elektritarbimisega ettevõte, akna taga kasvav vana puu, piirkonna seismiline olukord vms.



Ohtude kõike hõlmav analüüs

Kui tegemist on serveritega, milles hoitavad andmed nõuavad kõrgeima tasemega füüsilist kaitset, siis hakkab see mõjutama ka infosüsteemi arhitektuuri. Kuna kõrgematele turbereeglitele vastavate serveriruumide ehitamine ei ole just liiga odav tegevus, siis ´tavaliselt ehitatakse neid vähe. Selle tulemusena koondub kogu andmete salvestamine üksikutesse kohtadesse ja see paneb piirid ka meie võimalustele vabalt vakida infosüsteemi arhitektuurile. Me saame keskenduda ainult nendele mudelitele, kus andmete talletamine toimub tsentraliseeritult.



Füüsilise kaitse taseme mõju infosüsteemi arhitektuurile


4.2.1. Andmete kaitse serveri operatsioonisüsteemi tasemel




Kui serveri riistvara õnnestub kaitsta „raua ja betooniga“, siis serveril olevate andmetega on asi tunduvalt keerulisem. Kuna serveril olevatele andmetele peab ligi saama läbi arvutivõrgu, siis on üsna suur tõenäosus, et andmeid üritatakse rünnata just sealt poolt. Seega andmebaasi serveritle ei tohiks üldse anda kasutajaõigusi serveri kasutamiseks fail-serverina. Enamik kasutatavaid andmebaasisüsteeme ei vaja enda poole pöördumiseks seda, et kasutajal oleksid õigused selles arvutis, kus andmebaas asub. Tavaliselt piisab sellest, kui avada juurdepääsuks andmebaasile operatsioonisüsteemi tasemel mingi port – ülejäänuga saab andmebaasimootor ise hakkama.



Suhtlus läbi avatud pordi


4.2.2. Andmete kaitse tulemüüridega




Selliste andmebaasiserverite kaitseks, mille poole pöördutakse avalikust võrgust, tuleb igal juhul rakendada ka tulemüüre. Sisevõrgus töötavate andmebaasiserverite korral on tulemüüride pigem erandlik. Samas ei tohi seda eriti konfidentsiaalsete andmete puhul sugugi alahinnata.



Tulemüür serveritele avalikus võrgus


4.3. Andmete säilimise tagamine





Andmete säilimise tagamisel on kaks taset nn. off-line ja on-line tase, mis omakorda jagunevad mitmeks tasemeks:



Andmete säilimise tagamise off-line ja on-line tehnoloogias


Off-line 1

Andmete varundamine (backup / restore)



Andmete varundamine


Off-line 2

Andmete varundamine koos varunduskoopiate vahelise andmemuudatuste logide pidamisega



Andmete muutuste logid


On-line 1

Erineva tasemega RAID-kettamassiivide kasutamine



RAID-massiivid


On-line 2

Samas serveriruumis paralleelselt töötavad mitu samades ülesannetes seadet.



Paralleelseadmed


On-line 3

Dubleeritud serveriruumid erinevates, üksteisest piisavalt kaugel asuvates (>5km) geograafilistes punktides.



Dubleeritud serveriruumi

Järgnevalt vaatlemegi neid andmete säilitamise metoodikate erinevaid tasemeid veidi põhjalikumalt, et näidata nende erinevusi ja arutleda nende kasutamise otstarbekuse üle.





4.3.1. Andmete varundamine




Kuna eelnevates loengutes on piisavalt selle protseduuri toimimise seisukohalt, siis piirdume siin ainult sellistel tõikadel, mida on oluline pidada meeles andmeturbe seisukohalt:





Kindluskoopiate tegemine on kohustuslik. Tavaliselt saadakse sellest aru siis, kui esimest korda selgub, et neid koopiaid on vaja. Siis selgub, et neid oleks pidanud tegema hakkama juba siis kui see andmebaas loodi ja käima lasti.



Kohustuslikkus


Kindluskoopiate tegemine peab olema regulaarne ja järjepidev protsess. Neid tuleb teha ettemääratud sagedusega ja see sagedus peab olema planeeritud selliselt, et andmete riknemise korral oleks võimalik andmebaas taastada äriprotsessi minimaalselt võimaliku ja vajaliku häirimisega.



Järjepidevus ja perioodilisus


Kehtestatud peab olema kindluskoopiate tellimise kord. SEDA TULEB TÄITA.



Tellimise korra olemasolu


Aegajalt tuleb teha auditeid, mille käigus kontrollitakse kõigist töötavatest andmebaasidest kindluskoopiate tegemise toimimist. Lisaks selle tuleb kontrollida ka seda, kas need koopiad on ikka kasutatvad. Ei ole mingit kasu kindluskoopiast, mille kasutatavus on meile teadmata ja selle kasutatavus selgub meile alles selle hetkel kui me seda kasutada tahame



Tõestatud kasutatavus


Peavad olema määratud vastutavad isikud varundusprotsessi erinevates etappidele.



Vastutavad isikud


Kindluskoopiate tegemise protsess peab toimima automaatselt, et vältida inimlikku eksitust/unustamist.



Automaatne protsess


Vähemalt üks kindluskoopiate tegemise seade peab olema varus (kas siis enda laos või tarnija juures) selliselt, et põhiseadme riknemisel oleks juba järgmiste kindluskoopiate tegemise ajaks panna uus seade tööle.



Vähemalt üks seade varus


Kehtestatud peab olema kindluskoopiate säilitamise kord - kindluskoopia võib osutuda surimaks turvaauguks . Kindluskoopiad peavad olema valvatud sama kindlalt nagu on valvatud serverid. „vedelema jäänud“ kindluskoopia on üks suurimaid andmete lekkimise riske.



Säilitamise kord


Kehtestatud peab olema kindluskoopiate vananenud andmekandjate hävitamise kord. Kindluskoopiat ei saa lihtsalt minema visata. See tuleb muuta kasutamatuks.



Hävitamise kord


On hea kui kindluskoopiaid ei hoita samas füüsilises kohas kui need seadmed, mille varundamise tulemusena nad on tekkinud. Kui seda tingimust pole võimalik täita tuleks vähemalt üks koopia nädalas viia mujale. Näiteks oma firma teise kontorisse või siis panga deposiitboksi.



Säilitustingimused


Kõik varundatava seadmega samas hoones olevad kindluskoopiad tuleb hoida varundatavast seadmest võimalikult (või siis otstarbekalt) kaugel ja säilitatama kõrgeima tulekindlusega seifis.



Ja vee kord ... säilitustingimused


Kõigi andmebaaside taastamiseks tuleb koostada taasteplaanid selleks, et rikke tekkimisel oleks täpselt teada, kes, mida ja mis ajal peab tegema selleks et taastada andmebaasi töö. Kõiki taasteplaane tuleb katsetada. Iga kriisi järel, kus mingit taasteplaani kasutati, tuleb kriisi likvideerimise järel teha likvideerimise käigus selgunud täpsustused.



Taasteplaanid, taasteplaanid, ...


4.4. Andmetebaaside kasutamise reglementeerimine




Andmebaaside kasutamise reglementeerimisel on kolm erinevat võimalust: horisontaalsete õiguste kirjeldamine, vertikaalsete õiguste kirjeldamine ja funktsionaalsuse kasutamise piiramine. Kuna kõigest sellest on õiguste kirjeldamise juures räägitud põhjalikult, siis siin peatume asjal ainult põgusalt – süsteemse vaate tagamiseks.



Erinevad piirangud

Kõigil andmebaasidel on olemas horisontaalsete õiguste tagamise mehhanismid. See väljendub kasutajate kirjeldamises ning neile süsteemsete ja objekti õiguste andmises (vt loeng nr. 3). Lühidalt kokkuvõtte antakse kasutajatele õigused tegutsemiseks (süsteemsed õigused), mis tähendab õigusi luua ja muuta andmebaasi struktuuri kirjeldusi, protsess ja muid andmebaasis paiknevaid instrumente ja objekti õigused, mis tähendab õigusi erinevatele andmebaasi objektidele (tabelid, vaated, protseduurid) juurde pääsuks. Kui süsteemsed õigused kirjeldatakse kas õiguste keelamise või lubamisena (jah/ei tüüpi õigused), siis objekti õigustel on võimalik kirjeldada objekti struktuurne alamhulk, mida võib kasutada (tabelite ja vaadete puhul veergude loend) ja sinna juurde veel nende kasutamise tase (tabelite ja vaadete puhul kas vaatamime (SELECT), lisamine (INSERT), kustutamine (DELETE), uuendmaine (UPDATE) või siis mõni kombinatsioon nendest.



Horisontaalsed õigused e. Süsteemsed ja objekti õigused

Vertikaalsed õigused ehk õigused andmekomplektide (kirjete) kasutamiseks ei ole üldjuhul nii determineeritud nagu seda on horisontaalsed õigused. Horisontaalsete õiguste mõte seisneb selles, et kõigil kasutajatel ei ole õigus SUDIda (SELECT, UPDATE, DELETE, INSERT) kõiki samas andmebaasitabelis asuvaid andmeid, vaid ainult osasid nendest. Loomulikult on igas andmebaasis väga palju tabeleid, kus kõikidel kasutajatel on õigus vähemalt näha kõiki kirjeid (näiteks erinevad teatmik-tüüpi tabelid).



Vertikaalsed õigused e. õigused kirjete kasutamiseks

On veel kolmaski õiguste reglementeerimise viis so. Õiguste andmine kasutatavale rakenduste funktsionaalsusele. Nende õiguste teostamine ei käi otseselt andmebaasi ülesannete hulka – need õigused realiseeritakse läbi rakenduste. Paraku on need õigused kirjeldatud tavalislet selles samas andmebaasis, mida rakendus kasutab oma tööks. Nende õiguste edukas või ebaedukas haldamine võib olla tõsiseks põhjuseks andmebaasiga töötamise takistamisel. Siin pole küll tegemist enam töövõime takistamisega vaid teise väga olulise teguri mõjutamisega, mille nimi on andmebaasi kasutatavus. See on küll üks osa andmebaasi serverite käideldavusest ei puuduta aga otseselt andmebaasi töövõimet.



Funktsionaalsed piirangud


4.5. Andmetele juurdepääsu tagamine




Andmebaaside turvamine ei tähenda ainult andmebaasides olevate andmete kaitsmist erinevate füüsiliste ja loogiliste meetoditega kõikvõimaliku hävimise ja rünnakute vastu ning kasutajate õiguste piiramist nende tegelike ametialaste volitustega. Andme turve tähendab ka andmete kasutamise võimaluse tagamist kõigile kasutajatele, kellel selleks on volitused ja protsessidele, mis seda vajavad. Kõikidel eelnevalt kirjeldatud turbe meetoditel on mõte ainult siis, kui kõik kellel selleks on volitused ja kes seda vajavad saavad ka tegelikult kasutada eesmärgi päraselt neid kaitstavaid andmeid. Selle aluseks on juurdepääs andmetele. Andmetele juurdepääsu tagamise meetmed puudutavad andmetele juurdepääsu tagamise tehnilisi aspekte – servereid, serveritele installeeritud tarkvara, andmesalvestusseadmeid ja andmetele juurdepääsu kanaleid ehk arvutivõrku.



Juurdepääs andmetele


4.5.1. Serverite haldamine




Serverite puhul saame rääkida riistvara töövõime ja adekvaatse jõudluse tagamisest. Töövõime ja jõudlus on küll omavahel tihedalt seotud asjad, kuid omavad täiesti erinevat tähendust. Andmebaasi serveri töövõime all mõeldakse serveri riistvara võimet teha tööd so. hoida pidevalt ilma tõrgeteta töös serverile installeeritud tarkvara võtta vastu läbi kanalite tulnud teateid ja saata kanalitesse teateid. Serveri töövõimele ei saa jääda lootma st. ei piisa sellest, kui me ostame uue riistvara ja jääme siis ootama päeva, millal see töö lõpetab. Serveri töövõimet tuleb pidevalt monitoorida. Tavaliselt hakkab riistvara enne „lõplikku lagunemist“ andma ajutisi tõrkeid, mis ilma monitoorimiseta ei pruugi silmagi paista. Kui aga teostada riistvara pidevat seiret, siis on selliseid pisitõrkeid võimalik aegsasti märgata, selgitada välja nende põhjused ja võtta tarvitusele meetmed nende põhjuste kõrvaldamiseks.



Serveri töövõime ja selle monitoorimine

Serveri töövõime ei ole seotud ainult rikete ja nende kõrvaldamisega. Serveri töövõime tagamiseks muutuvas maailmas on vaja mõni kord tarvis teha muudatusi ka siis, kui serveril enesel otseselt midagi viga polegi. Kuna kõigi serverite põhiülesandeks on pakkuda läbi võrgu teenust kasutajatele, siis sõltub serveri töövõime üsna suurel määral tema „ühilduvusest väliskeskkonnaga“ so. Arvutivõrgu tehnilise seadmestikuga ja teiste arvutivõrgus olevate seadmetega. Nii võib näiteks arvutivõrgu konfiguratsiooni muutmine kutsuda esile vajaduse teha muudatusi ka serveri konfiguratsioonis. On halb, kui välise keskkonna olulisi muudatusi ei panda õigel ajal tähele ja serveri töövõime saab seetõttu häiritud.



Serveri töövõime ja tehnilised muudatused

Server võib olla täiesti töövõimeline aga siiski võib olla probleeme selle kasutamisega, kuna serveri jõudlus ei pruugi vastata teenindavate kasutajate töötlusjõudluse vajadustele. Jõudluse probleemid väljenduvad kasutajate ooteja pikkuses ja teenindavate protseduuride täitmise ajas. Lihtsalt öeldes - kasutajad peavada ootama vastuseid oma toimingutele liiga kaua ja teenindavad protseduurid täituvad liiga kaua. Kasutajate ooteaeg on suurtes piirides peamiselt emotsionaalne näitaja ja sõltub suuresti kasutajate harjumusest. Kui näiteks kasutajad on harjunud saama vastuseid oma päringutele umbes 1 sekundiga, siis 2 sekundine ooteaeg ei ole veel probleemiks. Kui vastused hakkavad saabuma 5 sekundiga ei ole seegi veel võib-olla väga suureks probleemiks. Kui aga vastuste ooteaeg jõuab 10 sekundini hakkavad kasutajad täiesti kindlasti nurisema. Kui aga olid kusagil mingid kasutajad, kelle harjumuslik ooteaeg on kogu aeg olnud ca 20 sekundit ja seda vähendada 10-le sekundile, siis nende jaoks toimub oluline töökeskkonna paranemine ja nad on oma 10-ne sekundi üle väga rõõmsad. Teenindavate protseduuride puhul on asi hoopis konkreetsem. Teenindav protseduur täidab mingit konkreetset ülesannet. Oma olemuselt on neid kahte sorti – ühed mis käivituvad kalenderplaani alusel (nn. patch-protsessid) ja teised, mis käivituvad kasutaja mingi tegevuse tulemusena. Kui teiste puhul on tegemist sisuliselt kasutaja ooteaega mõjutavate toimingutega siis siis esimese ei mõjuta seda kuidagi. Nende puhul on kriteeriumiks puhtalt täitmiseks kuluv aeg ja see, kas nad suudavad oma töö sellise kiirusega ära teha, et nad ei häiri süsteemi teiste komponentide tööd. See tähendab näiteks seda, et kui meie infosüsteemis on sellised tööd, mis tuleb ära teha öösel kella 24:00-st kuni 6:00-ni, siis serveri jõudlus peab olema selline et ta tõepoolest jõuab selle ajavahemiku sees ära teenindada kõik vajalikud protsessid. Kui mitte, siis tuleb läbi viia serveri ümberehiustööd või server välja vahetada.



Jõudlusprobleemid

Kuidas siis probleemi lahendada. Milline on see piir, millal peaks hakkama mõtlema serveri jõudluse tõstmisele? Patch-protsesside puhul on see piir suhteliselt kergesti määratav – kui protseduuride täitmise aeg hakkab lähenema kriitilisele piirile siis tulebki seda teha. Seejuures ei tohi oodata „viimase piirini“ vaid kõike seda tuleb teha piisava ajavaruga, et mitte lasta seda kriitilist piiri tõepoolest üle minna. Näiteks panga puhul võib tähendada see, kui öösel ei jõuta kõiki vajalikke protsesse ära teha, et panka ei saa hommikul õigel ajal lahti teha ja ka internetipangad jäävad seisma. Kogu sellise jõudluse haldamise aluseks on muidugi serverite töö monitoorimine.



Jõudluse haldus batch-protsesside korral

Nagu eel pool mainitud, on kasutajate ooteaja pikkus suhteliselt emotsionaalne asi, aga emotsioonidele süsteemide administreerimist üles ehitada on võimatu. Kasutajate ooteaja pikkus peab olema ette määratud tööprotsessi iseloomu alusel st., et infosüsteemi loomise käigus tuleb määrata, milline tohib olla kasutaja maksimaalne ooteaeg. Edaspidi tuleb vaid seda monitoorida ja määratud piirile lähenemisel tuleb teha serverite parendustöid, et viia tegelik olukord vastavusse kehtestatud normidele.



Jõudluse haldus kasutajate vajadustest / mugavusest lähtudes


4.5.2. Kettamassiivide haldus




Kettamassiivide tehnilise töövõime ja jõudluse kohta kehtib kõik see sama, mis serverite puhulgi. Tegelikult ongi ju siin tegelikult tegemist eriotstarbeliste serveritega, mille ülesandeks on anda võrgu kasutusse andmesalvestusseadmed. Nende töövõimet ja jõudlust tuleb monitoorida analoogiliselt serveritega. Tegelikkuses tulebki süsteemi vajalikku jõudlust monitoorida kompleksselt üle serverite ja nende poolt kasutatavate kettamassiivide selleks, et aru saada, kus tekkivad jõudluse probleemid (kus on pudelikael), kas serveris või kettamassiivis.



Serveri jõudlus vs. kettamassiivi jõudlus

Salvestusmahtude haldamisel on jällegi peamiseks „relvaks“ kasutatud mälumahtude monitooring – vaba kettamahu ammendumine viib kogu süsteemi töövõime kohe nulli. Kuna teada on maksimaalselt kasutatav kettamälu maht ja kui teada kasutatud mälumahu muutumist, siis on selle põhjal võimalik välja arvutada mälu ammendumise tendents ja seega ennustada ka üsna täpselt seda, millal praegusel hetkel vaba mälu maht ammendub. Seega piisavalt vara, et jõuda piisava ajavaruga suurendada mälumahte, tuleb alustada uute seadmete valiku ja hanke protsessi.



Salvestusseadmete mahu ammendumise mõju süsteemi töövõimele

Salvestusseadmete puhul ei tohi ära unustada nende, võrreldes teiste seadmetega, kriitilist vananemise protsessi. Tänapäeval on endiselt (juba ca viimased 50 aastat) andmebaaside salvestamisel kasutatavad seadmed on kõvakettad ja nende massiivid. Need, nagu teada, sisaldavad aga kiiresti pöörlevaid osi. Mis aga pöörleb see kulub. Kõikide selliste seadmete puhul on teada nende keskmine eluiga. Sellest lähtuvalt tuleb iga kettaseadme ostmisel planeerida juba ette ka tema välja vahetamise aeg, mitte jääda ootama, milla ta laguneba hakkab.



Kettasedamete kulumisest tulenevad toimingud


4.5.3. Andmebaasiserverite tarkvara haldus




Andmebaasiserveri tarkvara töövõime tagamine on üks osa serveri enda töövõime tagamisest – kui serveri riistvara on töövõimelina ja seda on ka serveri tarkvara siis on ka server töövõimeline. Andmebaasiserveri tarkvara töövõimelisuse monitoorimine on sama oluline kui riistvara monitooriminegi – me ei saa lootma jääda, et see töötab nö „iseenesest igavesti“ pärast seda kui see on käivitatud. Andmebaasiserveri tarkvara (mootori) töö monitoorimiseks tuleb teha etteantud ajavahemiku tagant andmebaasi poole pöördumisi ja kontrollida nende edukust. Nõrgema monitooringu korral tuleks teha (Read Only (Isolation Level 0) režiimis) kontrollpäringuid kogu töö seisukohalt olulistesse tabelitesse. Seejuures peab vaatama seda, et päringud poleks serverile liiga koormavad – pole ju mõtet koormata serverit maha testpäringutega. Tugevama monitooringu korral peaks üritama ka andmebaasi andmeid salvestada. Seda selle pärast, et pärimise ja kirjutamise mehhanismid on täiesti erinevad ja takistused nendele tekkivad täiesti erinevatel põhjustel. Kirjutamise testi jaoks tuleks aga teha just ainult selleks ettenähtud andmebaasitabelid.



Andmebaasiserveri mootori monitoorimine: lugemine ja kirjutamine

Oluline asi, mida peab monitoorima andmebaasimootori korral on kettapinna kasutamine st. vaba kettamälu mahu kahanemine. Miks peab seda siin eraldi tegema, kui seda sama tehakse juba kettamassiivide halduse käigus nii või teisiti? Seda selle pärast, et andmebaasiserveri mootori poolt hallatav kettamaht on tavaliselt ainult osa selle kettamassiivi kogu mahust. Seega võib füüsilisel kettal olla veel ruumi piisavat samas kui andmebaasimootorile eraldatud vaba kettapinna maht hakkab ammenduma.



Vaba kettapinna mahu kahanemise monitoorimine

On veel üks oluline asi, mida andmebaasiserverite juures tuleb monitoorida – see on operatiivmälu kasutus. Kui operatiivmälu vajadus ületab selle olemasoleva mahu siis hakkab toimima selline protsess nagu swapimine – st. mälust kirjutatakse ketastele need osad, mida serverisl just sellel hetkel oma töötegevuse täitmiseks vaja ei ole selleks, et vabastada mälu nende protsesside jaoks, mis just hetkel täituvad. Järgmisel hetkel aga vajavad mällu laadimist just need asjad, mis eelnevalt olid ketastele salvestatud, sest nendega seotud protsesside täitmise aeg jõudis kätte. Kettale salvestatakse aga ajutiselt peatatud protsesside andmed jne. See võtab tohutult aega ja serveri jõudlus langeb järsult. Seega kui sellised situatsioonid ei ole etteennustatavad ja ennetavate tegevustega kõrvaldatud muutuvad kõik muud serveri jõudluse tõstmiseks tehtavad administreerimsitegevused mõttetuks.



Operatiivmälu kasutuse monitoorimine

Mitmete suuremate ja keerulisemate andmebaasisüsteemide puhul on oluline ka kasutatava operatiivmälu sisemise struktuuri muutumise monitoorimine. Seda tehakse tavaliselt selle sama andmebaasisüsteemi vahenditega ja tulemusi kasutatakse konkreetse andmebaasimootori häälestamiseks. See on tavaliselt suureks abiks tarkvara häälestusest tingitud jõudlusprobleemide lahendamisel.



Andmebaasi mootori poolt kasutatav operatiivmälu sisemise struktuuri monitoorimine


4.5.4. Kanalite haldamine




Kanalite, st. arvutivõrgu, haldus on oma iseloomult sarnane serverite riistvara haldusega – kehtib kõik see sama, mis serverite riistvara puhulgi.



Arvutivõrk – spetsiifilise funktsiooniga riistvara aga ikkagi vaid riistvara

Monitoorida tuleb töövõimet ja jõudlust (läbilaske võimet). Viimast on vaja analüüsida koos serverite ja kettamassiivide jõudlusega selgitamaks välja, et ega jõudluse pudelikaelaks pole hoopis äkki kanalite läbilase. Ei pea vist enam lisama, et probleemide avastamisel tuleb neile leida lahendused :)



Kanalite läbilaske võime vs. serverite ja kettamassiivide jõudlus

Kuna kanalite riknemisel muutub kogu andmebaasi teenus kätte saamatuks, siis on kanalite monitoorimine üsna tähtis. Seda mitte selleks, et avastada, et kanal on „maha kukkunud“. Sellest annavad meile teada kasutajad kohe, kui nad enam tööd teha ei saa. Oluline on avastada kanalites esinevaid tõrkeida ja tegeleda nende kõravaldamisega selliselt, et vältida tõrgete kuhjumisel tekkivaid kanalite töö täielikku peatumist või siis olulist läbilaske võime vähenemist.



Kanal kui olulise tõrke allikas


4.6. Kokkuvõte: tulemus - andmete õigsuse (usaldatavuse) tagamine




Loomulikult oleks võinud selle peatüki kirjutada ka käesoleva loengu algusesse näidates kõigepealt ära eesmärgi ja seejärel hakata kirjeldama selle saavutamise teid. Paraku on on asja sisulist olemust kirjeldada palju lihtsam kui tema struktuursed komponendid on üheselt mõistavad. Seepärast ongi kokkuvõte sellele loengule kirjutatud kui saavutatud tulemuse kirjeldus. Tegelikult ei erine ju saavutatud tulemus karvavõrdki püstitaud eesmärgist, kui tulemus vastab eesmärgile.

.


Eesmärk vs. tulemus

Miks on oluline andmebaasides olevate andmete õigsuse/usaldusväärsuse tagamine? Aga selle pärast, et kui andmebaasides hoitavad andmed pole usaldusväärsed, siis muudab see mõttetuks kõik nende andmetega seotud protsessid. See kui me ei saa andmeid usaldada on oluliselt halvem situatsioon, võrreldes sellega, kui meil on andmeid puudu aga olemasolevaid võime me usaldada. Esimesel juhul, kui meie tegevused baseeruvad mitteusaldatavatel andmetel, on kõigi meie tegevuste tulemused mitte-usaldusväärsed. Seejuures ei ole teada selle mitteusaldatavuse määr. Teisel juhul, kui meil on küll andmeid vähem, kuid olemasolevad andmed on usaldusväärsed, on meie tegevuse tulemused mitte võib-olla nii täielikud aga samas täiesti usaldusväärsed.



Andmete usaldatavus

Püüame anda sellele lühikese põhjenduse. Infotöötluse eesmärk on andmete muutmine informatsiooniks, sest (äri)protsesside juhtimises tekkivatele küsimustele on võimalik vastata ainult siis, kui omada informatsiooni ja teadmisi, kuidas seda informatsiooni kasutada eksisteerivate probleemiude/ülesannete lahendamisel. Andmeid on võimalik informatsiooniks muuta (lisades andmetele konteksti) ainult siis, kui need andmed on olemas, kui on teada, millised andmed on olemas, kui vajalikele andmetele on tagatud juurdepääs ja kui andmed on usaldusväärsed.



Andmete muutmine informatsiooniks

Andmed vs. Informatsioon

Kui nüüd vaadata seda viimast lauset, siis siin on kaetud kõik aspektid, mida käsitlesime ülal pool.




On siiski üks andmete usaldatavuse tagamise meetod, millest me rääkinud pole. Me võime kaitsta oma andmebaasiservereid turvaruumidega, teha varunduskoopiaid, piirata kasutajate õigusi – ikkagi jääb oht, et kasutaja teeb oma õiguste piires midagi lubamatud. See tähendab seda, et kasutatakse oma volitusega lubatud tegevusi tehakse aga midagi sellist, mida ei tohiks teha selleks, et näiteks teenida ebaseaduslikku tulu. Samuti on võimalikud pahatahtlikud andmebaasides asuvate andmete rikkumised. Lisaks sellele on suur osa tegevusi, millest andmebaasi ei jää maha ühtegi märki. Nendeks on kõikvõimalikud raportid, mille pahatahtliku kasutamise tulemusena võib informatsioon firmast välja lekkida.



Volituste ületamine volituste piirides

Selliste asjade vähendamiseks on ainult üks võimalus. Andmebaasid tuleb projekteerida sellise struktuuriga, et saeal kirjutatakse andmeid üle nii vähe kui võimalik ja füüsilist andmete kustutamist igapäevase töö käigus ei tehta. Andmete üle kirjutamise asemel suletakse „ebavajalikuks muutunud“ andmed kuupäevaga ja kirjutatakse uus aktiivne kirje koos muutunud andmetega andmebaasi märkides selle kehtivuse alguskuupäeva. Andmete füüsilise kustutamise asemel tuleb ka need sulgeda kustutamise (kehtetuks tunnistamise) kuupäevaga. Kõikidesse kirjetesse kirjutatakse andmete looja ja sulgeja tunnus. Lisaks sellele logitakse ka kõiki tehtud tegevusi kasutajate lõike sekundilise täpsusega. Seda kõike tuleb kombineerida töölepingu tekstiga, kus peaksid olema kirjas nii jälgimise fakt, kui ka sanktsioonid tööreeglite rikkumise eest töös infosüsteemi ja andmetega



Andmete ja tegevuste logimine



Töölepingu osatähtsus

Sellega koos peab käima kasutajate teavitamine sellest, et kõikidest andmebaasis tehtud tegevustest (ka andmete pärimisest) jääb ajalugu maha. Kui inimene teab, et ilma märki maha jätmata ei õnnestu tegevusi teha, siis suure tõenäosusega ta seda ka ei tee.



Jälgimisest teavitamine

Nüüd on võimalik logidele panna peale jälgimise ja analüüsi süsteem, mis etteantud mustrite järgi püüab avastada infosüsteemi väärkasutusi. Kui nüüd peaks selguma, et keegi on midagi kuritegelikku või pahatahtlikku teinud (see võib selguda nii analüüsisüsteemi töö tulemusena kui lihtsalt kaastöötajate tähelepanekute tulemusena), siis saab nii andmete muutuse ajaloost, kui tegevuste logidest täpselt järele uurida, mis toimus. Seejuures ei saa me teada ainult kes ja mida tegi vaid meil on andmete muutuste ajaloos ja tegevuste logis kirjas kõik vajalik selleks, et taastada andmete usaldusväärsus.



Rünnete tagajärgede kõrvaldamine

Rünnete avastamisel ja süüdlaste leidmisel on mõistlikkuse piires (mitte liialt seda üle dramatiseerides) anda sellest teada organisatsiooni töötajatele. See parandab üldist turvalisust. See võib osutuda vahel ja mõnedes ettevõtetes problemaatiliseks, sest sellise info levimine väljaspoole ettevõtet võib oluliselt kahjustada ettevõtte ärihuve. Sellisteks ettevõteteks on näiteks pangad, kindlustusseltsid, investeerimisfondid jms. ettevõtted, mis tegelevad klientide varade haldamisega.



Töötajate teavitamine rünnetest