Home / LinuxUser / 2003 / 02 / PostgreSQL als Datenbank für Star- und OpenOffice

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

War doch klar...
(243 Punkte bei 15 Stimmen)
Re: War doch klar...
(179 Punkte bei 5 Stimmen)
Re: Skype für 64-Bit-Prozessor u. Suse 12.1
(161 Punkte bei 4 Stimmen)
Kubuntu verliert Finanzierung
(130 Punkte bei 4 Stimmen)
Offen fürs Geschäft
(80 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Shopping
Topsuche
 
Yatego Deutschlands größte Shoppingmall. 10000 Shops,
3.5 Mio Artikel. Alle Bestseller, Servertechnik und Technik Themenwelten.

Notebooks und Netzwerkhardware bei Mercateo günstig kaufen.
Internet Telefonie mit VoIP Telefonen von Gigaset
Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.
Günstige Digitalkameras finden Sie im Preisvergleich.

Datenbank an Office

PostgreSQL als Datenbank für Star- und OpenOffice

01.02.2003 Wer von MS Office auf Open- oder StarOffice umsteigt, vermisst Access. Doch mit PostgreSQL lassen sich die beiden Office-Suites problemlos um eine richtige Datenbank erweitern.

Ein Office-Komplettpaket ohne Desktop-Datenbank sorgt heutzutage eher für Stirnrunzeln. Ehe man jedoch an die Leistungsgrenzen dieser "Zugabe" stößt, lohnt sich die Überlegung, gleich ein richtiges und zukunftssicheres Datenbank-Management-System (DBMS) zu verwenden.

Unter Linux bietet sich die SQL-Datenbank PostgreSQL an, bei der mehrere Nutzer zeitgleich ein und dieselbe Tabelle bearbeiten können, solange sie zu einem Zeitpunkt verschiedene Einträge (alias Tabellen-Zeilen) manipulieren. Dieses DBMS ist eines der wenigen freien Systeme, die auch mit Fremdschlüsseln und Transaktionen umgehen können. Über die ODBC-("Open Database Connectivity"-)Schnittstelle lässt es sich an StarOffice oder OpenOffice anpfropfen.

Benötigte Programmpakete

postgresql PostgreSQL-Client, zu installieren auf dem Server-Rechner sowie optional auf Linux-Clients, die für die Fernadministration des DBMS benutzt werden
postgresql-server PostgreSQL-Datenbanksystem, der eigentliche Server
postgresql-odbc ODBC-Treiber für PostgreSQL, benötigt auf dem Server- und jedem Linux-Client-Rechner, der via Star-/OpenOffice auf die Datenbank zugreifen soll
unixODBC ODBC-Treiber-Manager für Linux, benötigt auf dem Server und jedem Linux-Client
postgresql-tcl Schnittstelle zur Skriptsprache Tcl, benötigt auf dem Server sowie optional auf zur Fernadministration gedachten Linux-Clients
postgresql-tk pgaccess-Client, eine grafische Benutzerschnittstelle, die auf dem Server sowie optional auf Linux-Clients für die Fernadministration gebraucht wird (Abbildung 1)
unixODBC-kde (Red Hat), qt-ODBC (Red Hat), unixODBC-gui-gtk (SuSE und Mandrake), unixODBC-gui-qt (SuSE und Mandrake), unixodbc-bin (Debian), godbcconfig (Debian) Grafische Konfigurationstools für odbc.ini und odbcinst.ini

Abbildung 1: Mit pgaccess lassen sich auch ohne SQL-Kenntnisse Tabellen in der Datenbank anlegen

Am Anfang war PostgreSQL

Zu diesem Zweck gilt es zunächst, die Datenbank selbst und einige Hilfspakete zu installieren. Tabelle 1 gibt einen Überblick: Die Paketbezeichnungen sind bei den gängigen Distributionen nahezu identisch. Geringfügige Abweichungen gibt es bei den ODBC-Konfigurationstools. Platz sollte man nicht zu knapp einplanen: Die paar MByte PostgreSQL-Paket entpuppen sich nach dem Anlegen der ersten Datenbank schnell als Plattenplatzfresser von mehr als 50 MByte.

Kommen für die eigene Distribution gedachte Binärpakete zum Einsatz, legt der Paketmanager beim Einspielen des Server-Pakets den Unix-User postgres als Datenbank-Administrator sowie die Gruppe postgres an. Zudem erzeugt er das Home-Verzeichnis des Datenbank-Admin-Users unterhalb von /var/lib oder /etc, das die Konfiguration des DBMS enthält, und ein Arbeitsverzeichnis, in dem die Datenbanken selbst abgelegt werden. Dieses heißt pgsql oder postgres und befindet sich meist in /usr/lib. Die Datenbanken landen dann in /usr/lib/pgsql/data oder /usr/lib/postgres/data. Um die Verwirrung komplett zu machen, trennen manche Distributionen Arbeits- und Home-Verzeichnis gar nicht erst voneinander: SuSE 8.0 legt das data-Verzeichnis im postgres-Home-Verzeichnis /var/lib/pgsql ab.

Wer PostgreSQL aus dem Quellcode kompiliert oder ältere Binärpakete (vor Version 7) einspielt, muss selbst dafür Sorge tragen, dass User, Gruppe und Verzeichnisse angelegt werden. Nach der Installation bleiben noch einige Aufgaben für root übrig: So sollte der User postgres mit dem Kommandozeilen-Befehl

passwd postgres

ein Passwort zugewiesen bekommen. Zudem empfiehlt es sich, die Rechte am Home- und Arbeitsverzeichnis von postgres zu kontrollieren:

ls -l  /var/lib | grep pgsql

Gibt dieser Befehl nichts aus, suchen Sie mit grep nach dem String postgres. In Ordnung ist das folgende Ergebnis:

drwx——  4 postgres postgres 1024 Okt 16 21:34 pgsql

Sollte statt postgres root stehen, passen Sie die Eigentumsverhältnisse an:

cd /var/lib
chown -R postgres:postgres pgsql

Wenn es wie bei SuSE 8.0 keine extra postgres-Gruppe gibt, darf das Verzeichnis auch in Obhut der Gruppe daemon verbleiben. Benutzt Ihre Distribution ein separates Arbeitsverzeichnis /usr/lib/psql oder /etc/postgres, stellen Sie auf gleiche Weise sicher, dass es dem Datenbank-User postgres gehört. Bei Debian finden Sie an beiden Stellen Links vor, die auf das jeweils richtige Verzeichnis verweisen. Ist dies auf anderen Distributionen der Fall, müssen Sie zudem die Besitzverhältnisse des Ziel-Ordners überprüfen.

Start des Datenbanksystems

Mit der Installation landet in /etc/init.d (bzw. /etc/rc.d/init.d) ein Skript zum Starten und Beenden von PostgreSQL. Ruft man dieses (im Beispiel heißt es postgres, bei SuSE hingegen postgresql) mit der Option start auf, startet das DBMS (Kasten 1):

/etc/init.d/postgres start

Kasten 1: Das Kreuz mit dem Pfad

Prädestiniert zum Aufruf des PostgreSQL-Init-Skripts ist selbstverständlich der User postgres. Doch wenn dieser unter SuSE (getestete Version: 8.0) /etc/init.d/postgresql start aufruft, kommt er nicht weit:

Starting PostgreSQL /etc/init.d/postgresql: checkproc: command not found
                                                                     done

Die Ursache: Der Suchpfad des Users postgres enthält das Verzeichnis mit dem im Skript benutzten Programm checkproc nicht. Fügt man ihn vor dem Aufruf des Init-Skripts mit

export PATH=$PATH:/sbin

hinzu, kann auch postgres (und nicht nur root) das DBMS über das Init-Skript starten. (Patricia Jung)

Vor dem Herunterfahren des Computers stoppt man es durch Aufruf des Skripts mit der Option stop. Sinnvollerweise passiert dieses Starten und Stoppen beim Wechsel des Runlevels [2] automatisch; viele Distributionen sehen das bereits ab Installation vor. Wenn nicht, setzen Sie die nötigen Links, bei SuSE 8.0 etwa wie in Listing 1, oder überlassen linuxconf oder ksysv diese Aufgabe.

Listing 1

Erweitern der Runlevel um das PostgreSQL-Startskript (SuSE 8.0)

ln -s /etc/init.d/postgresql /etc/init.d/rc3.d/S97postgresql
ln -s /etc/init.d/postgresql /etc/init.d/rc5.d/S97postgresql
ln -s /etc/init.d/postgresql /etc/init.d/rc1.d/K97postgresql
ln -s /etc/init.d/postgresql /etc/init.d/rc6.d/K97postgresql
        @KE:

Bei Bedarf starten Sie die Datenbank manuell mit dem Befehl postmaster:

/usr/lib/postgresql/bin/
postmaster -i -D /var/lib/postgres/
data &

Der Pfad zum Programm variiert, bei SuSE findet man es beispielsweise unter /usr/bin/postmaster. Die Option -i schaltet den Zugang zur Datenbank über's Netz an; dem -D folgt der Pfad zu data.

Damit der Netzzugriff auch dann funktioniert, wenn das Init-Startskript die Datenbank startet, kontrollieren Sie, ob in der postmaster-Konfigurationsdatei postgresql.conf im data-Verzeichnis die Zeile tcpip_socket = 1 oder tcpip_socket = "true" (ohne Kommentarzeichen am Zeilenanfang) steht. Dann können Sie auch beim postmaster-Aufruf über die Kommandozeile den Parameter -i weglassen.

Sollte der Datenbankserver nach einem PC-Absturz mit der Behauptung

pg_ctl: Another postmaster may be running
pg_ctl: cannot start postmaster

nicht mehr starten wollen, enthält das data-Verzeichnis eine Datei postmaster.pid mit der ProzessID des alten postmaster-Prozesses. Sie muss gelöscht werden, bevor der neue Datenbank-Server starten kann.

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

706 Hits
Wertung: 0 Punkte (0 Stimmen)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 03/2012

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,50 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 56,10) können Sie im LNM-Shop bestellen.

Tipp der Woche

Duden Korrektor unter 64-Bit
Duden Korrektor unter 64-Bit
Tim Schürmann, 06.02.2012 10:36, 0 Kommentare

Der Duden Korrektor bietet eine äußerst nützliche Rechtschreib- und Grammatikkorrektur für LibreOffice und bringt in der aktuellen Version 8 e...

Aktuelle Fragen

Ubuntu 11.10 Compiz 3D Cube flackern
Moritz Obenauer, 12.02.2012 12:25, 0 Antworten
Hallo! Ich habe Ubuntu 11.10 mit Unity und den Compiz 3D Cube ein gerichtet. Er funktioniert...
Suse 12.1 Bootvorgang bleibt seit Update stehen
Wimpy *, 12.02.2012 09:22, 2 Antworten
Seit Update auf Kernel 3.1.9-1.4-desktop i686 bleibt der Bootvorgang stehen. Es erscheint der gr...
N24 Stick (Huawei E173) und Ubuntu 11.04
Patrick Obenauer, 11.02.2012 11:54, 1 Antworten
Hallo zusammen! Ich benutze einen alten Laptop, der mit Ubuntu 11.04 flott und problemlos läuft....
Wie kann man beim Einsatz von Compiz die Fenster-Dekoration einstellen?
GoaSkin , 10.02.2012 20:12, 0 Antworten
Hallo, ich nutze Linux Mint mit dem Gnome-Derivat Mate. Da die Distribution Compiz nicht autom...
rndc reload zone - failed bad zone
Ludwig jun. B., 06.02.2012 16:08, 2 Antworten
Schönen guten Tag, ich habe folgendes Problem. Immer wenn ich folgendes Kommando ausführen bek...