HTML

Linux admin hogyanok

Köszöntelek a Linux admin hogyanok blogomon! Munkám során, sok saját jegyzetet készítek, hogy visszakeresve könnyebben menjen legközelebb. Arra gondoltam, ezt meg is osztom, hátha másoknak is segítségére válik. Enjoy! :)

Friss topikok

  • bAndie91: volumeDown+middle+Hangup kombinációval sikerült "Downloading" módba boot-olni (gondolom egyenlõ a ... (2011.02.18. 12:41) Android update (HTC magic 1.6-2.1)

Linkblog

Postgres 9.0 install és a többiek (pgadmin, pgagent, dblink, postgis)

burgerrecords 2010.11.25. 15:05

Postgres adatbázis kezelő telepítésére, több módszert használhatunk, azonban elötte tudnunk kell mire fogjuk használni késöbbiekben, és ha ennek megfelelően választjuk ki a módszert igencsak megkönnyítjük a késöbbi dolgokainkat.

Következzenek tehát a lehetősegek postgres 9.0 telepítéshez Centos 5-re.

-Telepítés forrásból:

Nos ezt akkor érdemes használni, ha teljesen sajátosak az igényeink, esetleg, több rendszerre ugyanazt a beállításokat akarjuk felvinni stb, ugyanis legjobban ez konfigurálható. Most erről itt nem írnék többet, ha ez érdekel katt ide.

-Telepítés hivatalos repository-ból.

A jelenleg futó linux alapú oprendszerek "gyári" repo-iból, a 8.4 verzió érhető el. Bár sokszor ez is elég lehet (itt megint előjön az elején feltett: "mire használjuk" majd kérdés), a fejlesztők sokszor ragaszkodnak a legfrissebb, stabil verzióhoz, itt jön képbe a postgres 9.0 hivatalos tároloja. Ez RedHat/Centos/Fedora-hoz való repo-k, de ha debian/ubuntu esetleg suse-hoz kéne, se keseredjünk, itt azt is elérhetjük :)

Telepítsük tehát a reponkat:

$rpm -Uvh http://yum.pgrpms.org/reporpms/9.0/pgdg-centos-9.0-2.noarch.rpmEz szépen mindent megcsinál helyettünk, még a gpg kulcsokat is feltölti, szóval ha egy

yum repolist -et lekérdezünk meg kell hogy kapjuk többeközött a

pgdg90       PostgreSQL 9.0 5 - x86_64    enabled

választ.

Ezek után nincs más dolgunk, csak felpakolni a minket érdeklő csomagokat. Ha csak alapteleítés kell nekünk, elég két csomag:

$yum install postgresql90.x86_64 postgresql90-server.x86_64

Ezek után első inditár előtt, adjuk hozzá /var/lib/pgsql/9.0/data/pg_hba.conf fájlban a következő sort

host   all    all   samenet   trust

-Telepítés Enterprise DB telepítő file-al (Legjobban Ajánlott!!):

Nem tudtam jobb nevet adni neki, lényeg hogy létezik az enterpriseDB-nek (postgresql hivatalosan támogatott verziója), ahol is egy előre gyártott .bundle file-ban (hasonlo a win-es exe-hez), sok minden belepakolnak.

Futassuk a szkriptet:

./postgresql-9.0.1-1-linux-x64.binEgy par kérdéses varázslón visz végig, pl hova telepítse magat a szoftver és hogy hol legyenek az adat file-ok, posgres user jelszavát stb. Ha kész a telepítés, állítsuk be a környezeti változokat. Egy előre legyártott remek szkript ezt meg is teszi nekünk ami a telepítési könyvtárban létre is jön, csak source-oljuk le.

source pg_env.sh

-Buktatók, avagy mire figyeljünk:

 /etc/init.d/postgresql-9.0 start

Starting PostgreSQL 9.0:
pg_ctl: another server might be running; trying to start server anyway
pg_ctl: could not start server
Examine the log output.
PostgreSQL 9.0 did not start in a timely fashion, please see /u01/pgsql/data/pg_log/startup.log for details

 ,  ha megnezzuk az ajánlott startup.log file-t jelzi, hogy "lock file "postmaster.pid" already exists", tehát  a pid file-ja már létezik. Semmi gond, töröljük a file-t :

rm -rf /u01/pgsql/data/postmaster.pidMajd pedig inditsuk újra el, most már szépen futni is fog.

 /etc/init.d/postgresql-9.0 start

Starting PostgreSQL 9.0:
waiting for server to start... done
server started
PostgreSQL 9.0 started successfully

Készen is volnánk a telepítés része, azonban ez csak a bevezető volt. Oroszlán rész még csak most következik.

Ha tavolrol kapcsoladasi error-t kapunk, szervesszuk a pg_hba.conf file-t  amiben is a hozzaféréseket finomhangolhatjuk. Pl azt szeretnénk ha mindenki mindenhonnan hozzáférhessen távolról is az adatbázishoz (persze jelszó attol még kell), adjuk a konfigurácios fájlhoz ezt a sort (csak másodikat)# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD
host    all         all         0.0.0.0/0               trust
A CIDR-ADDRESS részhez szabadon adhatunk, tartmányokat, vagy akár pontos IP-ket honnan is fogadjon kapcsolatokat.

Ne felejtsük a tüzfalon átengedni a postgres forgalmát (5432)!

$iptables -I RH-Firewall-1-INPUT -p tcp --dport 5432 -j ACCEPTItt sincs most korlatozas, honnan is kapcsolodhatunk az 5432-es portra, vagyis mindenhonnan engedelyezett.

 

 

-További összetevők telepítése:

Fejlesztő kollegák kérnek, telepíts nekik dblink-et, postgis-t, pgadmin, pgagent-et.

Ha ezeket gond nelkul akarjuk telepíteni és használni is, a legjobban akkor járunk, ha az egyes modulokat/programokat csomagból fordítjuk. Viszont lesz pár függőségi csomagunk amikre majd szükségünk lesz, azonban néhanyuk- a szükséges legújabb verzió -  csak a pgdg90 repoban talaljuk meg (pl Geos). Szóval ha eddig nem is volt fent a repo mert nem kellet, pakoljuk szépen fel a rend kedvéért.

$rpm -Uvh http://yum.pgrpms.org/reporpms/9.0/pgdg-centos-9.0-2.noarch.rpm

PgAdmin:

PgAdmin  népszerü open source alkalmazás, amivel deszktopunkról adminolhatjuk az adatbazisunk. A deszktop kliensünkön kivül a szerver oldalón is szükségünk lesz erre a programra. Amennyiben EnterpriseDB telepito file-al telepítettük a DB-nket, ez már benne is van, semmi dolgunk vele. Ha fent van a pgdg90 repon-k , csak keressünk rá és telepítsük.$ yum install pgadmin3_90Dblink:

Egy aprocska modul, melynek segítségével a távoli sémákból és adatbázisokból is kérhetünk le adatokat. Ez egy egyszerü sql file amit be kell importálnunk az adott sémába, ahol is használni szeretnénk. Ez az sql file a postgres-contrib csomagban található, ami az EnterpriseDB telepito file-al már rajta is van, ha pgdg90-es repo változatott használtjuk telepítsük a postgresql90-contrib csomagot.

Importálás a következő:

$psql -U postgres -d adatbazisod_neve -f /eleresi/utvonal/dblink.sqlKész is, illetve kész van, ha a public sémába akartad telepíteni, ugyanis az az alapértemezett. Igen ám, de vannak fejlesztök akik nem szeretik a public sémát és törlik egyből, nekik külön dblink séma kell és abban szeretnék hasznáni. Ebben az esetben töröljuk a public scheme majd hozzuk létre a dblink nevüt és probáljuk újra futattni a dblink.sql-t. Elvileg müködnie kell, de ha mégsem mert ilyesmi hibát kapunk , hogy : dblink ERROR:  no schema has been selected to create in, sincs gon, csak valtoztassuk meg a keresési útvonalat: (az utolsó parancsot, csak hiba esetén kell használnunk)

postgres=# DROP SCHEMA public;
DROP SCHEMA
postgres=# CREATE SCHEMA dblink;
CREATE SCHEMA
postgres=# ALTER USER postgres SET search_path to dblink;
ALTER ROLE
postgres=# SHOW search_path;
 search_path
-------------
 dblink
(1 row)

Ezek után már futathatjuk dblink.sql fájlunkat, a megfelelő helyre fogja a function-okat betölteni. Ha másik db-re is szeretnénk megcsináni, csak ugyanezt az "útvonalválasztást" be kell állítani ott is.

Postgis:

Ennek az alkalmazásnak a telepítésével postgresql szerverünk alkalmas lesz, földrajzi objektumok kezelésére is, vagyis például egy térképeket kezelő alkalmazáshoz telepítenünk kell. Mielőtt arra gondolnánk hogy ez speciális igeny, gondoljunk csak rá hogy manapság, már minden alkalmazásnak vagy honlapnak  van google map kiterjesztése.

Postgis-t is megtaláljuk csomag formájában a pdgd90 repo-ban, de nekem az valahogy nem müködött rendesen, szoval töltsük le a legfrissebb verziót, majd telepítsük. Azonban elötte kikell elégíteni pár függöséget, és ehez a pdgd90 repo-ra is szüksgégünk lesz, hiába is forrásból telepítjük a postgis-t.

yum install gcc libxml2 libxml2-devel geos geos-devel proj projMwget http://postgis.refractions.net/download/postgis-1.5.2.tar.gz
tar zxvf postgis-1.5.2.tar.gz
cd postgis-1.5.2
./config
make
make instal
Egyszerű nem? Jó is lenne, de van pár buktató amire figyelnünk kell. Ha valamilyen hibát dob, pl configure: error: could not find, valami csomag hiányzik, ellenőrizzük, hogy fent vannak e a függöségek (lsd előbb). 

Vagy ezt a hibát dobja:

make: *** [postgis] Error 2

Semmi gond,  a perl forditót nem találja, futassuk igy a make parancsot:

./configure
make PERL=$(which perl)
make PERL=$(which perl) install

 Ezek után nincs már hátra, mint beimportálni a postgis.sql-t. Ha nem találjuk keressünk rá.

find / -name postgis.sql

psql -U postgres -d postgres -f /elérési/útvonal/postgis.sql

Amire még előszeretettel panaszkodik, mindenféle lib-eket keress, amik -ha másnéven is- de fent vannak. Ilyenkor csináljunk rá symlinket és el is fogadja.

 

PgAgent:

Pgagent alkalmazás segítségével postgresql szervereinken komplex shell és batch szkripteket futathatunk időzitve. Telepítéséhez töltsuk le a legújabb stabil verziót.
Csomagoljuk ki, majd a pgagent nevu file-t másoljuk az /usr/bin/ könyvtárba. Figyeljünk rá, hogy legyen 755 jogosultsága futni.

tar xvf pgAgent-3.0.0-Linux.tar.gz
cd pgAgent-3.0.0-Linux/bin
cp pgagent /usr/bin/
Ezek után a szokásos: keressük meg a pgagent.sql fájlt, és importáljuk az adatbázisunkba:

psql -U postgres -d postgres -f /elérési/út/pgagent.sql

Majd készítsünk neki kézzel egy inditó szkriptet.

 

vim /etc/init.d/pgagent


#!/bin/bash
#
#   /etc/rc.d/init.d/pgagent
#
# Starts the pgagent daemon
#
# chkconfig: - 65 35
# description: PgAgent Postgresql Job Service
# processname: pgagent
# Source function library.
. /etc/init.d/functions


RETVAL=0
prog="PgAgent"

start() {
    echo -n $"Starting $prog: "
    daemon "pgagent hostaddr=127.0.0.1 dbname=postgres user=postgres"
    RETVAL=$?
    echo
}

stop() {
    echo -n $"Stopping $prog: "
    killproc /usr/bin/pgagent
    RETVAL=$?
    echo
}

#
#   See how we were called.
#
case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  reload|restart)
    stop
    start
    RETVAL=$?
    ;;
  status)
    status /usr/bin/pgagent
    RETVAL=$?
    ;;
  *)
    echo $"Usage: $0 {start|stop|restart|reload|status}"
    exit 1
esac

exit $RETVAL

Adjunk neki futási jogot:

chmod 755 /etc/init.d/pgagent
Ha most elindítjuk, valószinűleg, több lib-et is keress majd, ami fentvan ő mégse találja, mivel kicsit más a nevük.

Starting PgAgent: pgagent: error while loading shared libraries: libssl.so.0: cannot open shared object file: No such file or directory

meg még

Starting PgAgent: pgagent: error while loading shared libraries: libcrypto.so.0: cannot open shared object file: No such file or directory

Symlinkeljük be neki.
 

ln -s /lib/libssl.so.6 /lib/libssl.so.0

ln -s /lib/libcrypto.so.6 /lib/libcrypto.so.0
Most már mennie kell:

/etc/init.d/pgagent start
Starting PgAgent:                                          [  OK  ]
 

Szólj hozzá!

A bejegyzés trackback címe:

https://linuxadmin.blog.hu/api/trackback/id/tr852472693

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása