Hur man ändrar, byter namn, släpper och kopierar databaser i PostgreSQL

author
3 minutes, 27 seconds Read

SAMMANFATTNING: Den här artikeln behandlar uttalandena ALTER DATABASE, RENAME DATABASE och DROP DATABASE samt hur man kopierar en databas med CREATE DATABASE WITH TEMPLATE-angivelsen.

1. ALTER DATABASE-anvisningar

a. Ändra databasens ägare

b. Konfigurera malldatabasen

c. Begränsa nya anslutningar för en specifik databas

d. Begränsa anslutningsgränsen för en specifik databas

e. Ändra standardtabellutrymme för databasen

2. RENAME DATABASE-anvisningar

3. DROP DATABASE-anvisningar

4. Kopiera databasstruktur och data

Det här inlägget tar upp några av de tillgängliga kommandona för hantering av PostgreSQL-databaser från PSQL-prompten. Vi kommer att gå igenom metoder för att ändra, byta namn, ta bort och kopiera en databas.

Låt oss sammanfatta några grundläggande PostgreSQL-kommandon:

1. Syntax för skapande av databaser:

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

2. För att få en lista över databaser i det aktuella klustret:

a. \l+

b. select * from pg_database ;

ALTER database statements

ALTER database statements kan användas för att ändra befintliga attribut för måldatabasen.

Ändra databasens ägare

För att ändra databasens ägare måste den anslutna användaren vara databasens ägare och även vara en direkt eller indirekt medlem i den nya ägarrollen, och den anslutna användaren måste ha privilegiet CREATEDB.

Syntax

ALTER DATABASE <database_name> OWNER TO <new_owner>;

Exempel

ALTER DATABASE test OWNER TO user;

Inställning av malldatabasen

Som standard har vi bara två malldatabaser närvarande i ett kluster – template0 och template1. Andra databaser kan inte användas som mall som standard. Om du behöver skapa en anpassad databasmall för din miljö kan du använda det här alternativet.

Syntax

ALTER DATABASE <database_name> WITH IS_TEMPLATE = true;

Exempel

ALTER DATABASE test WITH IS_TEMPLATE = true;

Begränsning av nya anslutningar för en specifik databas

Det här alternativet är mycket användbart för att upprätthålla databasen. Du kan begränsa nya anslutningar till en specifik databas under fönstret för databasunderhåll. För att aktivera det här alternativet är ingen användare ansluten till måldatabasen.

Syntax

ALTER DATABASE <database_name> WITH ALLOW_CONNECTIONS = false;

Exempel

ALTER DATABASE test2 WITH ALLOW_CONNECTIONS = false;

Begränsning av anslutningsgränsen för en specifik databas.

För säkerhet och optimal prestanda kan du begränsa antalet anslutningar som kan ansluta till måldatabasen. Som standard är värdet för den här parametern obegränsat, dvs. -1, för varje databas.

Syntax

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

Exempel

ALTER DATABASE test2 WITH CONNECTION LIMIT 10;

Byte av standardtabellutrymme för databasen

Du kan fysiskt flytta objekt för standardtabellutrymme, t.ex. tabeller och index, från standardtabellutrymmet till ett nytt anpassat tabellutrymme. Det nya standardtabellutrymmet måste vara tomt för den här databasen och ingen kan vara ansluten till databasen under den här aktiviteten.

Anmärkningar: Ägaren till databasen eller en superanvändare måste göra den här ändringen och användaren måste ha CREATE-privilegier för det nya tabellutrymmet.

Syntax

ALTER DATABASE <database_name> SET TABLESPACE <custom_tablespace_name>;

Exempel

ALTER DATABASE test SET TABLESPACE custom_tblspc;

RENAME databasinstruktioner

Du kan ändra den aktuella databasens namn med hjälp av RENAME. Du kan dock inte byta namn på databasen medan den är tillgänglig för andra anslutningar.

Notera: Ägaren till databasen eller superanvändaren måste göra den här ändringen och användaren måste ha CREATEDB-privilegier.

Syntax

ALTER DATABASE <old_database_name> RENAME TO <new_database_name>;

Exempel

ALTER DATABASE test RENAME TO test123;

DROP Database statements

Du kan DROPa måldatabasen. Detta tar bort katalogposterna för databasen och raderar katalogen som innehåller data. Det kan endast utföras av databasägaren. Det kan inte heller exekveras medan du eller någon annan är ansluten till måldatabasen.

Notera: DROP DATABASE kan inte ångras.

Syntax

DROP DATABASE <database_name>;

Exempel

DROP DATABASE test2;

Similar Posts

Lämna ett svar

Din e-postadress kommer inte publiceras.