22 praktische PostgreSQL Befehle

Zum Wochenende eine kleine Auflistung praktischer PostgreSQL Befehle.

postgresql

Zu PostgreSQL verbinden

In eine PostgreSQL Konsole Einloggen

sudo -u postgres psql

Einloggen und direkt zu einer Datenbank verbinden

sudo -u postgres psql -d datanbank


Arbeiten mit Konsolenbefehlen

Alle Datenbanken anzeigen

postgres=# \l
                                  List of databases
   Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
 postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
 template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
 template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
           |          |          |             |             | postgres=CTc/postgres
(3 rows)

oder ohne vorherigen Login mit "sudo -u postgres psql -l"

Benutzer auflisten

postgres-# \du
                             List of roles
 Role name |                   Attributes                   | Member of
-----------+------------------------------------------------+-----------
 postgres  | Superuser, Create role, Create DB, Replication | {}
 yolo      | Superuser                                      | {}

Zu einer Datenbank verbinden

postgres=#\c Datenbankname

You are now connected to database "Datenbankname" as user "postgres".

Tabellen anzeigen

postgres=#\dt 

Schemas anzeigen

postgres=#\dn

Funktionen anzeigen

postgres=#\df oder df+

Sequenzen anzeigen

postgres=#\ds

Views anzeigen

postgres=#\dv

Datenbank und Benutzer mit Rechten erstellen

CREATE datenbank;
CREATE USER benutzer WITH PASSWORD 'Geheim';  
GRANT ALL PRIVILEGES ON DATABASE datenbank to benutzer; 

Alle verfügbaren Konsolenbefehle anzeigen

postgres=#\?

Eine bestimmte Datenbankgröße auslesen

select pg_database_size('Datenbankname');

oder in schön

SELECT pg_size_pretty(pg_database_size('Datenbankname'));

oder alle vorhanden Datenbankgrößen anzeigen

select datname, pg_size_pretty(pg_database_size(datname)) as size from pg_database;


Offene Datenbankverbindungen anzeigen

SELECT datname,usename,client_addr,client_port FROM pg_stat_activity ;

Die Konfiguration neu laden (ohne Neustart)

select pg_reload_conf();

Logfile Rotation anwerfen

select pg_rotate_logfile()

PostgreSQL verlassen

postgres=#\q

Backup und Wiederherstellung

Ein Datenbank Backup erstellen

pg_dump --user username --host hostname -b -F c datenbank > /tmp/datenbank.dump 

Alle verfügbaren Datenbanken sichern

pg_dumpall

Datenbank wiederherstellen

pg_restore --user username --host hostname -c -d datenbank datenbank.dump


Das könnte dich auch interessieren

[Lösung] vSphere/ESXi 6.0 U1 mit Veeam - Error: NFC storage connection is unavailable

Es ist mal wieder Zeit für einen Ausflug in virtuelle Gefilde, genauer gesagt soll es um das neueste Update aus dem Hause VMware gehen.

vSphere/Veeam - NFC storage connection is unavailable

VMware hat vor wenigen Tagen ein Update 60u1 für vCenter und ESXi Maschinen veröffentlicht (Changelog). 
Dieses bringt neben Neuerungen auch neue Probleme mit sich, so lässt sich nach einem Update auf die aktuellste Version keine virtuelle Maschine mit der Sicherungssoftware Veeam sichern, auch wenn dort die aktuellste Patch Version installiert ist. 

Die Sicherung bricht mit dem folgenden Fehler ab:

Getting VM info from vSphere
Error: NFC storage connection is unavailable. Storage: [stg:datastore-666,nfchost:host-666,conn:127.0.1.1]. Storage display name: [datastore]
Failed to create NFC download stream. NFC path: [nfc://conn:127.0.1.1,nfchost:host-667,stg:datastore-666@localhost.vmx]. 

Im Netz finden sich einige Vorschläge die dieses Problem angeblich lösen. Viele bringen den Fehler mit falschen DNS Einstellungen in Verbindung und schlagen vor alle Geräte richtig ins DNS einzutragen, bzw. die Host Datei anzupassen.
Leider beziehen sich die Lösungen oft auf ältere ESXi bzw. Veeam Versionen und führen somit nicht zum gewünschten Ziel.

veeam

Hier hilft ein Blick in die Logs der Sicherungssoftware oft weiter:

ERR |Failed to initiate NFC session. Target host: [127.0.0.1]. VI connection ID: [127.0.1.1]. Storage MOID: [datastore-666].
ERR |SSL error, code: [3368].error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure
>>  |SSL_connect() function call has failed.

Der Meldung lässt sich entnehmen, dass die Verbindung an der SSL Aushandlung scheitert. Der Fehler hat somit Nichts mit DNS oder ähnlichem zu tun, es kommt schlicht keine sichere Verbindung zu Stande.


Ein weiterer Blick in den Changelog von ESXi 6.0 Update 1 zeigt folgenden Satz "Support for SSLv3: Support for SSLv3 has been disabled by default."
Das heißt, aktualisierte ESXi Hosts unterstützen dieses Protokoll in der neuesten Version nicht mehr. Das ist nicht weiter verwunderlich, denn es gilt als unsicher.

vSphere6

Leider benötigt Veeam SSLv3 weiterhin für seine Sicherungen, genauer betrifft es den Port 902. Die Funktion lässt sich über einen Eintrag in der Config wieder aktivieren. Dazu muss auf die jeweilige ESXi Maschine via SSH zugegriffen werden. Die unten erwähnte Konfigurationsdatei gilt es anzupassen.

cp /etc/vmware/config /etc/vmware/config.date
vi /etc/vmware/config
    vmauthd.ssl.noSSLv3 = false
    

Danach ist ein Neustart des Dienstes erforderlich

/etc/init.d/rhttpproxy restart 

Nach dieser Änderung sollten Sicherungen mit Veeam wieder funktionieren. Weitere Details dazu unter kb2063.

Mehrere Ubuntu Kernel Images auf einmal entfernen

Vor Jahren hatte ich einen kleinen Beitrag über das Entfernen alter Kernels aus einem Linux System geschrieben (Artikel).

Bei diesem Vorgehen hat sich nicht viel geändert, ich möchte die Anleitung lediglich um den folgenden Punkt erweitern.

Entfernen mehrerer Kernel Images auf einmal

Suche nach installierten Kernels

dpkg -l |grep linux-image*

dpkg -l |grep linux-header*

Einzelnes Image entfernen

sudo apt-get purge linux-image-3.16.0-40.54

sudo apt-get purge linux-header-3.16.0-40.54


logo-ubuntu

Mehrere Images auf einmal entfernen

Oft haben sich mehrere alte Kernels angesammelt, welche auf einmal entfernt werden könnten, mit einem kleinen Trick ist dies in der Bash ohne weiteres möglich

sudo apt-get purge linux-image-3.16.0-{54,55,56,57,58}

sudo apt-get purge linux-header-3.16.0-{54,55,56,57,58}

Die beiden Befehle entfernen alle Images mit den genannten Versionsnummern in einem Rutsch.

Überblick DuckDuckGo Hacks - Einen eigenen !bang erstellen und weitere Instant Tricks

DuckDuckGo ist nicht nur als Google Alternative bekannt, sondern auch für seine diversen Extrafunktionen. 

Den meisten dürften die sogenannten Bangs ein Begriff sein, hiermit lassen sich über DuckDuckGo andere Seiten direkt aufrufen.

So leitet der Aufruf von "Berlin !gm" innerhalb des DuckDuckGo Suchinterfaces direkt zu Google Maps und der Stadt Berlin weiter.

Einen Überblick aller !Bangs findet sich hier.

Einen eigenen DuckDuckGo !Bang erstellen

Aufmerksame Leser der Bang Übersicht haben sicherlich festgestellt, dass dort der Bang "!itrig" vorhanden ist.

Hiermit lässt sich der Blog direkt über DuckDuckGo durchsuchen, zum Beispiel mit "!itrig elementary"

DuckDuckGo-eigener-bang

Jeder kann neue !Bangs einreichen, das notwendige Formular ist hier zu finden. Mit den richtigen Angaben ausfüllen und warten. Eine Freischaltung kann durchaus lange dauern.

DuckDuckGo Cheat Sheets

Neben den praktischen Bangs verfügt die Suchmaschine über sogenannte Instant Einblendungen, vergleichbar mit Googles Wikipedia Direkteinblendungen. Diese "Instant Answers" werden regelmäßig erweitert und oftmals von der DuckDuckGo Community beigesteuert. Hier ein kleiner Überblick praktischer Befehle.

  • regexp cheat sheet - Zeigt einen Überblick wichtiger regulärer Ausdrücke an

regexp-cheat-sheet-duckduckgo

  • linux cheat sheet - Zeigt die wichtigsten Linux Kommandozeilen Befehle an

linux-cheat-sheet-DuckDuckGo

  • javascript befehl - Zeigt die Syntax des eingegebenen Befehls an

JavaScript-DuckDuckGo

  • w3m cheat sheet - Zeigt die wichtigsten Tastaturbefehle für den Konsolenbrowser w3m an

w3m-cheat-sheet-DuckDuckGo

  • latex Befehl - Zeigt die Syntax des LaTeX Textverarbeitungsprogramm an

latex-DuckDuckGo

  • apache befehl - Apache Befehle abfragen
  • DNS/MX records duckduckgo.com - DNS oder MX Einträge einer Domain abfragen
  • domain duckduckgo.com - Whois Abfragen auf eine bestimmte Domain

Weitere praktische Instant Cheats sind

  • vim cheat sheet - Tastatur Befehle des Linux Editors
  • angular cheat sheet - Syntax des bekannten Frameworks
  • nodejs cheat sheet - Praktische Befehle für den JavaScript Server
  • atom cheat sheet - Tastaturbefehle für den freien Github Editor
  • brackets cheat sheet - Tastaturbefehle für den freien Adobe Editor
  • ssh cheat sheet - Überblick der ssh Konsolen Befehle, von ssh user bis ssh-copy
  • tar cheat sheet - Auflistung des gängigen Tar Kommandos zum Packen oder Entpacken
  • docker cheatsheet -  Der neue Container Trend darf natürlich nicht fehlen
  • html cheat sheet - Eine Runde HTML Tags sponsored by Mozilla
  • firefox cheat sheet -  Alle Tastaturbefehle für den Firefox Browser
  • gimp cheat sheet - Tastenkombinationen für die freie Bildbearbeitung


DuckDuckGo Instant Editoren

Neben den vielen Spickzetteln bzw. Instant Suchergebnissen, bietet die Suchmaschine auch einen Instant Editor an, welcher Beispielsweise JavaScript oder Python unterstützt. "python scratchpad"

python-scratchpad-DuckDuckGo


DuckDuckGo Hacks für den Alltag

Stoppuhr

Einfach eine Zeit vorgeben und los gehts

  • timer 2 minutes

Stoppuhr-DuckDuckGo

Aktuelle Kalenderwoche

  • week - Die aktuelle Kalenderwoche ausgeben

kw-DuckDuckGo

Passwort Generator

  • password 16 strong - Erzeugt ein sechzehnstelliges Passwort nach dem Zufallsprinzip. Wird "strong" weggelassen, fallen die Sonderzeichen ebenfalls weg.

Wetter anzeigen

  • weather gera germany - Muss wohl nicht viel dazu gesagt werden
  • sunset/sunrise stadt - Zeigt die Sonnenauf, bzw. Untergangszeiten der jeweiligen Stadt an

Wörterbuch

  • german cheatsheet - Für unsere ausländischen Freunde, steht ein Instant Wörterbuch zur Verfügung (es stehen auch andere Sprachen zur Verfügung)


Weitere interessante Instant Suchanfragen

Ob diese nun sinnvoll oder just for fun sind, lasse ich mal offen.

  • people in space - zeigt an, welche Menschen sich gerade im Weltall befinden
  • figlet text - gibt einen Text in ASCII Art aus

Viele weitere kleine Helfer sind unter duck.co/ia zu finden. Alle würden den Rahmen sprengen, dies soll nur ein persönliches best of darstellen.

Elementary OS Freya 0.3.1 - Update für das Beauty Linux

Gerade einmal drei Monate ist es her, seit das Schmuckstück Freya 0.3 veröffentlicht wurde. Ich hatte damals ein paar Tipps und Tricks dazu veröffentlicht.

Elementary OS Freya 0.3.1 - Schöner, schneller, besser

Nun wurde mit 0.3.1 eine aktualisierte Version bereitgestellt. Das "Betriebssystem fürs Auge" kennt nun 200 Fehler weniger und einige Features mehr.

elemantary-logo

Schon beim ersten Start von Elementary OS wird der Nutzer von einem neuen "Greeter" begrüßt, gemeint ist damit der Login Bildschirm welcher überarbeitet wurden. Dies ist allerdings nur eine der Änderungen, welche die Entwickler hinter Elementary mit mit einem neuen Stylesheet einfließen lassen.
Viele kleine Stolpersteine wurden entfernt und kleine Verbessrungen eingebaut.

So verschwindet die Iconleiste nun bei Fenstern im Vollbildmodus automatisch im Hintergrund (Window Dodge hide mode für Plank) und Fotos lassen sich mit einem Klick auswählen.

Auch am Backend wurde gearbeitet, so wurde das Kernsystem wurde auf Ubuntu 14.0.3 und Kernel 3.19 aktualisiert.

Ebenfalls wurde der neue Midori 0.5.11 Browser integriert, welcher einen platzsparenden Look erhalten hat und einen performanteren AdBlocker.

elementary-os-midori

In den Systemeinstellungen wurden die Spracheinstellungen überarbeitet und übersichtlicher gestaltet. Die Unterstützung für andere Sprachen ist ebenfalls verbessert worden. (Englisch, Französisch, Spanisch, Dänisch, Italienisch, Deutsch, Japanisch und Chinesisch)

Geary, der Elementary OS E-Mail Client, wurde auf Version 0.10 aktualisiert und erlaubt nun Volltextsuche, Wiederherstellung, Mehrere Mailadressen pro Account und mehr.

Fazit

Die neue Version 0.3.1 bringt viele kleine Puzzleteile mit, die das Gesamtkunstwerk Elementary verbessern und auf einen aktuellen Stand bringen. Nutzer die noch auf der alten Version Luna arbeiten wird ein Update nahe gelegt, denn die Entwickler werden das System in Zukunft nicht mehr mit Updates versorgen.

Trotz neuer Sprachunterstützung bleibt der Download des aktuellen ISO Images etwas versteckt. Unter Betrag sollte auf der Download Seite eine Null hinterlegt werden, damit sich das Download Popup kostenfrei entfaltet.

elementary-OS-download

Das könnte dich auch interessieren