Cum să modificați, să redenumiți, să renunțați și să copiați baze de date în PostgreSQL

author
3 minutes, 47 seconds Read

Rezumat: Acest articol acoperă instrucțiunile ALTER DATABASE, RENAME DATABASE și DROP DATABASE și utilizarea instrucțiunii CREATE DATABASE WITH TEMPLATE pentru a copia o bază de date.

1. Instrucțiunile ALTER DATABASE

a. Schimbarea proprietarului bazei de date

b. Configurarea bazei de date cu șablon

c. Restricționarea conexiunilor noi pentru o anumită bază de date

d. Restricționarea limitei de conexiuni pentru o anumită bază de date

e. Schimbarea Tablespace-ului implicit pentru baza de date

2. Instrucțiuni RENAME DATABASE

3. Instrucțiuni DROP DATABASE

4. Copierea structurii și a datelor bazei de date

În această postare se analizează câteva dintre comenzile disponibile pentru gestionarea bazelor de date PostgreSQL din promptul PSQL. Vom trece în revistă metodele de modificare, redenumire, eliminare și copiere a unei baze de date.

Să recapitulăm câteva comenzi de bază PostgreSQL:

1. Sintaxa de creare a unei baze de date:

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

2. Pentru a obține o listă a bazelor de date din clusterul actual:

a. \l+

b. select * from pg_database ;

Declarațiile de modificare a bazei de date

Declarațiile de modificare a bazei de date pot fi utilizate pentru a modifica atributele existente ale bazei de date țintă.

Schimbarea proprietarului bazei de date

Pentru a modifica proprietarul bazei de date, utilizatorul conectat trebuie să fie proprietarul bazei de date și, de asemenea, să fie un membru direct sau indirect al noului rol de proprietar, iar utilizatorul conectat trebuie să aibă privilegiul CREATEDB.

Sintaxa

ALTER DATABASE <database_name> OWNER TO <new_owner>;

Exemplu

ALTER DATABASE test OWNER TO user;

Configurarea bazei de date șablon

În mod implicit, avem doar două baze de date șablon prezente într-un cluster – șablon0 și șablon1. Alte baze de date nu pot fi folosite ca șablon în mod implicit. În cazul în care aveți nevoie să creați un șablon de bază de date personalizat pentru mediul dumneavoastră, puteți utiliza această opțiune.

Sintaxa

ALTER DATABASE <database_name> WITH IS_TEMPLATE = true;

Exemplu

ALTER DATABASE test WITH IS_TEMPLATE = true;

Restricționarea conexiunilor noi pentru o anumită bază de date

Această opțiune este foarte utilă pentru întreținerea bazei de date. Puteți restricționa conexiunile noi pentru o anumită bază de date în timpul ferestrei de întreținere a bazei de date. Pentru a activa această opțiune, niciun utilizator nu este conectat la baza de date țintă.

Sintaxa

ALTER DATABASE <database_name> WITH ALLOW_CONNECTIONS = false;

Exemplu

ALTER DATABASE test2 WITH ALLOW_CONNECTIONS = false;

Restrângerea limitei de conexiuni pentru o anumită bază de date.

Pentru securitate și performanță optimă, puteți limita numărul de conexiuni care se pot conecta la baza de date țintă. În mod implicit, valoarea pentru acest parametru este nelimitată – adică -1 – pentru fiecare bază de date.

Sintaxa

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

Exemplu

ALTER DATABASE test2 WITH CONNECTION LIMIT 10;

Schimbarea tablespace-ului implicit pentru baza de date

Puteți muta fizic obiectele tablespace-ului implicit, cum ar fi tabelele și indicii, din tablespace-ul implicit într-un nou tablespace personalizat. Noul tablespace implicit trebuie să fie gol pentru această bază de date și nimeni nu poate fi conectat la baza de date în timpul acestei activități.

Nota: Proprietarul bazei de date sau un superutilizator trebuie să facă această modificare, iar utilizatorul trebuie să aibă privilegii CREATE pentru noul tablespace.

Sintaxa

ALTER DATABASE <database_name> SET TABLESPACE <custom_tablespace_name>;

Exemplu

ALTER DATABASE test SET TABLESPACE custom_tblspc;

Exerciții RENAME bază de date

Puteți schimba numele bazei de date curente folosind RENAME. Cu toate acestea, nu puteți redenumi baza de date în timp ce aceasta este accesată de alte conexiuni.

Nota: Proprietarul bazei de date sau superutilizatorul trebuie să facă această modificare, iar utilizatorul trebuie să aibă privilegii CREATEDB.

Sintaxa

ALTER DATABASE <old_database_name> RENAME TO <new_database_name>;

Exemplu

ALTER DATABASE test RENAME TO test123;

DROP Database statements

Puteți face DROP la baza de date țintă. Acest lucru elimină intrările din catalog pentru baza de date și șterge directorul care conține datele. Poate fi executată numai de către proprietarul bazei de date. De asemenea, nu poate fi executată în timp ce dumneavoastră sau oricine altcineva este conectat la baza de date țintă.

Nota: DROP DATABASE nu poate fi anulat.

Sintaxa

DROP DATABASE <database_name>;

Exemplu

DROP DATABASE test2;

Similar Posts

Lasă un răspuns

Adresa ta de email nu va fi publicată.