postgresql
 BACK ..
 Start mit PostgreSQL
 ====================
 ###
 ###############################################################################
 ###
 Postgresql:
 ===========
         Ausserdem steht online das Buch von Bruce Momijan zur Verfuegung:
         http://www.ca.postgresql.org/docs/aw_pgsql_book/index.html
         Das Buch ist bei Addison Wesley in deutscher uebersetzung erschienen;
         nach meiner Meinung nicht nur das beste Buch zu Datenbanken,
         sondern eines der besten auf dem IT-Buchmarkt ueberhaupt,
         vergleichbar mit LaTeX von Kopka und Linux von Kofler!
 ###
 ###############################################################################
 ###
 FreeBSD (postgresql 7.1.3):
 ===========================
 Initialisierung eines Datenbank-Clusters:
 -----------------------------------------
 ### für den Standart DB-cluster /usr/local/pgsql/data
   su -l pgsql -c initdb
 oder
   su -l pgsql -c "initdb --encoding=ISO8859-15"  # kann Umlaute
 oder
   su -l pgsql -c "initdb --encoding=LATIN9"      # kann Umlaute
 oder
   su -l pgsql -c "initdb --encoding=SQL_ASCII"   # Standard, kann keine Umlaute
 oder
   su -l pgsql -c "initdb --encoding=UNICODE"     # soll alles können (aber nicht bei mir)
 oder
   su -l pgsql -c "initdb -E ISO8859-15"          # kann Umlaute
 oder
   su -l pgsql -c "initdb -E LATIN9"              # kann Umlaute
 oder
   su -l pgsql -c "initdb -E SQL_ASCII"           # Standard, kann keine Umlaute
 oder
   su -l pgsql -c "initdb -E UNICODE"             # soll alles können (aber nicht bei mir)
 ### für einen gesonderten DB-cluster /usr/local/pgsql/adressen
   su -l pgsql -c "initdb -D /usr/local/pgsql/adressen"
 Start von PostgreSQL unter FreeBSD:
 -----------------------------------
 normaler Weg:
     /usr/local/etc/rc.d/010.pgsql.sh start
 weitere Start-Moeglichkeiten:
     /usr/local/bin/postmaster -D /usr/local/pgsql/data
     /usr/local/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start
 Fuer postmaster Einstallungen, siehe ~pgsql/data/postgresql.conf
     (/usr/local/pgsql/data/postgresql.conf)
 ###############################################################################
 #
 Postgresql:
 -----------
         Ausserdem steht online das Buch von Bruce Momijan zur Verfuegung:
         http://www.ca.postgresql.org/docs/aw_pgsql_book/index.html
         Das Buch ist bei Addison Wesley in deutscher uebersetzung erschienen;
         nach meiner Meinung nicht nur das beste Buch zu Datenbanken,
         sondern eines der besten auf dem IT-Buchmarkt ueberhaupt,
         vergleichbar mit LaTeX von Kopka und Linux von Kofler!
 #===============================================================================
 EINLOGGEN:
 psql -U pgsql [Datenbank]
 \l      # SHOW DATABASES
 \dt     # SHOW TABLES
 \?      # alle Kuerzel
 #------------------------------------------------------------------------------
 su - [postgres/pgsql]
 initdb
 vi ~/pgsql/data/pg_hba.conf
 ### die letzten beiden Zeilen einkommentieren (ist in aktuellen Versionen aktiv)
         local      all                                          trust
         host       all         127.0.0.1     255.255.255.255    trust
 createuser [user]
 createdb -U pgsql --encoding=SQL_ASCII [database]
 oder
 createdb -U pgsql --encoding=LATIN9 [database]
 # Backup zurueckschreiben:
 psql -f db.out [database] pgsql
 psql -U pgsql -d [database] -f db.out
 #------------------------------------------------------------------------------
 # "IDENT authentication failed for user ..."
 # ==========================================
 You have enabled ident-based authentication for user
 opennms in your postgres-configuration and either failed to start
 the identd server or enabled the feature in error. Have a look in
 ~postgres/data/{pg_hba.conf|pg_ident.conf} for an explanation
 of how this is supposed to work.
 "Host-based access control": pg_hba.conf
 siehe  "http://nodevice.com/sections/ManIndex/man1093.html"
 Default-Einstellungen muessen aktiviert werden:
 local        all                                         trust
 host         all         127.0.0.1     255.255.255.255   trust
 #------------------------------------------------------------------------------
 Auf der Kommandozeile erfolgen die Eingabe von Datenbankbefehlen wie folgt:
 ---------------------------------------------------------------------------
 "pgsql"               # FreeBSD - PostgreSQL-[USER]
 "postgres"            # Linux - PostgreSQL-[USER]
 ### auflisten aller Datenbanken:
 psql -U [USER] -l
 ### reorganisieren einer Datenbank
 psql -d [DATABASE] -U [USER] -c "VACUUM ANALYZE"
 oder
 psql -U [USER] -c "VACUUM ANALYZE" [DATABASE]
 oder
 psql -c "VACUUM ANALYZE" [DATABASE] [USER]
 ### einfache SELECT-Anweisung
 psql -d [DATABASE] -U [USER] -c "SELECT * FROM [TABELLE]"
 ### einfache INSERT-Anweisung
 psql -d [DATABASE] -U [USER] -c "INSERT INTO [TABELLE] (spalte1, spalte2, spalte3, spalte4) VALUES ('wert1','wert2','wert3','wert4');"
 oder
 psql -c "INSERT INTO [TABELLE] (spalte1, spalte2, spalte3, spalte4) VALUES ('wert1','wert2','wert3','wert4');" [DATABASE] [USER]
 bei der Fehlermeldung "Argument list too long" ist es so besser:
 echo "INSERT INTO [TABELLE] (spalte1, spalte2, spalte3, spalte4) VALUES ('wert1','wert2','wert3','wert4');" | psql -d [DATABASE] -U [USER]
 oder
 echo "INSERT INTO [TABELLE] (spalte1, spalte2, spalte3, spalte4) VALUES ('wert1','wert2','wert3','wert4');" | psql [DATABASE] [USER]
 #===============================================================================
 SQL:
 ----
 Auf der Kommandozeile kann man eine Datenbankanfrage nach den folgenden
 drei Syntaxformen eingeben:
 psql -U [USER] -d [Datenbank] -c "[SQL-Befehl]"
 psql -U [USER] -c "[SQL-Befehl]" [Datenbank]
 psql -c "[SQL-Befehl]" [Datenbank] [USER]
 (SQL-Befehle siehe unter: "programmierung/sql/ansi-sql92")
 Man kann auch die SQL-Statements in eine Datei schreiben und diese dann
 von psql einlesen lassen (z.B. fuer ein Backup). Das geht folgendermassen:
 psql -U pgsql -f [Dateiname.sql] [Datenbank]
 psql -U pgsql -d [Datenbank] -f [Dateiname.sql]
 #===============================================================================
 BACKUP:
 -------
 Sichern der Datenbanken (z.B. fuer ein Backup):
 ### FreeBSD-Beispiel ###
        $ su - pgsql
        $ pg_dumpall > db.out
     oder
        $ pg_dumpall -U pgsql > /root/db.out
 Um die Datenbanken wieder einzuspielen (z.B. nach einer Neuinstallation):
 ### FreeBSD-Beispiel ###
         ### Datenbank wieder installieren
        cd /usr/ports/databases/postgresql7/ && make install && make clean
         ### Datenbank initialisieren
        su -l pgsql -c initdb
         ### Datenbanksystem starten
        /usr/local/etc/rc.d/010.pgsql.sh start
         ### alle Datenbanken auflisten
        psql -U pgsql -l
         ### das Backup wieder zurueckspielen
        psql -U pgsql -d template1 -f db.out
         ### alle Datenbanken auflisten
        psql -U pgsql -l
         ### Tabellen der Datenbank "[Datenbank]" auflisten
        psql -U pgsql -c "\dt" [Datenbank]
 DUMP aller Tabellen in FreeBSD:
 su - pgsql -c pg_dumpall > /var/tmp/db.out
 DUMP aller Tabellen in Linux:
 su - postgres -c pg_dumpall > /var/tmp/db.out
 oder interaktiv (nachdem man sich in die Datenbank eingeloggt hat) mit "\i".
 DUMP der Datenbank "adressen":
 pg_dump -U pgsql -d adressen > /var/tmp/adressen.out
 die Datenbank "adressen" in einem neuen DBMS wieder herstellen:
     Datenbank erstellen
         createdb -U pgsql -e adressen
         oder
         createdb -U pgsql -E LATIN9 -e adressen
     Daten wieder einspielen
         psql -U pgsql -d adressen -f adressen.out
         oder
         psql -f db.out adressen pgsql
 Tabelle löschen
         psql -U pgsql -d [Datenbank] -c "DROP TABLE [Tabelle]"
 Datenbank löschen
         dropdb -U pgsql [Datenbank]
 #------------------------------------------------------------------------------
 alte Versionen (6.5):
 ---------------------
 USAGE
        To dump all databases:
        % su - postgres/pgsql
        % pg_dumpall -o > db.out
               Tip:   You   can   use  most  pg_dump  options  for
               pg_dumpall.
        To reload this database:
        % psql -e template1 < db.out
               Tip: You can use most psql options when  reloading.
 Application               15 August 1999                        1
 #------------------------------------------------------------------------------
 neue Versionen (7.1, 7.2):
 --------------------------
 EXAMPLES
        To dump all databases:
        $ su - postgres/pgsql
        $ pg_dumpall > db.out
        To reload this database use, for example:
        $ psql -f db.out template1
        (It is not important to which database  you  connect  here
        since  the  script file created by pg_dumpall will contain
        the appropriate commands to  create  and  connect  to  the
        saved databases.)
 Application                 2000-12-19              PG_DUMPALL(1)
 #------------------------------------------------------------------------------
 Beispiele als gepackte SQL-Dateien fuer PostgreSQL.
 #------------------------------------------------------------------------------
 Feldtrennzeichen definieren:
 ----------------------------
 psql -U pgsql -d [Datenbank] -F ' '   # Leerzeichen als Trennung
 psql -U pgsql -d [Datenbank] -F " "   # '" "' als Trennzeichen (also 3 Zeichen)
 \pset fieldsep ' '                    # Leerzeichen als Trennung
 \pset fieldsep " "                    # '" "' als Trennzeichen (also 3 Zeichen)
   [IMG]
 
/home/http/wiki/data/pages/os4_software_postgresql.txt · Zuletzt geändert: 2010-05-22 19:03:58 (Externe Bearbeitung)
Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht:GNU Free Documentation License 1.2
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki