Lähtetekstist kompileeritud PostgreSQL kasutamine Debianiga

Allikas: Kuutõrvaja

Sissejuhatus

PostgreSQL tarkvara kasutamiseks Debian Lenny'ga on kolm võimalust

  • paigaldada tarkvara paketihaldusest, 20100505 on seal versioon 8.3.9
  • paigaldada tarkvara paketihaldusest, backports.org repositooriumist, 20100505 on seal versioon 8.4.3
  • kompileerida tarkvara aadressil http://www.postgresql.org/ jagatavast lähtetekstist

Käesolev tekst tegeleb juhtumiga, kus andmebaas ning olulised lisamoodulid on paigaldatud lähtetekstist, sellisel lähenemisel on sellised eelised

  • paindlikkus - kasutaja saab kontrollida, milliste omaduste PostgreSQL täpselt tekib
  • andmebaasi versioon - kasutaja saab valida, millist PostgreSQL versiooni kasutada

ja puudused

  • automaatsed veaparandused - kasutajal endal on kohustus veaparanduste ja versiooniuuenduste puhul kompileerida PostgreSQL, mida muidu võiks saada uuendada paketihalduse vahenditega
  • mitme samasuguste omadustega andmebaasi tekitamisel, nt arenduskeskkond, testkeskkond ja toodangu keskkond puhul tuleb mitu korda kompileerida ning seejuures hoolsasti jälgida, et protseduur alati samamoodi sooritatakse

Kasutaja peab ise otsustama, millisel viisil ta PostgreSQL tarkvara kasutab, paketihaldusest tuleva PostgreSQL kasutamist on kirjeldatud palas http://kuutorvaja.eenet.ee/wiki/Paketihaldusest_paigaldatud_PostgreSQL_kasutamine_Debianiga

Ettevalmistuste tegemine

Tekitada operatsioonisüsteemi kasutaja:grupp postgres:postgres kodukataloogiga /home/postgres

 # groupadd -g 110 postgres
 # useradd -u 110 -g postgres -m -d /opt/postgres postgres

Valmistame ette LVM abil failisüsteemid binari installi ning andmekluster (ingl. k. data cluster) kataloogide jaoks

  • /usr/local - kuigi PostgreSQL ise hakkab asuma kataloogis /usr/local/postgresql, nagu allpool näeme paigutame lisamooduli Postgis kataloogi /usr/local/postgis ja mõnus on neid korraga käsitleda
  • /data/postgresql - andmekluster
  • /data/backup/postgresql/archive-logs - arhiveeritud WAL logid
  • /var/log/postgresql - logid

Operatsioonisüsteemi peab olema paigaldatud pakett locales, paigaldatud lokaadid

 # locale -a
 C
 POSIX
 et_EE.utf8

kusjuures süsteemi vaikelokaat on C. Lokaadi lisamiseks sobib öelda

# dpkg-reconfigure locales

Tarkvara paigaldamine

Kasutame selleks GNU C kompilaatorit (gcc) ning muid abivahendeid, mida saab paigaldada öeldes

# apt-get build-dep postgresql-8.3
# apt-get install bison flex

Kusjuures, eksituste vältimiseks on parem kui paketihaldusest ei ole paigaldatud PostgreSQL tarkvara, ei teeke ega binaare, st mitte ühtegi neist pakettidest (see nimekiri pole lõplik)

postgresql  
postgresql-7.4
postgresql-8.0
postgresql-8.3
postgresql-8.3-pljava
...

Kui kõnealuses süsteemis kasutatakse nt PHPd koos PostgreSQLiga, siis libpq5 pakett on vajalik.

Paigaldamiseks tuleb logida süsteemi sisse kasutajana postgres ning pakkida lahti PostgreSQLi lähtetekst

$ mkdir 20100505 && cd 20100505
$ wget ftp://ftp.eenet.ee/pub/postgresql/source/v8.4.4/postgresql-8.4.4.tar.bz2
$ tar jxf postgresql-8.4.4.tar.bz2

Veendume, et protsessid ei käi ja failid ei ole kasutuses ning kui on asjakohane, liigutame vanad asjad eest ära

# mv /usr/local/postgresql /usr/local/postgresql-20100505-ennem-843-paigaldust
# mv /data/postgresql /data/postgresql-20100505-ennem-843-paigaldust

Konfigureerimine, kompileerime ning paigaldame

$ ./configure --with-perl --with-libxml --with-libxslt --with-openssl --with-pam --with-gssapi \
  --prefix=/usr/local/postgresql 1> ../configure-postgresql.1.log 2>../configure-postgresql.2.log
$ make 1> ../make-postgresql.1.log 2> ../make-postgresql.2.log
$ make install 1> ../make-install-postgresql.1.log 2> ../make-install-postgresql.2.log

Tulemusena paigaldatakse süsteemi

  • /usr/local/postgresql/bin - programmid
  • /usr/local/postgresql/share/doc/html - dokumentatsioon
  • /usr/local/postgresql/include - header failid
  • /usr/local/postgresql/lib - teegid

contrib moodulid

Kompileerimise õnnestumiseks tuleb PostgreSQL kompileerida võtmega --with-libxslt

 $ cd contrib/xml2
 $ make
 $ make install

Kui andmebaas juba töötab, tuleb laadida skript

 postgresql-8.3.7/contrib/xml2/pgxml.sql

pgcrypto mooduli paigaldamiseks tuleb öelda

 $ cd contrib/pgcrypto
 $ make
 $ make install

pldebuggeri paigaldamiseks tuleb tarkvara kopeerida aadressilt http://pgfoundry.org/projects/edb-debugger/ ning pakkida lahti contrib kataloogis

 $ tar zxf edb-debugger-0.93.tgz
 $ cp -a pldebugger postgresql-8.3.9/contrib
 $ make
 $ make install

Lisatakse failid

/usr/local/postgresql/share/contrib
/usr/local/postgresql/share/contrib/pldbgapi.sql
/usr/local/postgresql/lib
/usr/local/postgresql/lib/pldbgapi.so
/usr/local/postgresql/lib/plugins
/usr/local/postgresql/lib/plugins/plugin_debugger.so
/usr/local/postgresql/lib/targetinfo.so

TODO: selgitada välja, miks pldebugger ei kompileeru 8.4.3 PostgreSQLiga

PL/Java paigaldamine

PL/Java võimaldab kasutada java't andmebaasist. PL/Java kasutamiseks peab olema süsteemis 2010 aasta kevade seisuga JDK 1.6 ning tarkvara kodulehekülge asub aadressil http://wiki.tada.se/index.php/PL/Java

$ tar zxf pljava-src-1.4.0.tar.gz 
$ export JAVA_HOME=/usr/local/java
$ export PATH=/usr/local/java/bin:$PATH
$ make 1>../pljava-make.1.log 2>../pljava-make.2.log
$ make install 1>../pljava-make-install.1.log 2>../pljava-make-install.2.log

Failisüsteemi tekib juurde kaks faili

/usr/local/postgresql/lib/pljava.jar
/usr/local/postgresql/lib/pljava.so

Kui andmebaas juba töötab, tuleb laadida skript

 pljava/pljava-1.4.0/src/sql/install.sql

CVS'ist http://wiki.tada.se/index.php/CVS saab värskemat lähteteksti, nt võib see paremini kompileerida PostgreSQL v. 8.4.3 andmebaasiga

$ cvs -d:pserver:anonymous@cvs.pgfoundry.org:/cvsroot/pljava login
$ cvs -d :pserver:anonymous@cvs.pgfoundry.org:/cvsroot/pljava checkout org.postgresql.pljava
$ cvs -d :pserver:anonymous@cvs.pgfoundry.org:/cvsroot/pljava log org.postgresql.pljava

PL/Proxy

PL/Proxy https://developer.skype.com/SkypeGarage/DbProjects/PlProxy on PL/Proxy.

Tarkvara paigaldamine toimub sellise järgnevusena

 $ wget http://pgfoundry.org/frs/download.php/2665/plproxy-2.1.tar.gz
 $ tar zxf plproxy-2.1.tar.gz
 $ make
 $ make install
 /bin/sh /usr/local/postgresql/lib/pgxs/src/makefiles/../../config/install-sh -c \
   -m 644 plproxy.sql '/usr/local/postgresql/share/contrib'
 /bin/sh /usr/local/postgresql/lib/pgxs/src/makefiles/../../config/install-sh -c \
   -m 755  libplproxy.so.0.0 '/usr/local/postgresql/lib/plproxy.so'

ja tulemusena lisanduvad süsteemi kaks faili

 /usr/local/postgresql/share/contrib/plproxy.sql
 /usr/local/postgresql/lib/plproxy.so

Seejärel tuleb baasi keele lisamiseks täita plproxy.sql skript, nt öeldes

 $ psql -U postgres -h localhost portaal < /usr/local/postgresql/share/contrib/plproxy.sql

Iseenesest see skript sisaldab lauseid

 -- handler function
 CREATE FUNCTION plproxy_call_handler ()
 RETURNS language_handler AS '$libdir/plproxy' LANGUAGE C;
 
 -- language
 CREATE LANGUAGE plproxy HANDLER plproxy_call_handler;

Skytools

Skytools https://developer.skype.com/SkypeGarage/DbProjects/SkyTools tarkvara koosneb kolmes komponendist

  • PgQ - Pythoni skriptid ja PostgreSQL teegid
  • Londiste -
  • walmgr -

Tarkvara paigaldamiseks sobib sooritada nt selline järgnevus

# apt-get install python-psycopg2
$ wget http://pgfoundry.org/frs/download.php/2561/skytools-2.1.11.tar.gz
$ tar zxf skytools-2.1.11.tar.gz
$ ./configure --prefix=/usr/local/skytools
$ make
$ make install

Tulemusena lisandub failisüsteemi

  • /usr/local/skytools kataloogi mitmed utiliidid
  • /usr/local/postgresql/lib - PostgreSQL teegid
/usr/local/postgresql/lib/pgq_lowlevel.so
/usr/local/postgresql/lib/logtriga.so
/usr/local/postgresql/lib/pgq_triggers.so
  • /usr/local/postgresql/share/contrib kataloogi mitmed sql skriptid

Kui Skytools programmid ei ole tee peal, siis sobib nt pgqadm kasutamiseks öelda

$ export PYTHONPATH=/usr/local/skytools/lib/python2.5/site-packages
$ /usr/local/skytools/bin/pgqadm.py /home/postgres/londiste/ticker.ini status

PostGIS

PostGIS http://postgis.refractions.net/ (Geographic Information Systems Extensions to PostgreSQL) on PostgreSQL andmebaasi laiendus, mis võimaldab kasutada PostgreSQL andmebaasi GIS (Geographic Information Systems) objektide jaoks. Tavaliselt paigaldatakse lisaks ka PROJ4 ja GEOS teegid.

PROJ4 teekide paigaldamine

PROJ4 teekide lähtetekstid saab kopeerida aadressilt http://trac.osgeo.org/proj/ või paigaldada Debian Lenny paketihaldusest, paigaldame paketihaldusest (versioon 4.6.0-2)

 # apt-get install proj

GEOS teekide paigaldamine

Kuna PostGIS v. 1.5.1 nõuab GEOS (Geometry Engine - Open Source) teekide versiooni 3.1.1 või uuemat ning Debian Lenny paketihaldus sisaldab versiooni 3.0.0, tuleb lähtetekstid kopeerida aadressilt http://geos.refractions.net/. Kopileerimiseks sobib öelda

$ tar jxf geos-3.2.2.tar.bz2
$ ./configure --prefix=/usr/local/geos 1>../configure.geos.1.log 2>../configure.geos.2.log

kusjuures faili lõpus öeldakse, et ja see on ok

Swig: false
Python: false
Ruby: false
$ make 1>../make.geos.1.log 2>../make.geos.2.log
$ make install 1>../make-install.geos.1.log 2>../make-install.geos.2.log

PostGIS laienduse paigaldamine

PostGIS tuleb paigaldada peale seda, kui on paigadatud PROJ4 ja GEOS teegid ning PostgreSQL andmebaas.

 $ wget http://postgis.refractions.net/download/postgis-1.5.1.tar.gz
 $ cd postgis-1.5.1
 $ ./configure --with-geos --with-proj --with-geosconfig=/usr/local/geos/bin/geos-config --prefix=/usr/local/postgis \
   1>../postgis-configure-1.log 2>../postgis-configure-2.log

kusjuures postgis-configure-1.log peab ütlema midagi sellist lõpus

PostGIS is now configured for x86_64-unknown-linux-gnu

-------------- Compiler Info ------------- 
 C compiler:           gcc -g -O2
 C++ compiler:         g++ -g -O2

-------------- Dependencies -------------- 
 GEOS config:          /usr/local/geos/bin/geos-config
 GEOS version:         3.2.2
 PostgreSQL config:    /usr/local/postgresql/bin/pg_config
 PostgreSQL version:   PostgreSQL 8.4.3
 PROJ4 version:        46
 Libxml2 config:       /usr/bin/xml2-config
 Libxml2 version:      2.6.32
 PostGIS debug level:  0

-------- Documentation Generation -------- 
 xsltproc:             
 xsl style sheets:     
 dblatex:              
 convert:       

Sellised vealogis esinevad teated ei pruugi olla olulised

configure: WARNING: ImageMagick does not seem to be installed. Documentation cannot be built
configure: WARNING: xsltproc is not installed so documentation cannot be built
configure: WARNING: dblatex is not installed so PDF documentation cannot be built
configure: WARNING: could not locate Docbook stylesheets required to build the documentation
configure: WARNING: could not locate CUnit required for liblwgeom unit tests

Kompileerimiseks ja paigaldamiseks tuleb öelda

 $ make 1> ../postgis-make-1.log 2>../postgis-make-2.log
 $ make install 1> ../postgis-make-install-1.log 2>../postgis-make-install-2.log

Tulemusena paigaldatakse süsteemi failid

/usr/local/postgresql/bin/shp2pgsql
/usr/local/postgresql/bin/pgsql2shp
/usr/local/postgresql/share/contrib/postgis-1.5/postgis_upgrade_13_to_15.sql
/usr/local/postgresql/share/contrib/postgis-1.5/postgis_upgrade_14_to_15.sql
/usr/local/postgresql/share/contrib/postgis-1.5/postgis_upgrade_15_minor.sql
/usr/local/postgresql/share/contrib/postgis-1.5/uninstall_postgis.sql
/usr/local/postgresql/share/contrib/postgis-1.5/postgis.sql
/usr/local/postgresql/share/contrib/postgis-1.5/spatial_ref_sys.sql
/usr/local/postgresql/lib/postgis-1.5.so

PostGIS tarkvara uuendamine

PostGIS tarkvara uuendamisel uuendatakse kolme sorti komponente

  • PostGIS C teek failisüsteemis
  • PostGIS funktsioonid andmebaasis
  • PostGIS andmed andmebaasis

PostGIS README.postgis kirjeldab kahte sorti uuendusi

  • soft upgrade - TODO
  • hard upgrade - nt juhtumil, kui muutub andmebaasi major versioon, 8.3 -> 8.4

Järgnevas kirjeldatakse hard upgrade'i, toimub kaks uuendust

  • PostgreSQL 8.3.7 -> 8.4.3
  • PostGIS 1.3 -> 1.5.1

Olemasoleva andmebaasi töö lõpetamine

Olgu seoses PostGISiga kasutusel kaks andmebaasi, loom ja lind. Versiooniuuendusel on vaja kasutada nn -Fc formaadis andmebaaside dumpisid, nende moodustamiseks sobib öelda

$ pg_dump -Fc -h localhost -U postgres -f loom-20100505.fcdump loom
$ pg_dump -Fc -h localhost -U postgres -f lind-20100505.fcdump lind

Seejärel tuleb olemasoleva andmebaasi protsessid lõpetada ning failisüsteemi tasemel liigutada eest ära olemasolevad kataloogid

  • /data/postgresql - andmekluster
# mv /data/postgresql /data/postgresql-20100505
  • /usr/local/postgresql - PostgreSQL binary
# mv /usr/local/postgresql /usr/local/postgresql-20100505
  • /usr/local/postgis - PostGIS teek
# mv /usr/local/postgis /usr/local/postgis-20100505

Uue PostgreSQL ja PostGIS tarkvara paigaldamine ja käivitamine

Uus PostgreSQL ja PostGIS tarkvara paigaldamise protseduur iseenesest ei erine sellest, kas tegu on esmakordse tarkvara kasutama asumise juhtumiga või kavatsusega sooritada versiooniuuendus.

Kuna PostGIS teek asub versioonil 1.5.1 PostgreSQL teekide kataloogis ning andmebaasi dumpis on viidatud vanale teegi asukohale, tuleb moodustada vastav link

$ mkdir /usr/local/postgis/lib
$ ln -s /usr/local/postgresql/lib/postgis-1.5.so /usr/local/postgis/lib/liblwgeom.so

PostgreSQL käivitamine toimub tavapäraselt, kuid lisaks tuleb näidata GEOS teegi asukoht, nt LD_LIBRARY_PATH abil

$ export LD_LIBRARY_PATH=/usr/local/geos/lib
$ /usr/local/postgresql/bin/pg_ctl -D /data/postgresql -l logfile start

kusjuures LD_LIBRARY_PATH rida sobib lisada kasutaja shelli profiili.

Andmete import

Enne andmete importi tuleb moodustada andmebaasi kasutajad, selleks sobib kasutada vana andmebaasi töö lõpetamisel tehtud märkmeid.

$ pg_dumpall -g -h localhost -U postgres

kus -g näitab, et tuleb väljastada globaalne osa andmebaasist, praktiliselt rollide kirjeldused.

$ psql -h localhost -U postgres postgres < globals.sql

Seejärel tuleb seada sobivalt keskkonnamuutujad, nt

$ export PGPASSWORD=parool
$ export PGHOST=localhost
$ export PGPORT=5432
$ export PGUSER=postgres

ning öelda

$ sh utils/postgis_restore.pl postgis/postgis.sql loom loom-20100505.fcdump \
  1> postgis-loom-restore.1.log 2> postgis-loom-restore.2.log
$ sh utils/postgis_restore.pl postgis/postgis.sql lind lind-20100505.fcdump \
  1> postgis-lind-restore.1.log 2> postgis-lind-restore.2.log


Seejuures kirjutatakse error logisse, mis peaks olema ohutu

Use of uninitialized value $larg in concatenation (.) or string at utils/postgis_restore.pl line 679, <INPUT> line 1076.
Use of uninitialized value $rarg in concatenation (.) or string at utils/postgis_restore.pl line 679, <INPUT> line 1076.
Use of uninitialized value $larg in concatenation (.) or string at utils/postgis_restore.pl line 679, <INPUT> line 1085.
Use of uninitialized value $rarg in concatenation (.) or string at utils/postgis_restore.pl line 679, <INPUT> line 1085.
ERROR:  language "plpgsql" already exists
ERROR:  function st_histogram2d_in(cstring) does not exist
ERROR:  operator family "btree_geometry_ops" for access method "btree" already exists
ERROR:  operator family "gist_geometry_ops" for access method "gist" already exists

Tegevuse käigus maksab jälgida logisid. Tulemusena peaks moodustuma töötav uuendatud andmebaas.

Andmebaasi moodustamine ja käivitamine

Andmebaasi moodustamiseks tuleb esmalt initsialiseerime andmebaasi, näidates sobiva lokaadi

 bash$ /usr/local/postgresql/bin/initdb -E UNICODE --locale et_EE.UTF-8 -D /data/postgresql
 The files belonging to this database system will be owned by user "postgres".
 This user must also own the server process.
 
 The database cluster will be initialized with locale et_EE.UTF-8.
 initdb: could not find suitable text search configuration for locale et_EE.UTF-8
 The default text search configuration will be set to "simple".
 
 fixing permissions on existing directory /data/postgresql ... ok
 creating subdirectories ... ok
 selecting default max_connections ... 100
 selecting default shared_buffers/max_fsm_pages ... 32MB/204800
 creating configuration files ... ok
 creating template1 database in /data/postgresql/base/1 ... ok
 initializing pg_authid ... ok
 initializing dependencies ... ok
 creating system views ... ok
 loading system objects' descriptions ... ok
 creating conversions ... ok
 creating dictionaries ... ok
 setting privileges on built-in objects ... ok
 creating information schema ... ok
 vacuuming database template1 ... ok
 copying template1 to template0 ... ok
 copying template1 to postgres ... ok
 
 WARNING: enabling "trust" authentication for local connections
 You can change this by editing pg_hba.conf or using the -A option the
 next time you run initdb.
 
 Success. You can now start the database server using:
 
     /usr/local/postgresql/bin/postgres -D /data/postgresql
 or
     /usr/local/postgresql/bin/pg_ctl -D /data/postgresql -l logfile start

Edasise anmebaasi kasutamisel tuleks kohendada seadistusfaili ja keskkonnamuutujaid kasutuses oleva lokaadi osas

nt et_EE.UTF-8 kodeeringu puhul sobivad sellised muudatused seadistufailis

  # These settings are initialized by initdb, but they can be changed.
 lc_messages = 'et_EE.UTF-8'                     # locale for system error message
                                                 # strings
 lc_monetary = 'et_EE.UTF-8'                     # locale for monetary formatting
 lc_numeric = 'et_EE.UTF-8'                      # locale for number formatting
 lc_time = 'et_EE.UTF-8'                         # locale for time formatting

ja sellised keskkonnamuutujad

 export LC_CTYPE=et_EE.UTF-8
 export LC_COLLATE=et_EE.UTF-8

Andmebaasi seiskamiseks ja käivitamise võiks sobida nt selline start-skript

 # cat /etc/init.d/postgresql
 #!/bin/bash
 
 case "$1" in
   start)
     echo "Starting PostgreSQL server"
     /bin/su - postgres -c ". /home/postgres/pg-start.env && /usr/local/postgresql/bin/pg_ctl \
        start -D /data/postgresql -l /var/log/postgresql/pg_ctl.log"        
     ;;
 
   stop)
     echo "Stopping PostgreSQL server"
     /bin/su - postgres -c ". /home/postgres/pg-start.env && /usr/local/postgresql/bin/pg_ctl \
       stop -D /data/postgresql -m fast -l /var/log/postgresql/pg_ctl.log"         
     ;;
 
   *)
     echo "Usage: /etc/init.d/postgresql {start|stop}"
     exit 1
 esac
 
 exit 0

Kus /home/postgres/pg-start.env failis on kirjeldatud keskkonnamuutujad nt selliselt

 # cat /home/postgres/pg-start.env
 JAVA_HOME=/usr/local/java
 UL=/usr/local
 
 export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:\
   /usr/local/java/bin:/opt/oracle/database/bin
 export JAVA_HOME=/usr/local/java
 export ORACLE_HOME=/opt/oracle/database
 
 export LD_LIBRARY_PATH=$JAVA_HOME/jre/lib/amd64:$JAVA_HOME/jre/lib/amd64/server:$UL/proj/lib:\
   $UL/geos/lib:$UL/postgis/lib:/opt/oracle/database/lib:/opt/oracle/database/lib32
 export CLASSPATH=$UL/postgresql/lib/pljava.jar:$UL/xt/xerces.jar:$UL/xt/sax2.jar:$UL/xt/xt20051206.jar:\
   $UL/xmlsec/commons-logging-api.jar:$UL/xmlsec/serializer.jar:$UL/xmlsec/xercesImpl.jar:\
   $UL/xmlsec/xmlsec-1.4.2.jar:$UL/xmlsec/xmlsecTests-1.4.2.jar:$UL/xmlsec/commons-logging.jar:\
   $UL/xmlsec/xalan.jar:$UL/xmlsec/xml-apis.jar:$UL/xmlsec/xmlsecSamples-1.4.2.jar
 
 export LC_CTYPE=et_EE.UTF-8
 export LC_COLLATE=et_EE.UTF-8

Tarkvara uuendamine

  • Kui muutub PostgreSQLi nn minoorne versiooninumber, st tagant poolt kolmas, nt 8.3.6 -> 8.3.7, siis võib sama andmeklustri kataloogi kasutada.
  • Kui muutub PostgreSQLi nn mažoorsem versioonumber, nt tagant poolt teine, nt 8.2.x -> 8.3.y, siis tuleb andmed esmalt kopeerida pg_dumpall käsu abil töötavast vanast baasist ära, samal ajal peaks pg_hba.conf failist kasutajate ja programmide ligipääs baasile olema keelatud
 $ /usr/local/postgresql/bin/pg_dumpall -h 127.0.0.1 -U postgres > pg_dumpall-20090329-8.2.sql

ning seejärel uude initsialiseeritud baasi sisse lugeda, öeldes nt

 $ /usr/local/postgresql/bin/psql -h 127.0.0.1 -U postgres template1 < pg_dumpall-20090329-8.2.sql \
 1>pg_dumpall-20090329-8.3-in-1.log 2>pg_dumpall-20090329-8.3-in-2.log

pgpool

TODO

PgBouncer

TODO

Andmebaasi kodeering

 portaal=# show server_encoding;
 server_encoding 
 -----------------
  UTF8
 (1 row)
 
 portaal=# show client_encoding;
 client_encoding 
 -----------------
  UTF8

Märkused

  • Selleks, et psql, pg_dump jm käsud ei küsiks parooli sobib seadistada keskkonnamuutuja, kuid kasutaja peab ise otsustama, kas selline lahendus on talle sobiv
 $ export PGPASSWORD=parool
  • Kui WAL logide kataloog saab täis, siis tekib logisse igal minutiel selliseid sissekandeid
 2009-06-17 23:59:01 EEST    3624  4a1ba0db.e28  43405 2009-05-26 10:57:15 EEST 0 LOG:  archive command failed with exit code 1
 2009-06-17 23:59:01 EEST    3624  4a1ba0db.e28  43406 2009-05-26 10:57:15 EEST 0 DETAIL:  The failed archive command was: test \
   ! -f /data/backup/postgresql/archive-logs/0000000100000018000000CD \
   && cp pg_xlog/0000000100000018000000CD /data/backup/postgresql/archive-logs/0000000100000018000000CD
 2009-06-17 23:59:01 EEST    3624  4a1ba0db.e28  43407 2009-05-26 10:57:15 EEST 0 WARNING:  transaction log file \
   "0000000100000018000000CD" could not be archived: too many failures

Tavaliselt aitab lihtsalt kataloogi ruumi juurde tegemine, nt vanemate logide kustutamise teel ning kuna viimane mida kopeerida ei saada on tõenäoliselt poolik fail, tuleb see kustutada WAL logide kataloogist. Seejärel jätkab süsteem normaalset tööd.

PostgreSQL arendusversioon

Aadressil http://developer.postgresql.org/pgdocs/postgres/anoncvs.html saab tutvuda juhatustega, kuidas kopeerida PostgreSQL lähtetekstid versioonihaldusest ning neid kasutama asuda.

Kasulikud lisamaterjalid