PostgreSQL bringt neben dem interaktiven Client psql eine ganze Familie von Kommandozeilen-Werkzeugen mit, die in der bin/-Verzeichnis der Installation liegen. Diese Referenz stellt die wichtigsten Server- und Wartungsbefehle vor.
Server steuern mit pg_ctl
pg_ctl -D /var/lib/postgresql/15/main start
pg_ctl -D /var/lib/postgresql/15/main stop -m fast
pg_ctl -D /var/lib/postgresql/15/main reload
pg_ctl -D /var/lib/postgresql/15/main status
-D zeigt auf das Datenverzeichnis (PGDATA). stop -m fast beendet sauber mit Checkpoint; -m immediate ist der harte Abbruch. reload liest postgresql.conf neu ein, ohne den Dienst zu stoppen — viele Parameter wie shared_buffers benötigen aber einen Neustart.
Datenbanken anlegen und löschen
createdb -U postgres meine_datenbank
dropdb -U postgres meine_datenbank
createdb ist die Kommandozeilen-Variante von CREATE DATABASE, dropdb entsprechend von DROP DATABASE. Beide verstehen -h (Host) und -p (Port) für entfernte Server.
Backup und Restore
pg_dump -U postgres -F c meine_datenbank > backup.dump
pg_restore -U postgres -d neue_datenbank backup.dump
pg_dumpall -U postgres > kompletter_cluster.sql
pg_dumpsichert eine einzelne Datenbank;-F cerzeugt das komprimierte Custom-Format,-F preines SQL. Mit-t tabellelässt sich der Export auf einzelne Tabellen begrenzen.pg_restoreliest nur das Custom-Format (-F c) und erlaubt selektives Wiederherstellen (-t,--list).pg_dumpallsichert den ganzen Cluster inklusive Rollen und Tablespaces als SQL-Skript.
Wartung und Diagnose
vacuumdb -U postgres -f meine_datenbank
pgbench -U postgres -i -s 10 meine_datenbank
pgbench -U postgres -c 10 -T 30 meine_datenbank
vacuumdbwendetVACUUMauf alle Tabellen einer Datenbank an —-ffürFULL(kompaktiert Speicherplatz),-zfürANALYZE.pgbenchist das eingebaute Lasttest-Werkzeug:-iinitialisiert die Testdaten, dann misst-c 10 -T 30Transaktionen pro Sekunde über 30 Sekunden.
Für den Alltag: Datenbank-Konzepte wie PostgreSQL-Datenbank und MariaDB im Vergleich, die verwandte CLI-Familie MySQL-Befehle — und für verteilte NoSQL-Systeme die Cassandra-Befehle.
MariaDB ist ein MySQL-Fork und damit weitgehend kompatibel. Seit Version 10.4.6 heißen die Kommandozeilen-Werkzeuge um: Der Client heißt jetzt mariadb (früher mysql, weiterhin als Symlink verfügbar), und aus mysqldump wurde mariadb-dump. Diese Referenz zeigt die aktuellen Befehle.
Client starten
mariadb -u benutzer -p meine_datenbank
mariadb -u benutzer -p -h db-server.de meine_datenbank
mariadb -u benutzer -p -e "SELECT VERSION();"
Der Client mariadb ist eine interaktive SQL-Shell mit Tab-Vervollständigung. -e führt eine einzelne Query aus (Batch-Modus), < datei.sql importiert ein SQL-Skript.
Backup mit mariadb-dump
mariadb-dump -u benutzer -p meine_datenbank > backup.sql
mariadb-dump -u benutzer -p --single-transaction meine_datenbank > backup.sql
mariadb-dump -u benutzer -p --all-databases > alle_datenbanken.sql
--single-transactionerzeugt bei InnoDB einen konsistenten Snapshot ohne die Tabellen zu sperren — Standard für Live-Backups.--all-databasessichert alle Datenbanken,--routineszusätzlich Prozeduren und Funktionen.- Wiederherstellen:
mariadb -u benutzer -p meine_datenbank < backup.sql
Administration
mariadb-admin -u root -p status
mariadb-admin -u root -p ping
mariadb-admin -u root -p shutdown
mariadb-upgrade
mariadb-check -u root -p --all-databases
mariadb-admin(frühermysqladmin): Server-Status, Ping, Shutdown, aber auchcreate-databaseunddrop-database.mariadb-upgrade(frühermysql_upgrade) prüft und repariert nach einem Versionswechsel Systemtabellen und Objekte.mariadb-check(frühermysqlcheck) prüft und repariert Tabellen (--check,--repair,--optimize).
Grundlagen zu Engine und Architektur: MariaDB und PostgreSQL-Datenbank im Vergleich; CLI-Verwandte sind MySQL-Befehle und PostgreSQL-Befehle.
Apache Cassandra ist eine verteilte NoSQL-Datenbank mit linearer Skalierbarkeit. Die wichtigsten Kommandozeilen-Werkzeuge sind cqlsh für CQL-Abfragen, nodetool für die Cluster-Verwaltung und sstableloader für den Massenimport von SSTable-Dateien.
Abfragen mit cqlsh
cqlsh 10.0.0.5
cqlsh -u cassandra -p passwort 10.0.0.5
CREATE KEYSPACE app WITH replication = {'class':'SimpleStrategy','replication_factor':3};
USE app;
CREATE TABLE nutzer (id UUID PRIMARY KEY, name text);
INSERT INTO nutzer (id, name) VALUES (uuid(), 'Ada');
SELECT * FROM nutzer WHERE name = 'Ada' ALLOW FILTERING;
cqlsh spricht CQL (Cassandra Query Language), eine SQL-ähnliche Sprache. DESCRIBE KEYSPACES, DESCRIBE TABLES und EXIT sind die wichtigsten Meta-Befehle. ALLOW FILTERING ist nur für kleine Tabellen sinnvoll — normalerweise filtert Cassandra über den Primärschlüssel.
Cluster-Verwaltung mit nodetool
nodetool status
nodetool info
nodetool repair
nodetool cleanup
nodetool snapshot -t vor_umstellung
nodetool flush
statuszeigt jeden Knoten mit Status (UN = Up/Normal), Datenmenge und Besitzanteil.infozeigt Heap-Nutzung, Load und Uptime des lokalen Knotens.repairgleicht Repliken ab (Anti-Entropy) — wichtig, weil Cassandra gelöschte Daten nur per Tombstones und Repairs endgültig entfernt.cleanupentfernt Daten, die nach einer Topologie-Änderung nicht mehr zu diesem Knoten gehören.snapshoterzeugt einen hart-link-basierten Backup-Punkt pro Table,flushschreibt die Memtables auf die Platte.
Massenimport und Lasttests
sstableloader -d 10.0.0.5 /pfad/zu/sstables
cassandra-stress write -n 100000 -rate threads=8
cassandra-stress read -n 100000
sstableloaderlädt existierende SSTable-Dateien in einen laufenden Cluster — der Standardweg, um Daten aus Backups oder anderen Clustern zu übernehmen.cassandra-stresserzeugt Lastprofile für Write- und Read-Tests und liefert Durchsatz- und Latenz-Metriken.
Einordnung im NoSQL-Umfeld: NoSQL-Datenbank, die verwandten CLI-Referenzen MongoDB-Befehle und Redis-Befehle — sowie für relationale Systeme die PostgreSQL-Befehle.
Redis-Befehle werden über das Kommandozeilenwerkzeug redis-cli ausgeführt. Redis (REmote DIctionary Server) ist ein In-Memory-Schlüssel-Werte-Speicher und wird vor allem als Cache, Session-Store oder Message-Broker eingesetzt.
Verbindung und Erste Schritte
redis-cli ping # Antwort: PONG
redis-cli -h host -p 6379 # Verbindung zu Remote-Server
redis-cli -a passwort # mit Passwort (AUTH)
PING prüft die Verbindung, INFO zeigt Server-Statistiken und SELECT n wechselt zwischen den 16 logischen Datenbanken (0-15).
Schlüssel und Werte
SET name "Ada" # String setzen
GET name # String lesen
DEL name # Schlüssel löschen
EXISTS name # 1 = Schlüssel existiert
EXPIRE session 3600 # Ablaufzeit in Sekunden
TTL session # verbleibende Lebenszeit
KEYS user:* # Schlüssel nach Muster finden
TYPE name # Datentyp des Schlüssels
Redis kennt neben Strings auch Hashes (HSET/HGET), Listen (LPUSH/LRANGE), Sets (SADD/SMEMBERS) und sortierte Sets (ZADD/ZRANGE).
Administration
DBSIZE # Anzahl der Schlüssel
FLUSHDB # aktuelle Datenbank leeren
FLUSHALL # alle Datenbanken leeren
SHUTDOWN # Server herunterfahren
Verwandte Grundlagen: Redis: In-Memory-Datenbank für Cache und Queue und NoSQL-Datenbanken.
Neo4j-Befehle verteilen sich auf zwei Werkzeuge: cypher-shell für Abfragen in der Graph-Sprache Cypher und neo4j-admin für administrative Aufgaben wie Datenbank-Dump und -Restore.
cypher-shell
cypher-shell -u neo4j -p passwort # interaktive Shell
cypher-shell "MATCH (n) RETURN n LIMIT 5" # Skript-Modus
Die Shell spricht über das Bolt-Protokoll mit der Datenbank. :exit beendet die interaktive Sitzung, :help zeigt die verfügbaren Befehle.
Cypher-Grundbefehle
CREATE (p:Person {name: "Ada", alter: 36}) # Knoten anlegen
CREATE (a:Person)-[:KENNT]->(b:Person) # Beziehung anlegen
MATCH (p:Person) RETURN p # Knoten lesen
MATCH (p:Person {name: "Ada"}) SET p.alter = 37
MATCH (p:Person) WHERE p.alter > 30 RETURN p.name
MATCH (p:Person) DETACH DELETE p # Knoten mit Beziehungen löschen
MERGE (p:Person {name: "Ada"}) # anlegen oder wiederfinden
Cypher arbeitet mit Muster-Matching: MATCH findet Muster im Graph, RETURN liefert Ergebnisse, WHERE filtert und MERGE legt nur an, was noch nicht existiert.
neo4j-admin
neo4j-admin database dump neo4j --to-path=/backups
neo4j-admin database load --from-path=/backups neo4j
neo4j-admin database info neo4j
Verwandte Grundlagen: NoSQL-Datenbanken (Graph-Datenbanken als NoSQL-Variante). Wer Dokumenten- und Schlüssel-Werte-CLIs sucht: MongoDB-Befehle und Redis-Befehle.