Riku Nykänen 1/2010homes.jamk.fi/~huojo/opetus/IIO30200/Oracle.pdf · 2010-01-27 · sqlplus...

Preview:

Citation preview

Riku Nykänen1/2010

Oracle-tietokanta

• Oraclen historiaa• Tietokannan rakenne ja arkkitehtuuri• Oraclen ominaisuuksia• Tietokannan hallintatyökalut

– DB configuration assistant (DBCA)– Enterprise Manager– SQL*Plus

Sisältö

• 1977: Yritys perustetaan• 1979: Oracle 2 julkaistaan

– ensimmäinen tietokannan versio

• 1989: Oracle versio 6 julkaistaan– rivitason lukitus– online-varmistukset

• 1993: Oracle versio 7 julkaistaan– täysi PL/SQL-tuki

• 1997: JDeveloper Java-kehitysympäristö julkaistaan• 1998: Oracle 8i julkaistaan

– ensimmäistä kertaa myös Linux-tuettuna

Oraclen historiaa (1/2)

• 1998: Oracle Application Server 4.0 julkaistaan• 2003: Oracle 10g julkaistaan• 2006: Oracle julkaisee oman Linux-jakelunsa

– Unbreakable Linux perustuu Red Hatiin– Nykyisin Oracle Enterprise Linux

• 2007: Oracle 11g julkaistaan• 2008: Oracle ostaa BEA Systems’in• 2009: Oracle ostaa Sun Microsystems’in (kauppa

vahvistettiin 20.1.2010)

Oraclen historiaa (2/2)

• Tietokannan lisäksi Oracle on paljon muita tuotteita lähinnä yritysten ja suurten organisaatioiden käyttöön

• Fusion Middleware• Collaboration Suite• Oracle Financial

Applications• Oracle Project Portfolio

Management Applications

• Oracle E-Business Suite– Customer Relationship

Management– Enterprise Resource

Management– Procurement– Product Lifecycle

Management– Supply Chain

Management– Manufacturing

Oraclen tuotteita

• Suorituskykyorientoitunut

• Paljon omia laajennuksia SQL-kielessä

• Data dictionary -näkymät

• PL/SQL-kieli

• Java-tuki

Oraclen tietokannan erikoispiirteitä

• Yksi Oracle-sovellus voi sisältää useita tietokantainstansseja

• Tietokantainstansseja voidaan hallita itsenäisesti

• Yksi tietokantainstanssi– voi pitää sisällään useita skeemoja– sisältää omat käyttäjänsä (voidaan linkittää

myös käyttöjärjestelmän käyttäjiin)– käyttää omia tallennustiedostoja

• Jokainen tietokantainstanssi voi sisältää useita taulualueita, jotka taas voivat käyttää useita tietokantatiedostoja

Oracle-tietokannan rakenne

• Program Global Area (PGA)– Yhden Oracle-prosessin käyttämä muistialue– Jokaisella palvelin prosessilla on oma, jakamaton PGA-

muistialueensa

• System Global Area (SGA)– Jaettu muistialue, joka sisältää tietoa yhdestä

tietokantainstanssista– Useat käyttäjät voivat jakaa muistialueen avulla tietoa

tietokannan tilasta– Suuri SGA alue vähentää tietojen kirjoittamista ja

lukemista levyltä eli parantaa suorituskykyä

Oraclen muistialueet

• Windowsissa tietokantaprosessi koostuu useista säikeistä (tai taustaprosesseista)

• Prosessi käynnistyy automaattisesti Windows-palveluna

• Jokaisella samalla koneella toimivalla tietokantaprosessilla on omat taustaprosessit

Arkkitehtuuri

Kuva © Oracle

• Buffer cache– Kaikkien käyttäjäprosessien jakama välimuisti, josta

kaikki tietokannan tieto luetaan ja kirjoitetaan• Shared pool

– Uudelleen käytettävät SQL-lauseet (valmiiksi käännettyjä)

– Käyttäjien, taulujen ja indeksien tietoja– Tietoja käyttöoikeuksista– Tietoja tallennetuista proseduureista

• Redo log buffer– Tallentaa suoritetut transaktiot ennen kuin varsinaisia

tietokantatiedostoja päivitetään

Joitakin SGA alueella jaettuja tietoja

• SYS-käyttäjä– Luodaan tietokannan luonnin yhteydessä automaattisesti– Saa automaattisesti DBA-käyttäjäroolin– Kaikki perustaulut ja –näkymät luodaan SYS-käyttäjälle– SYS-käyttäjän tauluja ja näkymiä saa muokata vain

järjestelmä

• SYSTEM-käyttäjä– Luodaan tietokannan luonnin yhteydessä automaattisesti– Saa automaattisesti DBA-käyttäjäroolin– Hallinnollinen käyttäjätunnus, joka voi luoda tauluja

DBA-käyttäjätunnukset

• DBA-rooli– Luodaan automaattisesti tietokannan luonnin yhteydessä– Sisältää suurimman osan tietokannan hallintaan

tarvittavista oikeuksista => ei tulisi missään tilanteessa myöntää tavalliselle käyttäjälle

– Ei sisällä SYSDBA- tai SYSOPER-rooleja

• SYSDBA- ja SYSOPER-roolit– Luodaan automaattisesti tietokannan luonnin yhteydessä– Molemmilla rooleilla oikeus käynnistää ja pysäyttää

tietokantainstanssi– Voivat hallita tietokantaa, vaikka se ei olisi ”auki”

Hallinnolliset käyttäjäroolit

• Yli tuhat erilaista näkymää, joista löytyy tietoa tietokannasta ja sen objekteista

• Dokumentoitujen näkymien lisäksi löytyy myös dokumentoimattomia näkymiä

• DICTIONARY-näkymästä löytyy kaikkien dokumentoitujen näkymien nimi ja kuvaus

• Näkymät jakaantuvat pääasiassa staattisiin ja dynaamisiin näkymiin

Oraclen dynaamiset ja staattiset näkymät

• Sisäänrakennettustaattisia näkymiä on kolmea tyyppiä– ALL_<tarkenne> – DBA_<tarkenne>– USER_<tarkenne>

• Taulujen metatiedot löytyvät esimerkiksi ALL_TABLES tai USER_TABLES –näkymistä– USER_TABLES-näyttää vain kirjautuneen käyttäjän tiedot

• Kaikkien tietokannan objektien tiedot löytyvätALL_OBJECTS-näkymästä

Staattiset näkymät

• Dynaamisia näkymiä, jotka sisältävät tietoa tietokannasta ja sen tilasta

• Joitakin käytetyimpiä näkymiä– V$PARAMETER, V$DATABASE, V$INSTANCE, V$SGA,

V$SGASTAT– V$SESSION, V$TRANSACTION, V$LOCK– V$SQL, V$SQLAREA, V$SQLTEXT– V$LOG, V$LOGFILE

V$-näkymät

• TO_CHAR: muuttaa päiväyksen merkkijonoksiTO_CHAR(sysdate, 'DD-MON-YYYY HH24:MI:SS')

• TO_DATE: muuttaa merkkijonon päiväykseksiTO_DATE('260120101500', 'DDMMYYYYHH24MI')

• SYSDATE: nykyinen päiväys ja kellonaika• Matemaattisia funktioita: FLOOR, CEIL, MOD,

POWER, SIGN,...• Merkkijonofunktioita: UPPER, LOWER, TRIM,

CONCAT, REPLACE

SQL-funktioita

• Jokaisessa taulussa sarake ROWID– Jokaiselle riville yksikäsitteinen tunniste (saman

tietokannan sisällä)– Nopein tapa hakea yksittäinen rivi taulusta

• DUAL-taulu– Yhden sarakkeen taulu, jossa yksi rivi– Löytyy jokaisesta Oracle-tietokannasta– SELECT SYSDATE FROM DUAL

Muita erikoisuuksia

• PL/SQL on proceduraalinen ohjelmointikieli, jota Oracle-tietokannat tukevat versiosta 7.3 alkaen

• PL/SQL:llä voidaan tehdä funktioita tietokantaan, joita voidaan suorittaa osana SQL-kyselyitä tai SQL*Plus-työkalulla

• Proseduureilla voidaan suorittaa loogisia operaatioita, jotka eivät ole SQL-kielessä mahdollisia

• Proseduureille mahdollista antaa parametreja ja saada paluuarvoja

PL/SQL-proseduurit

DECLAREvar_salary number(6);var_emp_id number(6) = 1000;

BEGINSELECT salary INTO var_salaryFROM employee WHERE emp_id = var_emp_id;dbms_output.put_line(var_salary);dbms_output.put_line('The employee ' || var_emp_id || ' has salary ' || var_salary);

END;/

PL/SQL esimerkki

• Java-luokkia ja funktioita on mahdollista tallentaa tietokantaan kuten PL/SQL-proseduureja

• Java-luokat toteutetaan tietokannan ulkopuolella• Java-luokka ladataan tietokantaan loadjava-

komennolla• Tämän jälkeen funktio julkaistaan tallennettuna

proseduurina• Sen jälkeen funktiota voidaan kutsua esim SQL*Plus:staSQL> EXECUTE add_new_book('Jon Ronson', 'The Men Who Stare At Goats');

• Esimerkkejä: http://www.oracle.com/technology/sample_code/tech/java/jsp/dbwebservices.html

Java-funktiot

• Database Configuration Assistant• Net Configuration Assistant

• Enterprise Manager• Administration Assistant

• SQL Developer• SQL*Plus• iSQL*Plus

Oracle-tietokannan sovelluksia

• Database Configuration Assistant on työkalu uuden tietokantainstanssin luomiseen tai olemassa olevan asetusten muuttamiseen

Oracle DBCA

• DBCA kyselee instanssin luomiseen tarvittavat tiedot Wizard-tyyppisesti

• Asetukset on mahdollista tallentaa malliksi• DBCA on mahdollista käynnistää komentorivillä ja

antaa parametrit response-tiedostossa

Oracle DBCA

• Valitse tietokannantyyppi– General Purpose or Transaction Processing– Custom Database– Data Warehouse

• Anna tietokannalle nimi (Global Database Name) ja määritä SID (Oracle System Identifier)

• Määritä hälytysten vastaanottajat• Anna pääkäyttäjien salasanat• Määritä tallennuspaikka• Määritä palautusasetuset (optionaalinen, Flash Recovery Area)• Valitse mahdolliset esimerkkiskeemat• Määritä oletusasetukset• Määritä tietoturva-asetukset• Määritä tallennustiedostojen sijainnit • Lopuksi luo tietokanta (voit myös tallentaa asetukset malliksi)

Tietokannan luonti DBCA:lla

• Oracle Net Listener on Oracle-tietokantapalvelimen komponentti, joka kuuntelee asiakassovellusten yhteydenmuodostuspyyntöjä

• Yhteysosoitteet konfiguroidaan yleensä asiakassovelluksen tnsnames.ora-tiedostossa– Tiedostoa voi muokata

myös Net Configuration Assistant-työkalulla

Oracle Net Listener

• Selainkäyttöinen hallintasovellus

• Käytännössä lähes kaikki tietokannan hallintaoperaatiot on mahdollista tehdä EM:n kautta

• Löytyy osoitteesta http://palvelin:5500/em

• 5500 oletusportti

Enterprise Manager

• Dashboard-tilanäyttö• Asetusten hallinta• Varmuuskopioiden hallinta ja ottaminen• Logien näyttäminen• Resurssien- ja käyttäjienhallinta• Skeemojen selaaminen ja muokkaaminen• SQL Worksheet SQL-komentojen suorittamiseen• ...

Enterprise Managerin toimintoja

• Graafisella käyttöliittymällä varustettu hallintasovellus

• Lähinnä käyttäjien, ryhmien ja roolien hallintaan

Oracle Administration Assistant

• SQL*Plus on klassinen Oracle-tietokantojen käyttöliittymä, jolla voidaan suorittaa SQL-komentoja

• SQL*Plus:n ominaisuuksia– tekstipohjainen

käyttöliittymä– SQL-skriptien

suorittaminen– tulosteen tallentaminen

tiedostoon (myös HTML-muodossa)

Oracle SQL*Plus

• Käynnistettynä Windowsin aloitusvalikosta SQL*Plus ottaa yhteyden oletustietokantaan

• Komentoriviltä käynnistettäessä on mahdollista antaa käyttäjä ja tietokanta parametrina:sqlplus käyttäjä/salasana@tietokanta

• SQL-tiedoston antaminen parametriksi:sqlplus me/passme@db @c:\script.sql

• Kirjautuminen käyttöjärjestelmän tunnuksellasqlplus /

SQL*Plus käynnistäminen

• Komentokehoitteeseen voi kirjoittaa minkä tahansa SQL-lauseen tai SQL*Plus komennon

• SQL-lauseen loppuun lisättävä ; merkki loppuun SELECT SYSDATE FROM DUAL;

• / ajaa edellisen komennon uudestaan• @tiedosto ajaa tiedoston sisältämät SQL-lauseet• !komento suorittaa käyttöjärjestelmän komennon• QUIT ja EXIT komennot sulkevat sovelluksen

SQL*Plus käyttö

• CONNECT SYS AS SYSDBAOta yhteys pääkäyttäjänä

• SET PAGESIZE 100Aseta sivun 100 riviä– Kenttien otsikkorivit tulostuvat jokaiselle sivulle kerran

• SET LINESIZE 100Aseta rivinleveydeksi 100 merkkiä

• SPOOL <tiedoston nimi>Tallenna kaikki komennot ja tulostukset tiedostoon

• SPOOL OFFLopeta tallennus

SQL*Plus:n komentoja

• DESC TABLE/VIEWNAMENäyttää taulun tai näkymän rakenteen

• SHOW PARAMETERSNäyttää käytössä olevat parametrit

• SET TIMING ON/OFFNäyttää SQL-lauseen suoritusajan

• SET PAUSE ON/OFFNäyttää PAGESIZE:n muokaisen määrän rivejä kerrallaan

• SET AUTO ON/OFFAseta autocommit päälle/pois

SQL*Plus:n komentoja

• Selainkäyttöinen versio SQL*Plus’sta

• Palvelu täytyy käynnistää palvelimella:isqlplusctl start

• Tämän jälkeen iSQL*Plus on käytettävissä selaimella osoitteessa:http://palvelimennimi:5560/isqlplus

iSQL*Plus

• dpexp-sovelluksella voidaan viedä tietokannasta pois tietoa, esimerkiksi toiseen tietokantaan

• dpimp-sovelluksella voidaan tuoda tietoa tietokantaan

Oracle Datapump (export/import)

• Oracle 11R2http://www.oracle.com/pls/db112/homepage

• 2-day DBAhttp://www.oracle.com/pls/db112/to_toc?pathname=server.112/e10897/toc.htm

• Oracle Technology Networkhttp://www.oracle.com/technology/index.html

Lisää luettavaa

• Käynnistä SQL*Plus tai EM:n kautta SQL Worksheet• Kokeile Data Dictionaryn näkymiä

– Yritä löytää kyseisen session käyttäjätunnus, esim V$SESSION-näkymän kautta

– Paljonko kyseisellä käyttäjällä on tauluja (USER_TABLES saattaa auttaa)

• Kokeile funktioita– Hae nykyinen päivämäärä ja muunna se muotoon 23:15:00

31.01.2010

Harjoituksia

Recommended