3.
ANDMEBAASIADMINISTRAATORI TEGEVUSED JA TÖÖVAHENDID |
|
|
|
3.1.
Andmebaasiadministraatori töö olemus |
|
|
|
Andmebaasiadministraator on oma ametikohutustest tingituna “sunnitud” tegema erinevaid tegevusi. On äärmiselt vale arvata, et andmebaasi administraatori tegevused on seotud ainult administreeritava andmebaasi vahetu häälestamise, kontrollimise (jälgimise), andmestruktuuride, trigerite ja protseduuride muutmise, kasutajate haldamise jms. Andmebaasiadministraatori tegevuste koosseisu kuulub lisaks sellistele tegevustele vee hulgaliselt tegevusi mis ei ole nii vahetult seotud konkreetse andmebaasi või andmebaaside haldamisega. Sellisteks tegevusteks on näiteks enese täiendamine, erinevate metoodiliste plaanide välja töötamine, töögraafikute koostamine, suhtlemine andmebaasisüsteeme tootvate firmadega, kasutajate probleemide väljaselgitamine jne. |
|
|
Andmebaasiadministraatori töö mitmekülgsus |
Olenemata nende tegevuste laiahaardelisusest ja suhteliselt erinevast iseloomust on pea kõigi nende läbi viimisel vaja metoodilist lähenemist ja mingite kindlate vahendite kasutamist. Sõltuvalt tegevuse iseloomust peab tegevuse teostamise vahend tihti olema spetsiaalne programm. Seda just sellistel juhtudel kus tegemist on tegevusega, mis nõuab vahetut suhtlemist andmebaasiga – andmebaasi jälgimine, andmestruktuuride muutmine, andmebaasi häälestamine, protseduuride kirjutamine, kasutajate ja kasutajagruppide haldamine jms. Paljudel juhtudel ei ole siiski nii – on mitmeid tegevusi, mida saab “häda korral” teha ka “paberi ja pliiatsiga”. Ise asi on see, kas seda on ka mõtet teha, kuna näiteks Excel ja Word (või mingid muud kontoritarkvarad) on “paberist ja pliiatsist” mitu korda etemad. |
|
|
Töö tsüklilisus ja metoodilisus Kontoritarkvara kasutamine |
Olenevalt hallatava andmebaasi komplekssusest on andmebaasi haldamise tegevuste teostamisel mõttekas kasutada erineva “võimsusega” vahendid – keeruliste ja mahukate andmebaaside haldamisel peaksid ka haldamise vahendid olema nüansikamad ja komplekssemad ning lihtsamate ja vähemmahukate andmebaaside haldamisel jällegi lihtsamad. |
|
|
Õigete vahendite valik |
Ei ole mingit mõtet raisata raha kalliste haldamisvahendite ostmiseks, kui hallatava andmebaasi on lihtne, väike, vähese kasutajate arvuga, väikese transaktsioonide arvuga ja ei esita mingeid erilisi nõudeid käideldavuse kõrge taseme (high-availability) seisukohalt. Samas kui mõni nendest kirjeldatud keerukuse tasemetest hakkab kas mahtude suuruse või struktuuride keerukuse poolest ületama mingit “taluvuse piiri”, siis tuleb mõelda konkreetse ressursi haldamiseks kas tarkvara ostmist või siis ka ise kirjutamist. Paljudel juhtudel piisab tõepoolest “kriisi” lahendamiseks näiteks mingi väikese Access-rakenduse kirjutamisest. |
|
|
Vahendite valik sõltuvalt teostatavate tööde mahust |
Käesolevas loengumaterjalis vaadeldaksegi andmebaasiadministraatori erinevaid töiseid tegevusi ja analüüsitakse andmebaasiadministraatori vajadusi erineva tarkvara kasutamiseks erinevate andmebaaside administreerimise tegevuste läbi viimisel ja nende tarkvaravahendite “võimsust” sõltuvalt teostatava tegevuse mahukusest või keerukusest. |
|
|
Loengu eesmärk |
Ees pool mainitud “paberi ja pliiatsi” rakendamise näidet ei tasu siiski väga tõsiselt võtta – jah see on küll paljudel juhtudel võimalik, kuid siiski tuleks sellistel juhtudel rakendada mõnda “elektroonilist paberit ja pliiatsit”. See teeb võimalikuks nii mõnegi tegevuse mida tavalise “paberi ja pliiatsi puhul ei saa teha – kindluskoopiad, materjalide võrgus levitamine, materjalide täiendamine mitmest kohast jms. |
|
|
Elektrooniliste vahendite eelistamine |
Selleks et midagi kahe silma vahele ei jääks, vaatleme andmebaasiadministraatori poolt kasutatavaid vahendeid andmebaasiadministraatori oskuste ja tegevuste lõikes. Et midagi olulist andmebaasi administraatori oskuste ja tegevuste hulgas mitte ära unustada, on toodud loendi aluseks võetud raamatus “Oracle Database Administration, The Essential Reference” (David C. Kreines, Brian Laskey). Seda loendit on täiustanud vastavalt omadele kogemustele ka loengukonspekti autor. |
|
|
Oracle Database Administration, The Essential Reference” (David C. Kreines, Brian Laskey). |
3.1. Andmebaasiadministraatori teadmised |
|
|
|
||
Kõik algab teadmistest – selleks et teha oma ametiülesannetega määratud tegevusi peab andmebaasiadministraator oma ma teatavat “kriitilist massi” teadmisi, ilma milleta tal ei ole võimalik omada terviklikku pilti andmebaasidest ja nende administreerimisest. Seda enam aga konkreetse andmebaasisüsteemi konkreetse eksemplari administreerimisest. |
|
|
Kõik algab teadmistest |
||
Kuna andmebaaside administreerimine (eriti suurte – Oracle, Sybase DB2 jms.) on muutunud üha spetsiifilisemaks, siis on siingi valdkonnas levimas spetsialiseerumine. Seepärast on enamik teadmisi konkreetse tootja andmebaasisüsteemi kesksed. |
|
|
Erinevate tootjate andmebaaside administreerimine on täiesti erinev |
||
Minimaalne “komplekt” andmebaasiadministraatori teadmisi on järgmine: |
|
|
Minimaalsed teadmised |
||
|
● |
Andmete modelleerimise põhimõtete tundmine ja andmemudelite kirjelduste (ERD) lugemise oskus |
|
|
ERD lugemise oskus |
|
● |
Andmebaasisüsteemide üldiste põhimõtete tundmine. Klient/teenindaja (Client/Server) arhitektuuri tundmine. |
|
|
Üldised loogikad |
|
● |
Konkreetse andmebaasisüsteemi mälustruktuuride ja andmebaasisüsteemi poolt teostatavate protsesside ning protsessi-loogikate tundmine |
|
|
Mälustruktuuride ja protsessiloogika tundmine |
|
● |
Konkreetse andmebaasisüsteemi loogiliste ning füüsiliste struktuuride tundmine |
|
|
Loogilised ja füüsilised struktuurid |
|
● |
Konkreetse andmebaasisüsteemi häälestusvõimaluste tundmine |
|
|
Andmebaasi häälestamine |
|
● |
DDL (Data Description Language) – konkreetse andmebaasisüsteemi andmekirjelduskeele tundmine. Näiteks CREATE TABLE, CREATE INDEX , CREATE PROCEDURE jms. Korraldused SQL-andmebaasides. |
|
|
Andmestruktuuride kirjeldamine |
|
● |
DML (Data Manipulation Language) – konkreetse andmebaasisüsteemi andmete manipuleerimiskeele tundmine (INSERST-, UPDATE- ja DELETE-lause) |
|
|
Andmetega manipuleerimine |
|
● |
DQL (Data Query Language)– konkreetse andmebaasisüsteemi päringukeele tundmine (SELECT-lause) |
|
|
Päringud |
|
● |
Konkreetse andmebaasisüsteemi protseduur-keele tundmine - trigerite, funktsioonide, pakettide, protseduuride jms. Loomiseks (Näiteks Sybase ja MS SQLServer – Transact-SQL, Oracle – PL/SQL) |
|
|
Protseduur-keelte tundmine |
|
● |
Jaotatud andmebaaside käsitlemise üldiste loogikate ja meetodite tundmine. Replikatsioonide ja MQ-loogikate (Message Queueing) tundmine |
|
|
Jaotatud andmebaasid ja nende vahelised sünkronisatsioonid |
|
● |
Konkreetse andmebaasisüsteemi jaotatud arhitektuuri (distributed architecture) tundmine *) |
|
|
Kasutatavate jaotatud arhitektuuri vahendite tundmine |
|
● |
Andmete lukustusmetoodikate üldise loogika tundmine |
|
|
Andmete lukustamise üldised metoodikad |
|
● |
Konkreetse andmebaasisüsteemi lukustusmehhanismide tundmine |
|
|
Konkreetse toote lukustusmetoodika |
|
● |
Andmebaaside varunduspõhimõtete ja protsessiloogikate tundmine |
|
|
Andmebaaside varundamine |
|
● |
Nende operatsioonisüsteemide tundmine, mille keskkonnas andmebaasisüsteem töötab. Mõistmine, kuidas konkreetne operatsioonisüsteem mõjutab tema keskkonnas töötava konkreetse andmebaasisüsteemi tarkvara toimimist. |
|
|
Operatsioonisüsteemide tundmin |
*) Igal andmebaasisüsteemil ei ole jaotatud arhitektuuri olemas. Alati võib kasutada ka mingi “kolmanda tootja” jaotatud arhitektuuri loomise toodet. Konkreetses rakenduses võib jaotatud arhitektuur ka üldse puududa. |
|
|
|
3.2. Turvalisusega seotud tegevused ja nende realiseerimise vahendid |
|
|
|
Turvalisusega
seotud tegevused võib jagada neljaks suuremaks grupiks –
üldine planeerimine, kasutajagrupide loomine ja nende
õiguste kirjeldamine, kasutajate loomine ja nende
personaalsete õiguste kirjeldamine, kasutajate poolt
tehtavate toimingute seire. |
|
|
Turvatoimingute erinevad liigid |
Üldise
planeerimise alla kuuluvad turvalisusega seotud mudelite ja
metoodikate välja töötamine –
kasutajarollide struktuuri planeerimine, privileegide (õiguste)
süsteemi välja töötamine ja autentimise
strateegia loomine. Loomulikult kuulub selle tegevusvaldkonna
alla ka välja töötatud mudelite
haldamine/muutmine. |
|
|
Kasutajagrupid, kasutajad ja kasutajate tegevuste seire |
Igasugust
planeerimist tuleb alustada mudelite koostamisest – see
tagab loodava süsteemi ülevaatlikkuse ja mis peamine –
jätkusuutliku arengu tulevikus. Planeerimisel on vaja
joonistada nii diagramme kui kirjutada selgitavaid tekste loodud
diagrammide juurde. Seega on siin vajalik nii mõni
diagrammide joonistamise süsteem (näiteks MS Visio) ja
ka tekstitöötlussüsteem (näiteks Word või
Open Office). Millede koostööna vormistatakse
arhitektuuri dokumendid. Oluline on just kasutada diagrammide
joonistamiseks mingit selleks spetsiaalselt ettenähtud
süsteemi, kuna see muudab mudelite haldamise tulevikus
oluliselt hõlpsamaks. |
|
|
Protsesside modelleerimine kui selline |
Õiguste
süsteem on tavaliselt infosüsteemi keskne – igal
infosüsteemil on tavaliselt oma privileegide komplekt, mille
kaudu saab profileerida kasutajagruppide ja kasutajate õigusi.
Tavaliselt ei ole andmebaasiadministraatoritel siin midagi
suuremat planeerida – kogu planeerimise töö on
tehtud ära infosüsteemide loomise käigus. Samas on
pahatihti kogu õiguste süsteemi kirjeldus hajutatud
üle infosüsteemi kirjelduse – iga konkreetset
õiguse määramise võimalust on kirjeldatud
konkreetse funktsionaalsuse juures. Selleks, et mugavalt luua
erinevate kasutajagruppide ja kasutajate õiguste
kirjeldusi on mõtekas luua kasutajaõiguste
teatmikud, kust on lihtne leida ühe või teise õiguse
määramise võimalusi ja piiranguid. Lihtsamatel
juhtudel (väiksemad infosüsteemid) võib
selliseid dokumente luua näiteks hierarhiliste HTML-
lehekülgedena, kus siis on võimalik navigeerida
üldiselt üksikule või siis teha täistekst
otsingut. Keerulisematel juhtudel tuleb loomulikult kasutada
keerulisemaid vahendeid. Turul on siin erinevaid litsentseeritud
ja vabavaralisi produkte. Kui kasutusel on mõni SSO
(single sign-on)
süsteem võin selliseks registreerimiseks kasutada ka
selle süsteemi vahendeid. |
|
|
Õiguste loendid infosüsteemide kaupa |
Selliste
õiguste kataloogide tähendus on väga suur. Siin
saab iga õiguse juurde märkida konkreetses firmas
kehtivad õiguste välja andmise piirangud kuni sinna
maani, et et antud õigust ei anta välja mitte kunagi
mitte kellelegi või siis on see õigus alati kõigil.
Kuna õiguste süsteemid ja andmetele juurdepääsu
piiramine muutavad nii „tänu“ häkkerite
rünnakule kui tööstusspionaaşile üha
olulisemaks, siis andmetele juurdepääsu tagamise ühene
mõistmine kõigi administraatorite poolt on ülimalt
oluline |
|
|
Õiguste süsteemi ühese mõistmise olulisus |
Üldise
planeerimise käigus tuleb luua kasutajagruppide (rollide)
süsteem. Kunagi ei tohi luua kasutaja gruppe „lihtsalt“
töö käigus. See viib lõpuks selleni, et
õiguste „tähendus“ hajub kasutajagruppide
vahele ära ja samade õigustega töötajaid on
võimalik luua kasutades erinevaid rolle. Kasutajagruppide
struktuur tuleb hoida kindlalt kontrolli alla ja iga uue
kasutajagrupi loomisel paigutada see kõige pealt üldisesse
mudelisse ning kontrollida, et ei tekkiks kattuvusi õiguste
süsteemis. Kasutajagruppide mudel tuleks üles
joonistada ka graafiliselt. Siis on see ülevaatlik,
lihtsamini mõistetav ja seega ka oma eesmärki
paremini täitev – võimaldab paremini hallata
kasutajagruppide struktuuri ja vältida n.ö „ülekatteid“
s.o. samatähenduslikke või siis liiga sarnaste
kasutajagruppide tekkimist. Omal kohal on siis nii diagrammide
joonistamise süsteem kui ka tekstitöötlussüsteem. |
|
|
Kasutajagruppide (rollide) planeerimine |
Kasutajagruppe on võimalik kavandada nii ühe infosüsteemi keskselt kui ka laiemalt – mitmete infosüsteemide üleselt. Sellisel juhul on meil vaja n+1 mudelit. Me vajame mudelit iga infosüsteemi kohta eraldi, mis kirjeldatakse selle konkreetse infosüsteemi õiguste komplektidena. Samas vajame me ühte lisamudelit, mis erinevate infosüsteemide mudelid oma vahel ära seoks. Erinevate infosüsteemide rolli-mudelit siduvaks kihiks on tavaliselt ärirollide puu, mis tuleneb otseselt ettevõtte struktuurilisest ja funktsionaalsest ülesehitusest. Erinevate infosüsteemide kasutajagruppide sidumine kõrgemal tasemel tehakse erinevates infosüsteemides kirjeldatud kasutajagruppide sidumisel samade ärirollidega. |
|
|
Infosüsteemi keskne ja infosüsteemide ülene kasutajagruppide planeerimine |
Oluline on omada ka ülevaadet äri-rollidest ja nende omavahelistest seostest. Ka see struktuur tuleb visuaalselt üles joonistada ja kommenteerida. Ilma täpselt ja üheselt ärirolle mõistmata ei ole võimalik moodustad erinevate infosüsteemide kasutajagruppide mudelitest ärikeskseid rolle. |
|
|
Ärirollid vs. kasutajagrupid |
Omaette
keeruline teema on kasutajatele personaalsete kasutajaõiguste
andmine. Tegelikkuses on ideaalne olukord see, kus kasutajatele
personaalseid õigus ei anta vaid nad saavad kõik
oma õigused nendest kasutajagruppidest kuhu nad mingil
konkreetsel hetkel kuuluvad. Seda selle pärast, et kui me
hakkame kasutajatele õigus jagama personaalselt muutub
õiguste süsteem sedavõrd hajusaks, et meil
tegelikkuses kaob kontroll kogu õiguste süsteemi üle
ära. Me lihtsalt ei suuda enam jälgida kelle millised
õigused on. Eriti keeruliseks läheb asi sellel
hetkel, kui töötaja vahetab ametikohta nii, et tema
õiguse muutuvad suures osas. Siis on ju ainuke võimaluis
võtta temalt „käsitsi“ tema „vanad
eriõigused“ ja anda talle „uued eriõigused“. |
|
|
Probleemid kasutajatele eriõiguste andmisel |
Sellel
asjal on kaks suurt miinust. Esiteks on see töö väga
palju aega nõudev ja teiseks on selline käitumine
väga suurte vigade allikas. Vead õiguste süsteemis
maksavad aga ennast karmilt kätte. |
|
|
Töömahukus ja vigade rohkus |
Seega
on kõige parem õiguste skeem selline, kus kõikides
infosüsteemides on kirjeldatud kasutajagrupid ja need on
seotud ärirollidega. Ärirollid võib omakorda
siduda ametikohtadega. Kui nüüd töötaja
vahetab ametikohta, siis koos ametikohaga saab ta oma ärirolli
ja sellest tulenevad ka läbi kasutajagruppide tema õigused. |
|
|
Amet -> äriroll -> kasutajagrupp -> õigused |
Paraku
on aga elu lõpmata mitmekesine ja pinguta kuidas tahad
ikka ei läheb vaja kellelgi anda eriõigusi. Seega
tuleb kirjeldada mõiste eriõigus. Kasutaja eriõigus
on selline õigus, mida kasutaja ei vaja pidevalt vaid
ainult mingil piiritletud ajaetapil. Siit tuleneb ka eriõiguste
andmise kord – eriõigus antakse alati tähtajaliselt
ja selle tähtaja maksimaalne lubatud kehtivusaeg peab olema
piiratud ettevõtte siseste turvaeeskirjadega. Sellise
õiguse vajadusel tellitakse see iga kord uuesti ja lubatud
aja täitumisel kaob see automaatselt. Sellisel käitumisel
ei saa jääda „ripakile“ õigusi,
mille üle meil puudub teadmine ja seega ka kontroll. |
|
|
Kasutajate eriõigused |
Kasutajagruppide
ja nende õiguste kirjeldamise vahendid on tavaliselt
olemas infosüsteemides enestes. Siin peab administraator
jälgima ainult seda, et kõik süsteemides
kirjeldatud õigused ja nende muutused säilitaksid
kusagil oma muutuste ajaloo – ka tagant järele peab
olema võimalik määrata, kellel millised õigused
olid. Kui infosüsteemil enesel puudub õiguste ajaloo
säilitamise mehhanism tuleb see luua mingite väliste
vahenditega. Näiteks on üheks võimaluseks luua
tööandmebaasi kõrvale teine andmebaas, kuhu
trigerite abil kirjutatakse iga õiguste muutumise korral
uued õigused. Kui nüüd tööbaasis on
ainult õiguste jooksev seis, siis selles teises baasis
säilitatakse kogu õiguste muutumise ajalugu.
Infosüsteemi töö seisukohakt pole mitte mingil
juhul vaja hoida õiguste muutumise ajalugu, küll on
seda vaja aga turvaanalüüsi ja tagant järele
„pattude“ tuvastamise vajadusteks. |
|
|
Õiguste muutumise ajalugu, analüüs ja „pattude“ tuvastamine |
Andmebaaside
poole tehtavate pöördumiste seire ja auditeerimine enam
nii lihtsalt ei lähe – kui seda teha ikka tõsisest
vajadusest, siis tuleb siin rakendada ka tõsisemaid
vahendeid. Andmete muutmisi (ISERT, UPDATE DELETE) on logida
suhteliselt lihtne – andmebaasi tuleb lihtsalt kirjutada
trigerid, mis käivituvad andmete muutmise tegevuste peale ja
kirjutavad andmete muutuse lisaks sellele tabelile, kus andmeid
muudeti ka muutuste logisse. Lisades sinna muidugi ka muutuse
tegija ja muutuse kuupäeva ning kellaaja. Asi läheb
veidi keerulisemaks siis, kui muutuse tegijaks ei ole mitte
konkreetne isik vaid mingi protsess. Sellisel juhul tuleb andmete
muutuse juurde lisada protsessi nimi aga võib olla vahel
ka see, kelle töö tulemusena see protsess käivitus.
Selliselt saame me piisava baasi, et teha vajadusel tehtud
muudatuste auditit. |
|
|
Andmete muutuste seire |
Paraku
ei piisa alati ainult muudatuste jälgimisest, sest pea sama
oluline on jälgida andmebaasi poole tehtud päringuid –
andmete mittevolitatud kasutamine päringutes on
konfidentsiaalsete andmete puhul (aga äriandmed on seda
enamuses) sama ohtlik kui nende mitte volitatud muutmine. Seega
tuleb paljudel juhtudel salvestada logidesse ka need päringud,
mis andmebaasi saadeti. Seejuures tuleb jällegi fikseerida
ka kasutaja ja päringu tegemise aeg analoogiliselt sellega,
mis tehti andmete muutuste logimisel. Siin on aga asi juba
oluliselt keerulisem. Pahatihti ei anna üksikute
SELECT-lausete salvestamine terviklikku pilti sellest, mi
tegelikult toimus. Seepärast on olulistes infosüsteemides
päringute salvestamine grupina organiseeritud juba
infosüsteemi enda vahenditega. |
|
|
Päringute jälgimine. |
Võib
vaid arvata, millises mahus sellise seire tulemusena logisid
salvestatakse. Nende läbi vaatamine ei ole üldse väga
lihtne ja mingite triviaalsete vahenditega seda enam teha ei saa.
Siin peab rakendama samu meetodeid ja süsteeme, mida
kasutatakse äriandmete kaevandamisel ja analüüsil
(Näiteks süsteemi SSPS või SAS). |
|
|
Logide analüüs |
Kõikide
turvalisusega seotud tegevuste dokumenteerimise üldiseks
printsiibiks on see, et kõik tehtud muudatused tuleb
dokumenteerida selliselt, et oleks üheselt mõistetav
muudatuse aeg, muudatuse tegija ja muudatuse sisu. |
|
|
KOKKUVÕTE |
3.3. Andmestruktuuride administreerimine |
|
|
|
||
Ühe
kõige vastutusrikkama osa andmebaasiadministraatori tööst
moodustab andmebaasise struktuuride ja sellega kaasnevate
kirjelduste (indeksid, trigerid, protseduurid, paketid,
replikatsioonivahendite häälestamine jms.) loomine ja
muutmine. Laias laastus võib need tegevused jagada kuude
gruppi: |
|
|
Muudatused, millest sõltub kõik ülejäänu |
||
|
|
Andmebaasi
loomine andmemudeli alusel. Tänapäeval on andmebaasi
loomise aluseks suure tõenäosusega mõne
ERD-redaktoriga (ERWin, Power Designer, ERD Studio vms.) loodud
andmemudel. Osa ERD redaktoreid (näiteks ERWin) võimaldavad
võtta ühendust loodud tühja andmebaasiga ja
genereerida andmebaasi struktuuri otse mudelist andmebaasi.
Enamike puhul tuleb siiski mudeli alusel genereerida vastava
andmebaasi mootori jaoks SQL-keele korralduste (DDL
– Data description language)
jada (skript) ja seejärel täita see korralduste jada
mõne SQL-terminal tüüpi programmiga (Näiteks
Oracle puhul on selliseks programmiks SQLPlus.exe ja SQLBase
puhul SQLTalk.exe. |
|
|
Andmebaaside loomine |
|
● |
Andmebaasi
struktuuri muutmine (andmemudeli alusel). Kui esialgselt on
andmebaas loodud ERD-redaktoriga, siis tehakse ka kõik
muudatused selles mudelis. Ka nüüd on olemas osadel
ERD-redaktoritel võimalus viia muudatused otse mudelist
andmebaasi. Seda EI TOHI aga mingil juhul kasutada. Seda selle
pärast, et muudatuste tegemise mehanism nendes süsteemides
on UNIVERSAALNE ja selleks, et mingit muudatust mingis
konkreetses andmebaasis läbi viia võidakse teha
oluline hulk kirjelduste peale ja maha installeerimisi. Kui nüüd
aga keegi on viinud andmebaasi kirjeldusi, mida mudelis ei ole,
siis võib mõni mudeli järgi tehtav muudatus
hävitada baasist ära sellise asja, mida mudelis pole.
Näiteks vaate (view) kustutamisel selleks, et see
luua uuesti ja uue struktuuriga võib mõnedes
andmebaasisüsteemides ära hävitada ka kõik
selle vaatega seotud protseduurid. Kui neid aga mudelis ei ole
siis neid ka pärast vaate uuesti loomist ei taastata. |
|
|
Andmestruktuuride muutmine |
|
|
Samuti
on selline protseduur ohtlik selle pärast, et kui see
protsess millegi pärast katkema paks, siis jääbki
andmebaas „poolikuks“ ja selle taastamiseks on suure
tõenäosusega võimalik seda taastada ainult
varunduskoopiast. See on aga töötavate baaside puhul
väga halb variant, kuna andmebaasi töös tuleb teha
pikem katkestus. |
|
|
Protsessi katkemise oht |
|
|
Õige
on genereerida mudelist andmebaasi muudatuste skript, katsetada
seda kõigepealt test-andmebaasi peal ja kui see õnnestub,
siis käivitada sama skript töö-baasi peal.
Vahendid selle tegevuste gruppi teostamiseks on samad, mis
andmebaaside loomiselgi. |
|
|
Muudatuste haldamine muudatuste skriptide abil |
|
● |
Andmebaasi
seose terviklikkuse reeglite (Referential
Integrity) haldamine. Sisuliselt
tähendab see primaar- ja välis-võtmete (Primary
Key – Foreign Key) paaride ja nendega seotud
protseduuride haldamist, mis moodustavad seosed andmebaasi
tabelite vahel. Seoste kirjeldused ise muutuvad harva – nad
lihtsalt kas tekkivad uute tabelite ja tabelite vaheliste seoste
lisamisel baasi või siis kaovad sealt, kui baasi mudelist
eemaldada seoseid või tabeleid (viimane peaks küll
väga harv juhus olema). Muutuda võivad aga seoste
kirjeldustega seotud protseduurid, mis kirjeldavad seda, millised
piirangud või kaasnevad tegevused täpsustavad seose
toimumist. Selleks kasutatakse tavaliselt konkreetse andmebaasiga
kaasa olevat vahendit. |
|
|
Seose terviklikkuse haldamine |
|
● |
Ärireeglite rakendamine andmebaasi salvestatud protseduuride abil. Andmebaasis talletatud protseduuride muutmine ja sinna uute protseduuride lisamine tehakse tavaliselt konkreetse andmebaasi vahendite komplekti kuuluva SQL-trminal tüüpi programmi abil. |
|
|
Ärireeglite rakendamine |
|
● |
Andmebaaside struktuurimuudatuste registreerimine. Registreerida tuleb viimane kui muudatus, mida andmebaasi struktuuris, protseduurides, vms. Tehakse. Kui muudatusi teha skriptide kaupa, siis piisab, kui need muudatuste skriptid salvestada tähenduslike nimedega kronoloogilises järjestuses selleks ettenähtud kaustade (directory) struktuurile. Lisaks sellele tuleb pidada päevikut käivitatud skriptide, käivitamise aja, käivitaja andmete ja saavutatud tulemuse kirjeldusega (minimaalselt: õnnestus/ ei õnnestunud ja mis päras seda tehti – näiteks; võeti muudatus tagasi). Seda päevikut võib pidada näiteks kas või MS Excelis. Parem variant on siiski see, kui kogu muudatuste tegemine siduda mingi kolmanda osapoole käest ostetud töökäskude süsteemiga, kus keegi koostab muudatuse ülesande, keegi kinnitab selle, keegi teostab töö ja märgib selle teostatuks. See annab parema ülevaate tehtud muudatustest. |
|
|
Andmebaasi muudatuste registreerimine |
3.4. Andmete varundamine ja andmebaaside taastamine |
|
|
|
||
Nii nagu iga teinegi terviklik protsess algab ka varundusprotsessi läbi viimine protsessi planeerimisest. Koostada tuleb järgmised protseduurid ja reeglistikud. Need võib vormistada tavaliste teksti-dokumentidena. |
|
|
Kehtestavatd korrad ja protseduurid |
||
|
● |
Varunduskoopiate
tellimise kord (kes esitab tellimuse, kellele/kuhu esitatakse
tellimus, varunduskoopia tellimusel esitatava kirjelduse
struktuur: mis hetkest alates, kui tihti, ´mis hetkeni,
kust kohast, kuhu kohta, kui kaua säilitatakse jms.) |
|
|
Varunduskoopiate tellimise kord |
|
● |
Varunduskoopia
tegemise kirjeldamise kord (tellimuse vastu võtmine,
varundustegevuse protsesside loomine, tellija teavitamine, jms.) |
|
|
Varundusprotsessi loomise kord |
|
● |
Varunduskoopia
tegemise lõpetamise kord (kes esitab tellimuse kellel/kuhu
tellimus esitatakse, mida kirjeldatakse tellimuses |
|
|
Varunduskoopia tegemise lõpetamise kord |
|
● |
Varunduskoopiate
säilitamise kord (kus, milliseid koopiaid ja kui kaua
hoitakse) |
|
|
Varunduskoopiate säilitamine |
|
● |
Iga konkreetse andmebaasi taastamise taasteplaanide loomine. Andmete varundamine on ainult asja üks pool. Sellel hetkel, kui andmebaas rikneb võib osutuda ainsaks võimaluseks selle situatsiooni lahendamisel, andmete taastamine varunduskoopiast. See kuidas mingi andmebaas riknemise korral taastatakse peab olema eelnevalt läbi mõeldud ja kirja pandud taasteplaanina – kes võtab varunduskoopia ja kust, milliseid tegevusi tehakse enne taastamist, kes taastab baasi, milliseid tegevusi tehakse pärast taastamist.
Taasteplaani
tuleks pärast selle valmimist katsetada, et veenduda selle
paikapidavuses ja et tõelises veasituatsioonis võiks
sellele toetuda 100%-lise kindlusega. |
|
|
Taasteplaanid |
Koos
iga korraga kaasneb ka vastutajate loend – kes mille eest
vastutab. |
|
|
Vastutus |
||
Andmete
varundamine ise viiakse tavaliselt läbi mitte andmebaasi
enda vahenditega vaid kas selleks ostetud või ise loodud
spetsiaalse vahendiga. Suurte infosüsteemide puhul on
kindlasti vajalik mingi spetsiaalselt varundustegevuse toetuseks
loodud infosüsteemi kasutamine. Andmebaaside enda vahendid
võimaldavad enamasti küll varunduskoopiate loomise,
kuid nad ei toeta selle protsessi perioodilisust. Seega kõige
„minimaalsem“ andmebaasides olevate andmete
varundamise vahend on andmebaasi poolt pakutud andmebaasi „välja
laadimise“ funktsionaalsus, mis on seotud läbi
protseduuri skripti mingi kalenderplaaniga, mille alusel
käivitatakse protsesse. |
|
|
Varundamine |
||
Andmete
varundamine on ainult asja üks pool. Sellel hetkel, kui
andmebaas rikneb, ja muud võimalust peale varunduskoopiast
taastamist enam pole, võetakse selle andmebaasi
taasteplaan ja viikase läbi toimingud vastavalt sellele
taasteplaanile. Pärast taastamise lõppemist tehakse
vajadusel muudatusi taasteplaanis. Seda loomulikult juhul, kui
taastamise käigus selgus, et seni kehtinud taasteplaani
järgi ei õnnestunud taastamist läbi viia või
oli seal ebatäpsusi. Selline toimimine tagab taasteplaanide
täpsustumise. |
|
|
Taasteplaanid |
3.5. Tarkvara ülalhoid ja tarkvara toimimise tagamine |
|
|
|
||
Tarkvara ülalhoiuga seotud tegevused võib jagada viide gruppi: |
|
|
|
||
|
● |
Andmebaasisüsteemi ja sellega seotud tarkvara installeerimine ja selle tarkvara uuendamine (patching, upgrade). Siin on kasutatavateks vahenditeks installatsioonipaketid, uuenduste paketid (upgrade) ja paranduste paketid (patch). Oluline on registreerida kõik tarkvara muudatused. Selleks võib kasutada nii elektroonilist şurnaali (minimaalselt kas või Exceli tabelit) või siis ülalpool mainitud töökäskude süsteemi, kus installeerimistööd antakse välja ja märgitakse täidetuks nagu mis tahes iga muu töö. Siin on oluline teada seda, et uuendusi ja (eriti) parandusi ei panda peale kohe siis kui need välja tulevad. Uuendusi paigaldatakse tavaliselt etteantud plaani ja ette määratud intervalli järel. Parandusi paigaldatakse ainult siis, kui need parandavad ära mõne olulise üldise vea või siis kui nad parandavad midagi infosüsteemi toimimise seisukohalt olulist. Iga muudatuse peale panemine on oht infosüsteemi toimimisele ja seepärast tehakse seda ainult tungival vajadusel ja vastavalt kalenderplaanile. |
|
|
Andmebaaside installeerimine, uuendamine ja paranduste paigaldamine |
|
● |
Versioonihaldus
- kõik
installeeritud komponendid ja nende uuendamine (upgrade)
või parendamine (patch)
peavad olema registreeritud vastavas şurnaalis
(Word,
Excel, spetsiaalne versioonihaldustarkvara). On oluline, et kui
sama programm on installeeritud paljudesse kohtadesse, et siis
saaks versiooni vahetusel versioon vahetatud kõigis nendes
kohtades võimalikult lühikese aja jooksul. Igal
ajahetkel peab olema täpselt teada, kus parasjagu milline
versioon installeeritud on. |
|
|
Versioonihaldus |
|
● |
Andmebaasisüsteemi
konfigureerimine (parameetrite väärtustamine) Selleks
kasutatakse tavaliselt konkreetse
andmebaasi
poolt pakutud vahendid või kolmanda osapoole poolt
toodetud spetsiaalvahend (näiteks SQL Navigator). Oluline on
see, et kõik andmebaasi konfigureerimise muudatused tuleb
registreerida selliselt, et nende sisu, tegemise aeg ja teostaja
on tagant järele tuvastatavad. |
|
|
Konfigureerimine |
|
● |
Andmeühenduse
(võrgu) probleemide välja selgitamine ja nende
lahendamise koordineerimine. Nende probleemide lahendamine kuulub
rohkem võrguadministraatorite tegevusvaldkonda, kuid
andmebaasi serveri juures selliste probleemide ilmnemisel peab
andmebaasiserveri administraator aktiivselt osalema probleemide
välja selgitamisel, sest need võivad olla ka tingitud
andmebaasiserveri puudulikust funktsioneerimisest. |
|
|
Võrguhäirete kõrvaldamine |
|
● |
Andmebaasi
startimise ja peatamise parameetrite häälestamine ja
vastavate salvestatud protseduuride loomine. Seda tehakse
tavaliselt serverile installeeritud operatsioonisüsteemi
vahenditega (näiteks Windows puhul Services ja Scheduler
häälestamisega ja käivitusprotseduuride (.BAT või
.CMD) kirjutamisega). |
|
|
Andmebaaside startimine ja peatamine |
3.6. Ressursside haldamine |
|
|
|
||
Ressursside
haldamine sisaldab endast tegevusi mitmest erinevast valdkonnast,
millede kõigi eesmärk on serveri töö
optimeerimine/parendamine ja serveri tõrgeteta töö
tagamine. Need tegevused on kõik väga konkreetse
andmebaasimootori (kaubamärgi) kesksed ja enamikus
kasutatakse nende teostamiseks konkreetse andmebaasi mootori
vahendeid. |
|
|
Ressursside haldamine |
||
|
● |
Indeksite
loomine ja haldamine. Optimaalsest indeksite kirjeldustest
andmebaasis sõltub andmebaasi töö kiirus ja
serveri ressursi kasutamine väga oluliselt – iga
asjatult loodud indeks teeb andmebaasi töö (andmete
lisamise) aeglasemaks ja puudu olev indeks teeb samuti andmebaasi
töö aeglasemaks (andmete pärimine). Seepärast
tuleb jälgida, milliseid indekseid andmebaasis ei kasutata
üldse ja hävitada need ning leida need kohad, kus uue
indeksi lisamine teeb päringu kiiremaks (kohad, kus päringu
teostamisel ei kasutata indeksit üldse või
kasutatakse mingit sobimatut indeksit) ning luua vajalikud
indeksid. See ei ole ühekordne protsess, kuna rakendused
muutuvad kogu aeg ja seega muutub asuure tõenäosusega
ka indeksite vajadus. |
|
|
Indeksite haldus |
|
● |
Füüsiliste
mälustruktuuride eraldamine – tähendab sisuliselt
andmebaasidele kettamälu eraldamist ja serveri operatiivmälu
proportsiooni juhtimist. Esimeselk juhul eraldatakse
andmebaasiserverile kasutamiseks kettamälu andmebaaside
jaoks, logifailide jaoks ja andmebaasisüsteemi
juhtinformatsiooni ja süsteemse informatsiooni jaoks. Teisel
juhul aga lisatakse serverile mälu ja parameetriseeritakse
selle sisemise struktuuri jaotus erinevateks otstarveteks
kasutatavate mälu mahtudena. |
|
|
Füüsilised mälustruktuurid |
|
● |
Loogiliste
mälustruktuuride haldamine on alati rangelt konkreetse
andmebaasisüsteemi (kaubamärgi) keskne.- igal
andmebaasisüsteemil on omad ainult temale omased
mälustruktuurid ja ka vahendid nende haldamiseks on ehitatud
selle andmebaasisüsteemi sisse. Suuremate ja tuntumate
andmebaasisüsteemide (Oracle, Sybase, MS SqlServer jms.)
jaoks leidub ka kolmandate osapoolte poolt toodetud andmebaaside
haldureid, mis võimaldavad hallata pea kõiki (või
siis vähemalt olulisemaid) andmebaasisüsteemi
parameetreid. Enamikul juhtudest kasutatakse sellise
„peenhäälestuse“ jaoks siiski
andmebaasisüsteemide endi poolt pakutavaid vahendeid. Seda
kas või juba selle pärast, et selliseid tegevusi pole
vaja teha eriti tihti ja ka selliseid inimesi, kellel on
teadmisis ja oskusi nende tegevuste tegemiseks, on väga
vähe. |
|
|
Loogilised mälustruktuurid |
|
● |
Andmemahtude
planeerimine. Andmemahtude planeerimiseks on olemas suurepärased
vahendid ERD-redaktorites. Kuna seal on kirjeldatud kogu
andmebaasi struktuur, siis „teab mudel“
suurepäraselt, kui palju kulub andmemahtu ühe kirje
salvestamiseks koos kõigi indeksite ja muude
struktuuridega, mis ühe kirje salvestamisega kaasneb. Kui
nüüd mudelile anda ette tabelite mahtude hetkeseisud ja
kasvutendentsid kuus ning aastas, siis on ERD-redaktor suuteline
välja arvutama andmebaasi suuruse mingiks konkreetseks
etteantud ajahetkeks. Neid arvutustulemusi saab kasutada
kettaseadmete ostude planeerimisel. |
|
|
Andmemahtude planeerimine ERD-redaktori abil |
|
|
Päris
täpselt saab andmemahte ka planeerida andmebaasi
kasvudünaamika jälgimise informatsiooni abil. Kui
Talletada andmebaasipoolt kasutatav kettapinna mahu muutumine
pikema aja jooksul, siis selle arvjada dünaamika alusel on
võimalik suhteliselt täpselt ennustada, milliseid
kettamahte nõuab oma tööks andmebaas tulevikus.
Aastane dünaamika on kuude lõikes erinevates aastates
suhteliselt stabiilne (seda muidugi nii kaua kui ei muudeta
oluliselt kasutatavat funktsionaalsust ja püsitakse umbes
samal äriaktiivsuse tasemel). Kui nüüd kõrvutada
eelmiste aastate andmeid, siis on üpris suure täpsusega
selgitada välja andmebaasi poolt nõutavad kettamahud.
Seda meetodit saab kasutada muidugi ainult siis, kui meil on
talletatud mitme (paari-kolme) aasta kettamahu kasvu dünaamika.
Andmebaasi poolt kasutatavat kettamahtu saab registreerida
andmebaasis eneses kasutades seleks andmebaasisüsteemi enda
poolt pakutud vahendeid. |
|
|
Andmemahtude planeerimine salvestatud statistika abil |
3.7. Jälgimine ja veakäsitlus |
|
|
|
||
Andmebaaside
toimimise jälgimine ja jälgimisest saadava
informatsiooni abil veasituatsioonide ennetamine ning tekkinud
tõrgete kiire ja efektiivne kõrvaldamine on üks
andmebaaside töö tagamise kriitilisi faktoreid. |
|
|
|
||
|
● |
Andmete
lukustuskonfliktide jälgimine/avastamine, diagnoosimine ja
lahendamine. Selle jaoks kasutatakse tavaliselt
andmebaasisüsteemi enda tarkvara ja ka kolmandate osapoolte
poolt toodetud andmebaasida haldamise tarkvara. Siiski on selle
koha peal, kui lukustuskonflikte peaks tekkima palju, luua enda
vahend nende tekkimise jälgimiseks ja automaatseks
kõrvaldamiseks. Igas SQL-andmebaasis on andmebaasi tabeli
kujul olemas kogu informatsioon antud hetkel baasis olevate
lukustuste kohta. Samas on näha selles tabelis ka
lukustuskonfliktid (Death
Lock). Selle tabeli
andmetele tuginedes on võimalik kirjutada
andmebaasiprotseduur, mis jälgib koguaeg selle tabelis sisu
ja lukustusprobleemide tekkimisel valib välja kasutaja,
kelle kelle töö katkestamine lahendab probleemi kõige
parmini ja logib näiteks „jõuga“ selle
kasutaja baasist välja või katkestab tema hetke
tegevuse. |
|
|
Lukustuste jälgimine ja probleemide kõrvaldamine |
|
● |
Andmebaasi
monitoorimine s.o. Järjepideva informatsiooni kogumine
andmebaasi olukorra kohta. Seda nüüd enam väga
lihtsate vahenditega teha ei saa. Siin tuleb selleks kasutada
selleks spetsiaalselt ettenähtud süsteeme (näiteks
HP OpenView, IBM Tivoli vms.) Monitoorimise eesmärgiks on
saada andmebaasi kohta piisavalt järjepidevat ja askjakohast
informatsiooni, sellesk, et analüüsida andmebaasimootor
toimimist ja teha asjakohaseid otsuseid selle muutmise
parendamiseks või probleemide ennetammiseks. |
|
|
Monitoorimine |
|
|
Andmebaasi
monitoorimise oluline osa on andmebaasi jõudlust
iseloomustava informatsiooni kogumine, selle hilisem analüüs
ja analüüsi põhjal andmebaasi konfiguratsiooni
muudatuste otsuste tegemine. Samuti võimmaldab see
aegsasti avastada andmebaasi jõudluse probleeme. |
|
|
Jõudluse monitoorimine |
|
● |
Andmebaasisüsteemi
valmistaja ja müüa poolt pakutavate toetusteenuse
kasutamine. Selle teenuse kasutamise tase tuleb määrata
rakenduse olulisust arvestades. Tavalislet madalama taseme tuge
läbi HTML-dokumentide pakub tarnija tänapäeval
lisateenusena tasuta. Sama pädeb ka erinevate antud
produktiga seotud uudisgruppide ja jututubate kohta. Probleemide
tekkimisel tuleb neid aktiivselt kasutada. Eriti oluliseks ja
tulemust andvaks osutub tihti just „enda taolistega“
vestlemine uudisgruppides ja jututubades – te näete,
et te pole esimene, Kellel selline probleem tekkis. Olulisemate
aplikatsioonide puhul tuleb mõelda teeninduslepingu
sõlmimise peale, milles koosseisus tuleb siis valida kas
telefonikonsultatsioonide võimalus või siis ka
kohale tulemise (on-site)
teenus. |
|
|
Toetusteenuse kasutamine |
|
● |
Vigade
ja nende kõrvaldamise registri pidamine sellisel tasemel,
et oleks võimalik tagant järele tuvastada vea
tekkimise aeg, avastaja, probleemi lahendus, probleemi lahendaja
ja lahenduse teostamise kuupäev. Oluline on pidada seda
registrit selliselt, et uue vea ilmnemisel oleks sellest
registrist võimalik otsida, kas selline viga on ilmnenud
ka varem ja kui on, siis kuhu see viga mõjus ja mida tehti
siis selle vea kõrvaldamiseks. |
|
|
Vigade register |
3.8. Enesetäiendamine |
|
|
|
||
Andmebaasiadministraatori enesetäiendamine peab haarama vähemalt kolme järgmist temaatikat: |
|
|
Enesetäiendamine: |
||
|
● |
Andmebaasisüsteemide
uute metoodikate ja üldiste tehniliste lahendustega enese
kursis hoidmine |
|
|
Uued metoodikad |
|
● |
Andmebaasisüsteemide
kasutamise uute metoodikate ja tarkvaraliste vahendite arenguga
enese kursis hoidmine |
|
|
Vahendite areng |
|
● |
Konkreetse
andmebaasisüsteemi uute arenduste tundma õppimine |
|
|
Kasutatava andmebaasisüsteemi areng |