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
- Ændring af ejeren af databasen
- Syntaks
- Eksempel
- Indstilling af skabelondatabasen
- Syntaks
- Eksempel
- Begrænsning af nye forbindelser til en specifik database
- Syntaks
- Eksempel
- Begrænsning af forbindelsesgrænsen for en bestemt database.
- Syntaks
- Eksempel
- Ændring af standardtabellerummet for databasen
- Syntaks
- Eksempel
- RENAME-databaseangivelser
- Syntaks
- Eksempel
- DROP Database statements
- Syntaks
- Eksempel
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;