Hoe databases wijzigen, hernoemen, verwijderen en kopiëren in PostgreSQL

author
3 minutes, 18 seconds Read

SAMENVATTING: Dit artikel behandelt de ALTER DATABASE, RENAME DATABASE, en DROP DATABASE statements en het gebruik van de CREATE DATABASE WITH TEMPLATE statement om een database te kopiëren.

1. ALTER DATABASE verklaringen

a. De eigenaar van de database wijzigen

b. De Template database instellen

c. Nieuwe verbindingen voor een specifieke database beperken

d. De verbindingslimiet voor een specifieke database beperken

e. Wijzigen van de Standaard Tablespace voor de database

2. RENAME DATABASE statements

3. DROP DATABASE statements

4. Kopiëren van database structuur en data

Deze post kijkt naar enkele van de beschikbare commando’s voor het beheren van PostgreSQL databases vanaf PSQL prompt. We zullen methodes bespreken voor het wijzigen, hernoemen, verwijderen en kopiëren van een database.

Laten we een aantal basis PostgreSQL commando’s herhalen:

1. Database creatie syntaxis:

CREATE DATABASE name user_name ] template ] encoding ] lc_collate ] lc_ctype ] tablespace ] connlimit ] ]

2. Om een lijst van databases in de huidige cluster te krijgen:

a.

b. select * from pg_database ;

ALTER database statements

ALTER database statements kunnen worden gebruikt om de bestaande attributen van de doel-database te wijzigen.

De eigenaar van de database wijzigen

Om de eigenaar van de database te wijzigen, moet de verbonden gebruiker de eigenaar van de database zijn en ook een direct of indirect lid van de nieuwe eigenaarrol zijn, en de verbonden gebruiker moet het privilege CREATEDB hebben.

Syntax

ALTER DATABASE <database_name> OWNER TO <new_owner>;

Voorbeeld

ALTER DATABASE test OWNER TO user;

De template-database instellen

Standaard zijn er slechts twee template-databases aanwezig in een cluster-template0 en template1. Andere databases kunnen standaard niet als sjabloon worden gebruikt. Als u een aangepaste databasesjabloon voor uw omgeving wilt maken, kunt u deze optie gebruiken.

Syntax

ALTER DATABASE <database_name> WITH IS_TEMPLATE = true;

Voorbeeld

ALTER DATABASE test WITH IS_TEMPLATE = true;

Beperking van nieuwe verbindingen voor een specifieke database

Deze optie is zeer nuttig voor het onderhoud van de database. U kunt nieuwe verbindingen voor een specifieke database beperken tijdens het database-onderhoudsvenster. Om deze optie in te schakelen, is er geen gebruiker verbonden met de doel database.

Syntax

ALTER DATABASE <database_name> WITH ALLOW_CONNECTIONS = false;

Voorbeeld

ALTER DATABASE test2 WITH ALLOW_CONNECTIONS = false;

Beperking van de verbindingslimiet voor een specifieke database.

Voor de veiligheid en optimale prestaties kunt u het aantal verbindingen beperken dat verbinding kan maken met de doel-database. Standaard is de waarde voor deze parameter onbeperkt, d.w.z. -1 voor elke database.

Syntax

ALTER DATABASE <database_name> WITH CONNECTION LIMIT <max_number_of_connections>;

Voorbeeld

ALTER DATABASE test2 WITH CONNECTION LIMIT 10;

De standaard tablespace voor de database wijzigen

U kunt standaard tablespace-objecten zoals tabellen en indexen fysiek verplaatsen van de standaard tablespace naar een nieuwe aangepaste tablespace. De nieuwe standaard tablespace moet leeg zijn voor deze database, en niemand kan verbonden zijn met de database tijdens deze activiteit.

Note: De eigenaar van de database of een superuser moet deze wijziging doorvoeren, en de gebruiker moet CREATE privileges hebben voor de nieuwe tablespace.

Syntax

ALTER DATABASE <database_name> SET TABLESPACE <custom_tablespace_name>;

Voorbeeld

ALTER DATABASE test SET TABLESPACE custom_tblspc;

RENAME database statements

U kunt de naam van de huidige database wijzigen met RENAME. U kunt de naam van de database echter niet wijzigen terwijl deze door andere verbindingen wordt benaderd.

Opmerking: de eigenaar van de database of de supergebruiker moet deze wijziging doorvoeren, en de gebruiker moet CREATEDB-rechten hebben.

Syntax

ALTER DATABASE <old_database_name> RENAME TO <new_database_name>;

Voorbeeld

ALTER DATABASE test RENAME TO test123;

Databasestatements DROP

U kunt de doeldatabase DROPPEN. Dit verwijdert de catalogusitems voor de database en verwijdert de directory die de gegevens bevat. Het kan alleen worden uitgevoerd door de eigenaar van de database. Het kan ook niet worden uitgevoerd terwijl u of iemand anders met de doel-database is verbonden.

Opmerking: DROP DATABASE kan niet ongedaan worden gemaakt.

Syntax

DROP DATABASE <database_name>;

Exemplaar

DROP DATABASE test2;

Similar Posts

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.