PostgreSQL: Difference between revisions

From ICO wiki
Jump to navigationJump to search
No edit summary
No edit summary
Line 2: Line 2:


'''PostgreSQL''', tihti lihtsalt '''Postgres''', on objekt-relatsiooniline andmebaasi juhtimissüsteem.
'''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 mitte ükski ettevõte, vaid on globaalne kogukond arendajaid ja firmasid selle arendamiseks. <br />
PostgreSQL on tasuta ja avatud lähtekoodiga tarkvara. Võrreldes paljude teiste avatud lähtekoodiga programmidega, ei kontrolli PostgreSQL-i mitte ükski ettevõte, vaid on globaalne kogukond arendajaid ja firmasid selle arendamiseks. <br />
PostgreSQL oli üks esimesi andmebaase, mis pakkus MVCC’d (Multi-Version Concurrency Control, multiversioon-konkurentsjuhtimine on meetod ühiskasutusega andmebaaside jõudluse tõstmiseks), et võiks loobuda realukustusest ja tabelilukustusest ja loomulikult see parandab süsteemi efektiivsust andmebaasi kasutuse korral. PostgreSQL realiseerib ANSI SQL laiendatud alamklassi. Ta töötab paljudel platvormidel. PostrgeSQL AB'sis on olemas erinevad liidesed paljude erinevate programmikeelte ja AB protokollide jaoks. Näiteks: ODBC ja JDBC.
PostgreSQL oli üks esimesi andmebaase, mis pakkus MVCC’d (Multi-Version Concurrency Control, multiversioon-konkurentsjuhtimine on meetod ühiskasutusega andmebaaside jõudluse tõstmiseks), et võiks loobuda realukustusest ja tabelilukustusest ja loomulikult see parandab süsteemi efektiivsust andmebaasi kasutuse korral. PostgreSQL realiseerib ANSI SQL laiendatud alamklassi. Ta töötab paljudel platvormidel. PostrgeSQL AB'sis on olemas erinevad liidesed paljude erinevate programmikeelte ja AB protokollide jaoks. Näiteks: ODBC ja JDBC.


==Omadused==
==Omadused==
Line 19: Line 19:
|Maksimaalne veergude suurus||1 Gbaiti
|Maksimaalne veergude suurus||1 Gbaiti
|-
|-
|Maksimaalne kirjapanekuid tabelis||Piiranguid ei ole
|Maksimaalne kirjapanekute maht tabelis||Piiranguid ei ole
|-
|-
|Maksimaalne veergude arv tabelis||250—1600, sõltuvalt veergude tüübidest
|Maksimaalne veergude arv tabelis||250—1600, sõltuvalt veergude tüübidest
Line 27: Line 27:


PostgreSQL'i tugevad küljed on: <br />
PostgreSQL'i tugevad küljed on: <br />
*Toetus praktiliselt andmebaasi piiramatu suurusi; <br />
*Toetab andmebaasi praktiliselt piiramatut suurust; <br />
*Võimsad ja usaldusväärsed tehingute ja replikatsiooni mehhanismid; <br />
*Võimsad ja usaldusväärsed tehingute ja replikatsiooni mehhanismid; <br />
*Pärandamine; <br />
*Pärandamine; <br />
Line 34: Line 34:
==Usaldusväärsus==
==Usaldusväärsus==


Pärast erinevate automatiseeritude uuringute on teada, et PostgreSQL lähtekoodis leiti 20 probleemset kohti 775000 rida lähtekoodi (keskmiselt üks viga 39 000 rida koodi kohta). Võrdluseks: MySQL - 97 probleeme, üks viga 4000 rida koodi kohta; FreeBSD (terve) - 306 probleeme, üks viga 4000 rida koodi kohta; Linux (kernel ainult) - 950 probleeme, üks viga 10 000 rida koodi kohta.
Pärast erinevaid automatiseeritud uuringuid on teada, et PostgreSQL lähtekoodis leiti 20 probleemset kohta 775000 lähtekoodi reast(keskmiselt üks viga 39 000 koodirea kohta). Võrdluseks: MySQL - 97 probleemi, üks viga 4000 koodirea  kohta; FreeBSD (terve) - 306 probleemi, üks viga 4000 koodirea kohta; Linux (kernel ainult) - 950 probleemi, üks viga 10 000 koodirea kohta.


== PostgreSQL installeerimine ja konfigureerimine (Ubuntu-server)==
== PostgreSQL installeerimine ja konfigureerimine (Ubuntu-server)==
Line 42: Line 42:


===Installeerimine===
===Installeerimine===
Tegelikult, paigaldada võib ühe käsuga:
Tegelikult, võib paigaldada ühe käsuga:
<pre>sudo apt-get install postgresql postgresql-contrib postgresql-client -y</pre>
<pre>sudo apt-get install postgresql postgresql-contrib postgresql-client -y</pre>
Kõik, DBMS PostgreSQL paigaldatud ja töökorras. <br />
Kõik, DBMS PostgreSQL paigaldatud ja töökorras. <br />


===Konfigureerimine===
===Konfigureerimine===
Kuid, tegelikult andmebaasiga töötamiseks, tuleb teha veel mõned asjad: <br />
Kuid andmebaasiga töötamiseks on tarvis teha veel mõned operatsioonid: <br />
Tuleb määrata postgres root parooli: <br />
Tuleb määrata postgres root parool: <br />
Nüüd on vaja saada postgres'i kasutajaks: <br />
Nüüd on vaja saada postgres'i kasutajaks: <br />
<pre>sudo su postgres</pre>
<pre>sudo su postgres</pre>
Line 68: Line 68:
exit</pre>
exit</pre>


Lubame ligipääsu meie andmebaasile teistest masinatest. Selleks meil on vaja redigeerida kaks faili. <br />
Lubame ligipääsu meie andmebaasile teistest masinatest. Selleks on meil vaja redigeerida kaks faili. <br />
Fail '''/etc/postgresql/8.3/main/postgresql.conf'''. <br />
Fail '''/etc/postgresql/8.3/main/postgresql.conf'''. <br />
Avame faili tekstiredaktoriga nano: <br />
Avame faili tekstiredaktoriga nano: <br />
Line 78: Line 78:


Fail '''/etc/postgresql/8.3/main/pg_hba.conf'''. <br />
Fail '''/etc/postgresql/8.3/main/pg_hba.conf'''. <br />
Läheme faili lõppu ja  otsime ridad: <br />
Läheme faili lõppu ja  otsime read: <br />
<pre># IPv4 local connections:
<pre># IPv4 local connections:
host all all 127.0.0.1/32 md5</pre>
host all all 127.0.0.1/32 md5</pre>
Line 84: Line 84:
<pre>host all all 192.168.1.0/24 md5</pre>
<pre>host all all 192.168.1.0/24 md5</pre>
s.t. see võimaldab kõiki ühendusi aadressist 192.168.1.1 kuni 192.168.1.254. <br />
s.t. see võimaldab kõiki ühendusi aadressist 192.168.1.1 kuni 192.168.1.254. <br />
Võime lisada konkreetse masinat, kui on vaja tagada turvalisust, nt.: <br />  
Võime lisada konkreetse masina, kui on vaja tagada turvalisust, nt.: <br />  
<pre>host all all 192.168.1.3/32 md5</pre>
<pre>host all all 192.168.1.3/32 md5</pre>


Line 91: Line 91:


==Varukoopia salvestamine ja taastamine==
==Varukoopia salvestamine ja taastamine==
Varukoopiad tegemine on väga tähtis osa. Teeme seda, kasutades pg_dump käsu. pg_dump on PostgreSQL utiliit andmebaasi varundamiseks. Ta puistab ainult ühte andmebaasi korraga. Üldine süntaks: '''pg_dump databasename > outputfile'''. Kasutame andmebaasi nimega "payroll". <br />
Varukoopiate tegemine on väga tähtis osa. Teeme seda, kasutades pg_dump käsu. pg_dump on PostgreSQL utiliit andmebaasi varundamiseks. Ta puistab ainult ühte andmebaasi korraga. Üldine süntaks: '''pg_dump databasename > outputfile'''. Kasutame andmebaasi nimega "payroll". <br />
<pre>pg_dump payroll > payroll.dump.out</pre>
<pre>pg_dump payroll > payroll.dump.out</pre>


Line 98: Line 98:


==Huvitavad fakte==
==Huvitavad fakte==
*Skype kasutab PostgreSQL'i nagu peamise andmebaasina enamiku äri vajadustele. <br />
*Skype kasutab PostgreSQL'i peamise andmebaasina. <br />
*Yahoo ütleb, et ta suutis võita maailmarekord, luues suurim ja kõige koormatud andmebaasi kogu maailmas! Eelmisel aastal andmebaasi maht saavutas 2 Petabaiti. Aga nüüd kõige huvitavam. Selle monstri haldab modifitseeritud PostgreSQL. :) <br />
*Yahoo ütleb, et ta suutis võita maailmarekordi, luues suurima ja kõige rohkem koormatud andmebaasi kogu maailmas! Eelmisel aastal saavutas andmebaasi maht 2 Petabaiti. Aga nüüd kõige huvitavam. Seda monstrit haldab modifitseeritud PostgreSQL. :) <br />


==Autor==
==Autor==

Revision as of 21:48, 9 May 2010

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 mitte ükski ettevõte, vaid on globaalne kogukond arendajaid ja firmasid selle arendamiseks.
PostgreSQL oli üks esimesi andmebaase, mis pakkus MVCC’d (Multi-Version Concurrency Control, multiversioon-konkurentsjuhtimine on meetod ühiskasutusega andmebaaside jõudluse tõstmiseks), et võiks loobuda realukustusest ja tabelilukustusest ja loomulikult see parandab süsteemi efektiivsust andmebaasi kasutuse korral. PostgreSQL realiseerib ANSI SQL laiendatud alamklassi. Ta töötab paljudel platvormidel. PostrgeSQL AB'sis on olemas erinevad liidesed paljude erinevate programmikeelte ja AB protokollide jaoks. Näiteks: ODBC ja JDBC.

Omadused

Praegu (versioon 8.4.0), PostgreSQL's on järgmised piirangud:

Maksimaalne andmebaasi suurus Piiranguid ei ole
Maksimaalne tabeli suurus 32 Tbaiti
Maksimaalne kirjapaneku suurus 1,6 Tbaiti
Maksimaalne veergude suurus 1 Gbaiti
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 andmebaasi praktiliselt piiramatut suurust;
  • Võimsad ja usaldusväärsed tehingute ja replikatsiooni mehhanismid;
  • Pärandamine;
  • Lihtne tugi.

Usaldusväärsus

Pärast erinevaid automatiseeritud uuringuid on teada, et PostgreSQL lähtekoodis leiti 20 probleemset kohta 775000 lähtekoodi reast(keskmiselt üks viga 39 000 koodirea kohta). Võrdluseks: MySQL - 97 probleemi, üks viga 4000 koodirea kohta; FreeBSD (terve) - 306 probleemi, üks viga 4000 koodirea kohta; Linux (kernel ainult) - 950 probleemi, üks viga 10 000 koodirea kohta.

PostgreSQL installeerimine ja konfigureerimine (Ubuntu-server)

Logi sisse juurkasutaja õigustega:

sudo -i

Installeerimine

Tegelikult, võib paigaldada ühe käsuga:

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

Kõik, DBMS PostgreSQL paigaldatud ja töökorras.

Konfigureerimine

Kuid andmebaasiga töötamiseks on tarvis teha veel mõned operatsioonid:
Tuleb määrata postgres root parool:
Nüüd on vaja saada postgres'i kasutajaks:

sudo su postgres

Käivitame terminaali meie andmebaasile:

psql

Muudame kasutaja parooli:

alter user postgres with password 'uus parool'

Näiteks:

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

Importeerime skripti, mis sisaldab täiustatud "logeerimise" ja "monitooringu" funktsioone pgAdmin'le

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

Sulgeme terminaali ja väljume postgre sessioonist:

\q 
exit

Lubame ligipääsu meie andmebaasile teistest masinatest. Selleks on meil vaja redigeerida kaks faili.
Fail /etc/postgresql/8.3/main/postgresql.conf.
Avame faili tekstiredaktoriga nano:

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

Selleks otsime sektsiooni CONNECTIONS AND AUTHENTICATION ja muudame rida

#listen_addresses = 'localhost'

niimodi:

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 see on lubatud võrgu mask, asendame vastavalt meie võrgu maskiga, näiteks:

host all all 192.168.1.0/24 md5

s.t. see võimaldab kõiki ühendusi aadressist 192.168.1.1 kuni 192.168.1.254.
Võime lisada konkreetse masina, kui on vaja tagada turvalisust, nt.:

host all all 192.168.1.3/32 md5

Teeme restart:

/etc/init.d/postgresql-8.3 restart

Varukoopia salvestamine ja taastamine

Varukoopiate tegemine on väga tähtis osa. Teeme seda, kasutades pg_dump käsu. pg_dump on PostgreSQL utiliit andmebaasi varundamiseks. Ta puistab ainult ühte andmebaasi korraga. Üldine süntaks: pg_dump databasename > outputfile. Kasutame andmebaasi nimega "payroll".

pg_dump payroll > payroll.dump.out

Taastada andmebaasi saab käsuga:

psql -d payroll -f payroll.dump.out

Huvitavad fakte

  • Skype kasutab PostgreSQL'i peamise andmebaasina.
  • Yahoo ütleb, et ta suutis võita maailmarekordi, luues suurima ja kõige rohkem koormatud andmebaasi kogu maailmas! Eelmisel aastal saavutas andmebaasi maht 2 Petabaiti. Aga nüüd kõige huvitavam. Seda monstrit haldab modifitseeritud PostgreSQL. :)

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