Wie man Datenbanken in PostgreSQL ändert, umbenennt, löscht und kopiert

author
3 minutes, 22 seconds Read

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

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;

Similar Posts

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.