Postgresql

Allikas: Kuutõrvaja
Redaktsioon seisuga 27. juuni 2008, kell 23:42 kasutajalt Jj (arutelu | kaastöö) (Paigaldus)

Sissejuhatus

Postgresql on Berkeleys Ülikoolis arendatud postgres andmebaasi vabavaraline edasiarendus

PostgreSQL on relatsiooniline andmebaasihaldur mõningase objektorienteeritud kallakuga ning tehniliselt ja funktsionaalselt tõsine konkurent parimatele kommertsanaloogidele. Samuti oli ta üks esimesi andmebaase, mis pakkus MVCC’d vastukaaluks realukustusele või tabelilukustusele ning see parandab oluliselt süsteemi tõhusust andmebaasi ühiskasutuse korral.

Esimese pooleteise tunni jooksul tähelepandud erinevused võrreldes MySQL'iga:

  • - kaasas on hea dokumentatsioon ja tutorid (ka PostScript'is) mida MySQL'il peaaegu polegi
  • - erinevatele kasutajaltele erinevate õiguste andmine on keerulisem (sh. passwordid); siiski on lihtne anda lihtsaid õigusi
  • - andmebaasi struktuurist kõneldes kasutatakse (tõenäoliselt põhjusega) mõisteid 'class', 'instance' jms mis on tuntud kui lähenetakse asjadele 'objekt- orienteeritud' seisukohast. Nt. MySQL'i andmeväli ei saa koosneda mitmest alamosast. Küll aga PostgrSQL'i puhul võib.

Paigaldus

Eesti peegel asub EENet serveris: ftp://ftp.ee.postgresql.org/pub/postgresql/

Installime postgres serveri vastavalt enda operatsioonisüsteemile

Seejärel on vajalik initsialiseerida andmebaas selleks anname järgnevad käsud.

Kaustaks kus andmebaasid asuvad hakkab olema /home/pgsql

mkdir /home/pgsql

Anname kausta postgres kasutaja õigustesse

chown -R postgres:postgres /home/pgsql

Lähme postgres kasutaja õigustesse. NB! vale kasutaja alt default baaside loomine lõpeb sellega ,et pole võimalik luua esimesi kasutajaid või muuta paroole.

su postgres

ning seejärel loome default keskkonna

initdb -D /home/pgsql

Kui kasutusel FreeBSD siis on postgres kasutajaks hoopis pgsql

Edasi võime juba operatsioonisüsteemi enda vahenditega (/etc/init.d/postgres, /usr/local/etc/rc.d/postgres.sh) abil serveri startida

Baasi loomine

Käivitage postgreSQL prooviks: (logige uuesti sisse kasutaja postgres alt, et lisatud PATH'i take'eksid efffect'i :)

Kõik järgnevad käsud tuleb anda postgres kasutaja alt, su - postgres

looge andmebaas

$ createdb mhh 

votke andmebaasiga ühendust

$ psql 

käsivitage lihtne päring

postgres=> SELECT datetime 'now'; 

(kas tulemus on näha?)

väljuge andmebaasi kliendist

postgres=> \q 

eemaldage andmebaas

$ destroydb mhh 
 

Kui see kõik läks libedalt siis on peamiselt kõik korras; tavis vaid ivake kasutajete õigusi sättida ja kõik.

Päris käivitamine. Vanarahvas õpetab, et kõige etem on seda teha 'switch useriga -su' kuskilt rc.local'i kandist:

su postgres -c "/usr/local/pgsql/bin/postmaster -S -D /usr/local/pgsql/data" 
  • -S silent
  • -D databaasi kataloog; seda kataloogi uurige kohe kasvõi hhuvipärast!

Kasutajad-õigused

Kasutajate lisamine


createuser -P root
Enter password for new role:
Enter it again:
Shall the new role be a superuser? (y/n) y


Peale selle peab failis

  • /usr/local/pgsql/data/pg_hba.conf
local          all                                         md5
#local        all                                          trust 
#host         all         127.0.0.1     255.255.255.255   trust 
#host         all         192.168.1.1   255.255.255.255   trust  

antud juhul on kolm alumist rida välja kommenteeritud ja töötav rida ütleb, et lase sisse localhost'i pealt kõik kes on nõus end autentima. (st. alustama psql -u -d database) Kui kuidagi ei taha sisse lasta, siis kasautage ülevalt teist rida :)

Upgrade

Postgres upgrade puhul oleks soovitatav dumpida kogu baas ja hiljem restoreda

pg_dumpall -U root > pgdump
/etc/init.d/postgresql stop

Ning vana database kausta võime näiteks kustutada või varundada, antudhetkel on selleks /home/pgsql ja kustutada ning luua uue ja anda selle chown käsuga postgres omandusse.

seejärel teeme vastavalt os'ile vajaliku ,et vahetuks postgres versioon

gentoos näiteks käsuga

emerge postgresql

Tasub peale baasi taas initsialiseerimist lubaca localhostist pääseda postgresile ligi ilma paroolideta (admin parool pole veel taastatud) Seda saame teha failist nano pg_hda ja seal võime lahtikommenteerida rea

local   all         all                               trust

Seejärel võime anda käsud

mkdir /home/pgsql
chown -R postgres:postgres /home/pgsql
su postgres
initdb -D /home/pgsql
postgres -D /home/pgsql
psql -d postgres -f pgdump

Lingid

http://gentoo-wiki.com/HOWTO_Configure_Postgresql

http://www.postgresql.org/docs/8.1/interactive/install-upgrading.html

http://www.freebsddiary.org/postgresql.php

Eelnevate versioonide võrlustabel

http://www.postgresql.org/about/featurematrix

PGCluster is a multi-master and synchronous replication system that supports load balancing of PostgreSQL.

http://www.csra.co.jp/~mitani/jpug/pgcluster/