Sådan ændrer, omdøber, sletter og kopierer du databaser i PostgreSQL

author
3 minutes, 15 seconds Read

RESUMÉ: Denne artikel omhandler ALTER DATABASE-, RENAME DATABASE- og DROP DATABASE-anvisningerne og brugen af CREATE DATABASE WITH TEMPLATE-anvisningen til at kopiere en database.

1. ALTER DATABASE-angivelser

a. Ændring af ejeren af databasen

b. Opsætning af Template-databasen

c. Begrænsning af nye forbindelser for en bestemt database

d. Begrænsning af forbindelsesgrænsen for en bestemt database

e. Ændring af Default Tablespace for databasen

2. RENAME DATABASE statements

3. DROP DATABASE statements

4. Kopiering af databasestruktur og data

Dette indlæg ser på nogle af de tilgængelige kommandoer til administration af PostgreSQL-databaser fra PSQL-prompten. Vi vil gennemgå metoder til ændring, omdøbning, sletning og kopiering af en database.

Lad os opsummere nogle grundlæggende PostgreSQL-kommandoer:

1. Syntaks for oprettelse af databaser:

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

2. Sådan får du en liste over databaser i den nuværende klynge:

a. \l+

b. select * from pg_database ;

ALTER database statements

ALTER database statements kan bruges til at ændre de eksisterende attributter for måldatabasen.

Ændring af ejeren af databasen

For at ændre ejeren af databasen skal den tilsluttede bruger være ejer af databasen og også være et direkte eller indirekte medlem af den nye ejerrolle, og den tilsluttede bruger skal have CREATEDB-rettighederne.

Syntaks

ALTER DATABASE <database_name> OWNER TO <new_owner>;

Eksempel

ALTER DATABASE test OWNER TO user;

Indstilling af skabelondatabasen

Som standard har vi kun to skabelondatabaser til stede i en klynge – skabelon0 og skabelon1. Andre databaser kan som standard ikke bruges som skabelon. Hvis du har brug for at oprette en brugerdefineret databaseskabelon til dit miljø, kan du bruge denne indstilling.

Syntaks

ALTER DATABASE <database_name> WITH IS_TEMPLATE = true;

Eksempel

ALTER DATABASE test WITH IS_TEMPLATE = true;

Begrænsning af nye forbindelser til en specifik database

Denne indstilling er meget nyttig til vedligeholdelse af databasen. Du kan begrænse nye forbindelser til en bestemt database i vinduet til vedligeholdelse af databasen. For at aktivere denne indstilling skal der ikke være nogen bruger forbundet til måldatabasen.

Syntaks

ALTER DATABASE <database_name> WITH ALLOW_CONNECTIONS = false;

Eksempel

ALTER DATABASE test2 WITH ALLOW_CONNECTIONS = false;

Begrænsning af forbindelsesgrænsen for en bestemt database.

For at opnå sikkerhed og optimal ydeevne kan du begrænse antallet af forbindelser, der kan oprette forbindelse til måldatabasen. Som standard er værdien for denne parameter ubegrænset – dvs. -1 – for hver database.

Syntaks

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

Eksempel

ALTER DATABASE test2 WITH CONNECTION LIMIT 10;

Ændring af standardtabellerummet for databasen

Du kan fysisk flytte standardtabellerumsobjekter som f.eks. tabeller og indekser fra standardtabellerummet til et nyt brugerdefineret tabellerum. Det nye standardtabellerum skal være tomt for denne database, og der må ikke være nogen, der har forbindelse til databasen under denne aktivitet.

OBS: Ejeren af databasen eller en superbruger skal foretage denne ændring, og brugeren skal have CREATE-rettigheder for det nye tabellerum.

Syntaks

ALTER DATABASE <database_name> SET TABLESPACE <custom_tablespace_name>;

Eksempel

ALTER DATABASE test SET TABLESPACE custom_tblspc;

RENAME-databaseangivelser

Du kan ændre den aktuelle databases navn ved hjælp af RENAME. Du kan dog ikke omdøbe databasen, mens der er adgang til den fra andre forbindelser.

Bemærk: Ejeren af databasen eller superbrugeren skal foretage denne ændring, og brugeren skal have CREATEDB-rettigheder.

Syntaks

ALTER DATABASE <old_database_name> RENAME TO <new_database_name>;

Eksempel

ALTER DATABASE test RENAME TO test123;

DROP Database statements

Du kan DROP måldatabasen. Dette fjerner katalogposterne for databasen og sletter den mappe, der indeholder dataene. Det kan kun udføres af ejeren af databasen. Den kan heller ikke udføres, mens du eller andre har forbindelse til måldatabasen.

Bemærk: DROP DATABASE kan ikke fortrydes.

Syntaks

DROP DATABASE <database_name>;

Eksempel

DROP DATABASE test2;

Similar Posts

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.