PostgreSQL: Difference between revisions
(29 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
[[Image:Pg_logo.png|thumb|PostgreSQL logo. Pilt võetud en.wikist [[http://en.wikipedia.org/wiki/PostgreSQL]]]] | [[Image:Pg_logo.png|thumb|PostgreSQL logo. Pilt võetud en.wikist [[http://en.wikipedia.org/wiki/PostgreSQL]]]] | ||
'''PostgreSQL''', tihti lihtsalt '''Postgres''', on | '''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, | 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. <br /> | ||
PostgreSQL oli üks esimesi andmebaase, | 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.<br /> | ||
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== | ==Omadused== | ||
PostgreSQL piirangud (versioon 8.4.0): | |||
{| class="standard" | {| class="standard" border="1" | ||
|- | |- | ||
|Maksimaalne andmebaasi suurus|| | |Maksimaalne andmebaasi suurus||Piiranguid ei ole | ||
|- | |- | ||
|Maksimaalne tabeli suurus|| | |Maksimaalne tabeli suurus||32 TB | ||
|- | |- | ||
|Maksimaalne | |Maksimaalne kirje suurus||1,6 TB | ||
|- | |- | ||
|Maksimaalne | |Maksimaalne veergu suurus||1 GB | ||
|- | |- | ||
|Maksimaalne | |Maksimaalne kirjapanekute maht tabelis||Piiranguid ei ole | ||
|- | |- | ||
|Maksimaalne veergude arv tabelis|| | |Maksimaalne veergude arv tabelis||250—1600, sõltuvalt veergude tüübidest | ||
|- | |- | ||
|Maksimaalne indekstite arv tabelis|| | |Maksimaalne indekstite arv tabelis||Piiranguid ei ole | ||
|} | |} | ||
PostgreSQL'i tugevad küljed on: <br /> | PostgreSQL'i tugevad küljed on: <br /> | ||
* | *Toetab praktiliselt piiramatut andmebaasi suurust; <br /> | ||
*Võimsad ja usaldusväärsed tehingute ja replikatsiooni mehhanismid; <br /> | *Võimsad ja usaldusväärsed tehingute ja replikatsiooni mehhanismid; <br /> | ||
* | *Pärimine; <br /> | ||
*Lihtne tugi. <br /> | *Lihtne tugi. <br /> | ||
==Usaldusväärsus | ==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; <br /> | |||
*FreeBSD - 306 probleemi, üks viga 4000 koodirea kohta; <br /> | |||
*Linux (kernel) - 950 probleemi, üks viga 10 000 koodirea kohta. <br /> | |||
== PostgreSQL installeerimine ja konfigureerimine (Ubuntu-server)== | == PostgreSQL installeerimine ja konfigureerimine (Ubuntu-server)== | ||
Sisselogimine juurkasutaja õigustes: | |||
<pre>sudo -i</pre> | <pre>sudo -i</pre> | ||
===Installeerimine=== | ===Installeerimine=== | ||
PostgreSQL paigaldamiseks tuleb käivitada käsk: | |||
<pre>sudo apt-get install postgresql postgresql-contrib postgresql-client -y</pre> | <pre>sudo apt-get install postgresql postgresql-contrib postgresql-client -y</pre> | ||
Tulemusena on PostgreSQL'i DBMS (Database Management System, Andmebaasi haldussüsteem) paigaldatud ja töökorras. <br /> | |||
===Konfigureerimine=== | ===Konfigureerimine=== | ||
Andmebaasi kasutamiseks on tarvis teha veel mõned seadistused. <br /> | |||
PostgreSQL juurkasutaja parooli määramine ja kasutajakonto loomine: <br /> | |||
<pre>sudo su postgres</pre> | <pre>sudo su postgres</pre> | ||
Andmebaasi käivitamine: | |||
<pre>psql</pre> | <pre>psql</pre> | ||
Line 63: | Line 67: | ||
<pre>alter user postgres with password '&932j(_dskoGhdDG'</pre> | <pre>alter user postgres with password '&932j(_dskoGhdDG'</pre> | ||
Skripti import, mille tulemusena seadistatakse täiustatud logimise ja monitooringu funktsioonid: | |||
<pre>\i /usr/share/postgresql/8.3/contrib/adminpack.sql</pre> | <pre>\i /usr/share/postgresql/8.3/contrib/adminpack.sql</pre> | ||
Sulgeme | Sulgeme terminali ja väljume postgre sessioonist: | ||
<pre>\q | <pre>\q | ||
exit</pre> | exit</pre> | ||
Lubame ligipääsu | Lubame ligipääsu andmebaasile teistest seadmetest. Selleks on vaja redigeerida kaks faili: postgresql.conf ja pg_hba.conf <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 /> | ||
<pre>nano /etc/postgresql/8.3/main/postgresql.conf</pre> | <pre>nano /etc/postgresql/8.3/main/postgresql.conf</pre> | ||
Selleks | Selleks on vaja leida sektsioonist '''CONNECTIONS AND AUTHENTICATION''' vastav rida: <br /> | ||
<pre>#listen_addresses = 'localhost'</pre> | <pre>#listen_addresses = 'localhost'</pre> | ||
Rea muutmine: <br /> | |||
<pre>listen_addresses = '*'</pre> | <pre>listen_addresses = '*'</pre> | ||
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 | |||
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> | ||
127.0.0.1/32 | 127.0.0.1/32 on lubatud võrgu mask, asendame vastavalt vajaliku võrgu maskiga, näiteks: <br /> | ||
<pre>host all all 192.168.1.0/24 md5</pre> | <pre>host all all 192.168.1.0/24 md5</pre> | ||
Tulemusena on lubatud ühendused IP aadresside vahemikust 192.168.1.1 kuni 192.168.1.254. <br /> | |||
Vajadusel võib turvalisuse tagamiseks lisada ka konkreetse ühenduse, näiteks: <br /> | |||
<pre>host all all 192.168.1.3/32 md5</pre> | <pre>host all all 192.168.1.3/32 md5</pre> | ||
PostgreSQL teenuse taaskäivitamine: <br /> | |||
<pre>/etc/init.d/postgresql-8.3 restart</pre> | <pre>/etc/init.d/postgresql-8.3 restart</pre> | ||
==Varukoopia salvestamine ja taastamine== | ==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. <br /> | |||
Üldine süntaks: '''pg_dump andmebaas > väljundfail'''. Näitena kasutame andmebaasi nimega "payroll". <br /> | |||
<pre>pg_dump payroll > payroll.dump.out</pre> | <pre>pg_dump payroll > payroll.dump.out</pre> | ||
Andmebaasi taastamine: <br /> | |||
<pre>psql -d payroll -f payroll.dump.out</pre> | <pre>psql -d payroll -f payroll.dump.out</pre> | ||
==Huvitavad | ==Huvitavad fakte== | ||
*Skype kasutab PostgreSQL'i | *Skype kasutab PostgreSQL'i peamise andmebaasina. <br /> | ||
*Yahoo | *Yahoo sõnul suudeti võita maailma suurima ja koormatuima andmebaasi rekord, kasutades modifitseeritud PostgreSQL andmebaasi. Andmebaasi maht ületab 2 petabaiti. <br /> | ||
==Autor== | ==Autor== |
Latest revision as of 10:16, 11 June 2010
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