PostgreSQL

From EIK wiki
PostgreSQL logo. Pilt võetud en.wikist [[1]]

PostgreSQL, tihti lihtsalt Postgres, on objekt-relatsiooniline andmebaasi juhtimissüsteem. PostgreSQL on tasuta ja avatud lähtekoodiga tarkvara. Võrreldes paljude teiste avatud lähtekoodiga programmidega, ei kontrolli PostgreSQL-i ühegi konkreetse ettevõtte kontrolli all. Programmi arendusega tegeleb globaalne kogukond, mis koosneb erinevatest arendajatest ja firmadest.
PostgreSQL oli üks esimesi andmebaase, mille funktsionaalsuse hulka kuulus multiversioon-konkurentsjuhtimine (MVCC, Multi-Version Concurrency Control) - meetod ühiskasutusega andmebaaside jõudluse tõstmiseks, et loobuda rea- ja tabelilukustusest süsteemi efektiivsuse parandamise eesmärgil.
PostgreSQL realiseerib ANSI SQL laiendatud alamklassi ning toimib paljudel erinevatel platvormidel. PostgreSQL andmebaas sisaldab liideseid erinevate programmeerimiskeelte ja andmebaasi protokollide tarbeks (nt. ODBC ja JDBC).

Omadused

PostgreSQL piirangud (versioon 8.4.0):

Maksimaalne andmebaasi suurus Piiranguid ei ole
Maksimaalne tabeli suurus 32 TB
Maksimaalne kirje suurus 1,6 TB
Maksimaalne veergu suurus 1 GB
Maksimaalne kirjapanekute maht tabelis Piiranguid ei ole
Maksimaalne veergude arv tabelis 250—1600, sõltuvalt veergude tüübidest
Maksimaalne indekstite arv tabelis Piiranguid ei ole

PostgreSQL'i tugevad küljed on:

  • Toetab praktiliselt piiramatut andmebaasi suurust;
  • Võimsad ja usaldusväärsed tehingute ja replikatsiooni mehhanismid;
  • Pärimine;
  • Lihtne tugi.

Usaldusväärsus

Erinevate automatiseeritud uuringute põhjal on teada, et PostgreSQL lähtekoodis on keskmiselt üks viga 39 000 koodirea kohta (775000 lähtekoodi rida, leiti 20 probleemset kohta)

Võrdlus:

  • MySQL - 97 probleemi, üks viga 4000 koodirea kohta;
  • FreeBSD - 306 probleemi, üks viga 4000 koodirea kohta;
  • Linux (kernel) - 950 probleemi, üks viga 10 000 koodirea kohta.

PostgreSQL installeerimine ja konfigureerimine (Ubuntu-server)

Sisselogimine juurkasutaja õigustes:

sudo -i

Installeerimine

PostgreSQL paigaldamiseks tuleb käivitada käsk:

sudo apt-get install postgresql postgresql-contrib postgresql-client -y

Tulemusena on PostgreSQL'i DBMS (Database Management System, Andmebaasi haldussüsteem) paigaldatud ja töökorras.

Konfigureerimine

Andmebaasi kasutamiseks on tarvis teha veel mõned seadistused.

PostgreSQL juurkasutaja parooli määramine ja kasutajakonto loomine:

sudo su postgres

Andmebaasi käivitamine:

psql

Muudame kasutaja parooli:

alter user postgres with password 'uus parool'

Näiteks:

alter user postgres with password '&932j(_dskoGhdDG'

Skripti import, mille tulemusena seadistatakse täiustatud logimise ja monitooringu funktsioonid:

\i /usr/share/postgresql/8.3/contrib/adminpack.sql

Sulgeme terminali ja väljume postgre sessioonist:

\q 
exit

Lubame ligipääsu andmebaasile teistest seadmetest. Selleks on vaja redigeerida kaks faili: postgresql.conf ja pg_hba.conf

Fail /etc/postgresql/8.3/main/postgresql.conf.
Avame faili tekstiredaktoriga nano:

nano /etc/postgresql/8.3/main/postgresql.conf

Selleks on vaja leida sektsioonist CONNECTIONS AND AUTHENTICATION vastav rida:

#listen_addresses = 'localhost'

Rea muutmine:

listen_addresses = '*'

Fail /etc/postgresql/8.3/main/pg_hba.conf.

Läheme faili lõppu ja otsime read:

# IPv4 local connections:
host all all 127.0.0.1/32 md5

127.0.0.1/32 on lubatud võrgu mask, asendame vastavalt vajaliku võrgu maskiga, näiteks:

host all all 192.168.1.0/24 md5

Tulemusena on lubatud ühendused IP aadresside vahemikust 192.168.1.1 kuni 192.168.1.254.

Vajadusel võib turvalisuse tagamiseks lisada ka konkreetse ühenduse, näiteks:

host all all 192.168.1.3/32 md5

PostgreSQL teenuse taaskäivitamine:

/etc/init.d/postgresql-8.3 restart

Varukoopia salvestamine ja taastamine

Andmebaasi varundamine on väga tähtis osa, mille läbiviimiseks on kasutada pg_dump utiliit. Üheaegselt on võimalik varundada vaid ühte andmebaasi.
Üldine süntaks: pg_dump andmebaas > väljundfail. Näitena kasutame andmebaasi nimega "payroll".

pg_dump payroll > payroll.dump.out

Andmebaasi taastamine:

psql -d payroll -f payroll.dump.out

Huvitavad fakte

  • Skype kasutab PostgreSQL'i peamise andmebaasina.
  • Yahoo sõnul suudeti võita maailma suurima ja koormatuima andmebaasi rekord, kasutades modifitseeritud PostgreSQL andmebaasi. Andmebaasi maht ületab 2 petabaiti.

Autor

Sergei Barol A21
sbarol@itcollege.ee

Allikad

http://www.postgresql.org/about/
http://en.wikipedia.org/wiki/Postgresql
http://www.cyberciti.biz/tips/howto-backup-postgresql-databases.html
http://www.thegeekstuff.com/2009/01/how-to-backup-and-restore-postgres-database-using-pg_dump-and-psql