TIETOKANNANHOITAJA DBA (DATABASE ADMINISTRATOR) JA TIETOKANNAN HALLINTA JOUNI HUOTARI MARTTI LAIHO (materiaali on osa virtuaaliammattikorkeakoulun Tietokantaosaaja-opintokokonaisuutta)
JOHDANTO Tietokannanhoitaja DBA (Database Administrator) esiintyy työnkuvana ja roolina kaikissa tietokanta-alan oppikirjoissa DBMS-järjestelmien käsikirjoissa on yleensä erillinen käsikirja DBA:n tehtävien hoidosta DBA on rooli, jonka tehtäviä voi hoitaa yksi henkilö sivutoimisesti tai päätoimisesti, tai roolin tehtäviä voi hoitaa tiimi DBA:n vastuulla on suunniteltujen tietokantojen fyysinen toteutus ja hoito jossakin käyttöjärjestelmä-laiteympäristössä ja jollakin DBMS-järjestelmällä 2
DBA:N TEHTÄVISTÄ Yleensä ajatellaan, että DBA:n tehtävät ovat täysin riippuvaisia käytetystä DBMS-järjestelmästä Craig Mullins (2002) kirjassaan "Database Administration" kuvaa keskeisten DBMS-järjestelmien DBA:n tehtäviä yleispätevällä käsitteistöllä DBA voi olla järjestelmähallinta- tai sovellusorientoitunut DBA:n on joka tapauksessa tunnettava käytössä olevan laitteistoarkkitehtuurin ja tietoliikenneratkaisujen ominaisuudet, DBMS-järjestelmän käyttäytyminen ja ymmärrettävä myös tietokantoja käyttävien sovellusten luonne DBA:n on oltava Jack-of-all-Trades eli "yleisosaaja Jantunen (Mullins 2002) 3
PEUKALOSÄÄNNÖT 1. Dokumentoi kaikki 2. Älä hukkaa mitään 3. Automatisoi 4. Älä pihtaa tietoa, kommunikoi 5. Analysoi, yksinkertaista, keskity 6. Vältä paniikkia 7. Mittaa kahdesti, tee kerralla oikein 8. Tunne liiketoimintasi, ei vain teknologiaa 9. Älä erakoidu 10. Älä jätä käyttämättä resurssejasi 11. Pidä tietosi ajan tasalla. 4
YLEISIMMÄT DBA:N TEHTÄVÄT Yleinen valvonta (tietokanta on päällä, siihen saa yhteyden ja istunnot myös häviävät aikanaan) Käyttöoikeuksien laadinta ja seuranta Suorituskyvyn seuranta Varmistusten seuranta Päivityspakettien tai muiden korjausten testaaminen, asentaminen ja käyttöönotto; mahdollisesti myös koulutus 5
Versionvaihdot; mahdollisesti eri DBMS-tuotteiden arviointi ja valinta Palautusoperaatiot Vianselvitykset MUITA DBA:N TEHTÄVIÄ Erilaiset optimointitehtävät Fyysinen suunnittelu ja ennaltaehkäisevät operaatiot kuten taulutilojen tai levyalueiden kasvattaminen sekä laitteiston lisääminen tai päivittäminen 6
DBA JA SQL Relaatiotietokantojen käyttämä standardoitu tietokantakieli on SQL SQL:n DDL-osan komennoilla luodaan (CREATE), muutetaan (ALTER) ja tuhotaan (DROP) tietokannan loogisia rakenteita, ns. objekteja: rooleja, tauluja, näkymiä, proseduureja, triggereitä, jne. SQL:n DML-osan komennoilla (INSERT, SELECT, UPDATE ja DELETE) käsitellään taulujen rivejä Käyttäjien oikeuksia tietokantaan myönnetään (GRANT) ja poistetaan (REVOKE) SQL:n DCL-komennoilla Jokaisella DBMS-järjestelmällä on kielestä oma murteensa ja laajennuksensa, vaikkakin nykyinen SQL-standardi on niin laaja, ettei yksikään järjestelmä toteuta sitä vielä kokonaisuudessaan Keskeiset järjestelmät pyrkivät toteuttamaan SQL-standardia ja standardin tunteminen helpottaa eri järjestelmien hoitoa ja käyttöä Nykyään onkin tavallista, että varsinkin suuremmissa organisaatioissa DBA hoitaa useita eri valmistajien DBMS-järjestelmillä toteutettuja tietokantoja 7
TIETOKANNAN HALLINTA DBMS-JÄRJESTELMIEN ARKKITEHTUURIT
SQL-STANDARDIN PUUTTEET Tietokannan hallinnan kannalta SQL-standardi on puutteellinen, sillä standardi jättää monia asioita DBMSjärjestelmien SQL-toteutusten (implementation) vastuulle Standardi ei esimerkiksi määritä käsitettä tietokanta indeksejä käyttäjätunnusten hallintaa relaatiomallin edellyttämiä systeemitaulustoja (system catalog, data dictionary) tietokantapalvelimen tietokantainstanssin fyysistä toteutusta Systeemitauluille on määritelty standardissa DEFINITION_SCHEMA ja INFORMATION_SCHEMA Standardin puutteita käsitellään varsin kattavasti Ocelotin WEB-sivuilla (www.ocelot.ca) 9
DBMS-JÄRJESTELMIEN SQL-LAAJENNUKSET Tietokannan tiedostojen ja tiedostoryhmien hoito Järjestelmän ominaisuuksien, parametriasetusten ja käyttäytymisen säädöt Järjestelmän käynnistys, tilan seuranta ja sulkeminen Tietojen massalataaminen (IMPORT tai LOAD) ja vedostus (EXPORT) Tietokannan varmistukset (BACKUP) ja palautukset (RESTORE) Tietojen replikointi (replication) samalla DBMS-tuotteella (homogeeninen ympäristö) tai eri tuotteilla (heterogeeninen ympäristö) toteutettujen kantojen kesken 10
HALLINTATYÖKALUT Eri tuotteissa samoista asioista saatetaan käyttää erilaisia nimityksiä ja näiden toimintojen SQL-syntaksit saattavat vaihdella Keskeiset hoitotoimet ovat periaatteessa samanlaisia ja joskus lähes samalla kaavalla toteutettuja Tietokannan hoito SQL-kielellä ja systeemitaulustoja käyttäen vaatii komentojen monien yksityiskohtien muistamista tätä helpottamaan ja tehtävien automatisointiin on yleensä koottu keskeisistä hoitotehtävistä SQL-pohjaisia scriptejä, esimerkiksi Oraclen PL/SQL- tai Microsoftin ja Sybasen Transact-SQL kielillä hoitotehtäviin on myös graafisilla käyttöliittymillä toteutettuja hoitoohjelmia, jotka toteuttavat DBA:n valitsemat toiminnot ao. varsinaisilla SQL-komennoilla tai proseduurikutsuilla. tyypillinen hoito-ohjelman nimi on Enterprise Manager Jotkut ohjelmistotuottajat ovat toteuttaneet myös ns. geneerisiä tietokannan hoito-ohjelmia, joilla voidaan hoitaa eri valmistajien järjestelmiä 11
SOME FUNDAMENTAL CONCEPTS SQL Standard SQL Environment Oracle Instance Instance SQL Server Instance Catalog Information Schema Data dictionary Database Databases: master model temp application db System tables no specifications for: Tablespace File group transaction logs, files, etc. Redo log Data file Transaction Data file DBTech Pro, 18 January Jaakko 2010 Rantanen log
TIETOKANTAINSTANSSI 13
TIETOKANTAYMPÄRISTÖ 14
TIETOKANTAINSTANSSI TOIMINNALLISENA KOKONAISUUTENA 15
TOIPUMINEN (ROLLBACK RECOVERY) VIRHEESTÄ TRANSAKTIOLOKIN AVULLA 16
BACKUP & RECOVERABILITY REVISITED Basic principles Maintain multiple identical copies of the active transaction log on different disks. Log archive multiplexing either archive the transaction logs to multiple locations or use OS mirroring, or make frequent backups of the archived logs Maintain multiple (concurrent) copies of the primary configuration files (e.g. using operating system mirroring) Take frequent backups of the datafiles (and primary configuration files) and store in a safe place on more than one media. 19 January 2010 DBTech Pro, Jaakko Rantanen 17