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
- Schimbarea proprietarului bazei de date
- Sintaxa
- Exemplu
- Configurarea bazei de date șablon
- Sintaxa
- Exemplu
- Restricționarea conexiunilor noi pentru o anumită bază de date
- Sintaxa
- Exemplu
- Restrângerea limitei de conexiuni pentru o anumită bază de date.
- Sintaxa
- Exemplu
- Schimbarea tablespace-ului implicit pentru baza de date
- Sintaxa
- Exemplu
- Exerciții RENAME bază de date
- Sintaxa
- Exemplu
- DROP Database statements
- Sintaxa
- Exemplu
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;