Zusammenfassung: Dieser Artikel behandelt die Anweisungen ALTER DATABASE, RENAME DATABASE und DROP DATABASE sowie die Verwendung der Anweisung CREATE DATABASE WITH TEMPLATE zum Kopieren einer Datenbank.
1. ALTER DATABASE-Anweisungen
a. Ändern des Eigentümers der Datenbank
b. Einrichten der Vorlagendatenbank
c. Einschränken neuer Verbindungen für eine bestimmte Datenbank
d. Einschränken des Verbindungslimits für eine bestimmte Datenbank
e. Ändern des Standard-Tablespace für die Datenbank
2. RENAME DATABASE-Anweisungen
3. DROP DATABASE-Anweisungen
4. Kopieren der Datenbankstruktur und -daten
Dieser Beitrag befasst sich mit einigen der verfügbaren Befehle zur Verwaltung von PostgreSQL-Datenbanken von der PSQL-Eingabeaufforderung aus. Wir werden Methoden zum Ändern, Umbenennen, Löschen und Kopieren einer Datenbank besprechen.
Lassen Sie uns einige grundlegende PostgreSQL Befehle rekapitulieren:
1. Syntax zum Erstellen von Datenbanken:
CREATE DATABASE name user_name ] template ] encoding ] lc_collate ] lc_ctype ] tablespace ] connlimit ] ]
2. Um eine Liste der Datenbanken im aktuellen Cluster zu erhalten:
a.
b. select * from pg_database ;
- ALTER database statements
- Ändern des Eigentümers der Datenbank
- Syntax
- Beispiel
- Einrichten der Vorlagendatenbank
- Syntax
- Beispiel
- Einschränken neuer Verbindungen für eine bestimmte Datenbank
- Syntax
- Beispiel
- Verbindungslimit für eine bestimmte Datenbank einschränken.
- Syntax
- Beispiel
- Ändern des Standard-Tablespaces für die Datenbank
- Syntax
- Beispiel
- RENAME Datenbankanweisungen
- Syntax
- Beispiel
- DROP Database statements
- Syntax
- Beispiel
ALTER database statements
ALTER database statements können verwendet werden, um die vorhandenen Attribute der Zieldatenbank zu ändern.
Ändern des Eigentümers der Datenbank
Um den Eigentümer der Datenbank zu ändern, sollte der angeschlossene Benutzer der Eigentümer der Datenbank sein und auch ein direktes oder indirektes Mitglied der neuen Eigentümerrolle sein, und der angeschlossene Benutzer muss das CREATEDB-Privileg haben.
Syntax
ALTER DATABASE <database_name> OWNER TO <new_owner>;
Beispiel
ALTER DATABASE test OWNER TO user;
Einrichten der Vorlagendatenbank
Standardmäßig sind in einem Cluster nur zwei Vorlagendatenbanken vorhanden – Vorlage0 und Vorlage1. Andere Datenbanken können standardmäßig nicht als Vorlage verwendet werden. Falls Sie eine benutzerdefinierte Datenbankvorlage für Ihre Umgebung erstellen müssen, können Sie diese Option verwenden.
Syntax
ALTER DATABASE <database_name> WITH IS_TEMPLATE = true;
Beispiel
ALTER DATABASE test WITH IS_TEMPLATE = true;
Einschränken neuer Verbindungen für eine bestimmte Datenbank
Diese Option ist sehr nützlich für die Wartung der Datenbank. Sie können neue Verbindungen zu einer bestimmten Datenbank während des Datenbankwartungsfensters einschränken. Um diese Option zu aktivieren, ist kein Benutzer mit der Zieldatenbank verbunden.
Syntax
ALTER DATABASE <database_name> WITH ALLOW_CONNECTIONS = false;
Beispiel
ALTER DATABASE test2 WITH ALLOW_CONNECTIONS = false;
Verbindungslimit für eine bestimmte Datenbank einschränken.
Für Sicherheit und optimale Leistung können Sie die Anzahl der Verbindungen, die sich mit der Zieldatenbank verbinden können, begrenzen. Standardmäßig ist der Wert für diesen Parameter unbegrenzt, d.h. -1 für jede Datenbank.
Syntax
ALTER DATABASE <database_name> WITH CONNECTION LIMIT <max_number_of_connections>;
Beispiel
ALTER DATABASE test2 WITH CONNECTION LIMIT 10;
Ändern des Standard-Tablespaces für die Datenbank
Sie können Standard-Tablespace-Objekte wie Tabellen und Indizes physisch vom Standard-Tablespace in einen neuen benutzerdefinierten Tablespace verschieben. Der neue Standard-Tablespace muss für diese Datenbank leer sein, und niemand darf während dieser Aktivität mit der Datenbank verbunden sein.
Hinweis: Der Eigentümer der Datenbank oder ein Superuser muss diese Änderung vornehmen, und der Benutzer muss CREATE-Rechte für den neuen Tablespace haben.
Syntax
ALTER DATABASE <database_name> SET TABLESPACE <custom_tablespace_name>;
Beispiel
ALTER DATABASE test SET TABLESPACE custom_tblspc;
RENAME Datenbankanweisungen
Sie können den Namen der aktuellen Datenbank mit RENAME ändern. Sie können die Datenbank jedoch nicht umbenennen, während andere Verbindungen auf sie zugreifen.
Hinweis: Der Eigentümer der Datenbank oder der Superuser muss diese Änderung vornehmen, und der Benutzer muss über CREATEDB-Rechte verfügen.
Syntax
ALTER DATABASE <old_database_name> RENAME TO <new_database_name>;
Beispiel
ALTER DATABASE test RENAME TO test123;
DROP Database statements
Sie können die Zieldatenbank DROPen. Dadurch werden die Katalogeinträge für die Datenbank entfernt und das Verzeichnis, das die Daten enthält, gelöscht. Die Anweisung kann nur vom Datenbankbesitzer ausgeführt werden. Außerdem kann sie nicht ausgeführt werden, während Sie oder andere Personen mit der Zieldatenbank verbunden sind.
Hinweis: DROP DATABASE kann nicht rückgängig gemacht werden.
Syntax
DROP DATABASE <database_name>;
Beispiel
DROP DATABASE test2;