riku nykänen 1/2010homes.jamk.fi/~huojo/opetus/iio30200/oracle.pdf · 2010-01-27 · sqlplus...
TRANSCRIPT
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