Podsumowanie: Artykuł omawia instrukcje ALTER DATABASE, RENAME DATABASE i DROP DATABASE oraz użycie CREATE DATABASE WITH TEMPLATE do skopiowania bazy danych.
1. ALTER DATABASE statements
a. Zmiana właściciela bazy danych
b. Ustawianie bazy danych Template
c. Ograniczanie nowych połączeń dla określonej bazy danych
d. Ograniczanie limitu połączeń dla określonej bazy danych
e. Zmiana domyślnej przestrzeni tabel dla bazy danych
2. Polecenia RENAME DATABASE
3. Polecenia DROP DATABASE
4. Kopiowanie struktury bazy danych i danych
W tym wpisie omówimy niektóre z dostępnych poleceń do zarządzania bazami danych PostgreSQL z poziomu PSQL. Omówimy metody zmiany, zmiany nazwy, usuwania i kopiowania bazy danych.
Przypomnijmy sobie kilka podstawowych poleceń PostgreSQL:
1. Składnia tworzenia bazy danych:
CREATE DATABASE name user_name ] template ] encoding ] lc_collate ] lc_ctype ] tablespace ] connlimit ] ]
2. Aby uzyskać listę baz danych w obecnym klastrze:
a.
b. select * from pg_database ;
- ALTER database statements
- Zmiana właściciela bazy danych
- Syntaktyka
- Przykład
- Ustawianie szablonowej bazy danych
- Syntaktyka
- Przykład
- Ograniczenie nowych połączeń dla określonej bazy danych
- Syntaktyka
- Przykład
- Ograniczenie limitu połączeń dla określonej bazy danych.
- Syntaktyka
- Przykład
- Zmiana domyślnej przestrzeni tabel dla bazy danych
- Syntaktyka
- Przykład
- Zmiana nazwy bazy danych
- Syntaktyka
- Przykład
- DROP Database statements
- Syntaktyka
- Przykład
ALTER database statements
ALTER database statements mogą być używane do zmiany istniejących atrybutów docelowej bazy danych.
Zmiana właściciela bazy danych
Aby zmienić właściciela bazy danych, podłączony użytkownik powinien być właścicielem bazy danych, a także być bezpośrednim lub pośrednim członkiem nowej roli właściciela, a podłączony użytkownik musi mieć przywilej CREATEDB.
Syntaktyka
ALTER DATABASE <database_name> OWNER TO <new_owner>;
Przykład
ALTER DATABASE test OWNER TO user;
Ustawianie szablonowej bazy danych
Domyślnie w klastrze obecne są tylko dwie szablonowe bazy danych – template0 i template1. Inne bazy danych nie mogą być domyślnie używane jako szablon. W przypadku, gdy potrzebujesz stworzyć niestandardowy szablon bazy danych dla swojego środowiska, możesz użyć tej opcji.
Syntaktyka
ALTER DATABASE <database_name> WITH IS_TEMPLATE = true;
Przykład
ALTER DATABASE test WITH IS_TEMPLATE = true;
Ograniczenie nowych połączeń dla określonej bazy danych
Ta opcja jest bardzo przydatna do utrzymania bazy danych. Możesz ograniczyć nowe połączenia do określonej bazy danych podczas okna konserwacji bazy danych. Aby włączyć tę opcję, żaden użytkownik nie jest połączony z docelową bazą danych.
Syntaktyka
ALTER DATABASE <database_name> WITH ALLOW_CONNECTIONS = false;
Przykład
ALTER DATABASE test2 WITH ALLOW_CONNECTIONS = false;
Ograniczenie limitu połączeń dla określonej bazy danych.
Dla zapewnienia bezpieczeństwa i optymalnej wydajności można ograniczyć liczbę połączeń, które mogą się połączyć z docelową bazą danych. Domyślnie wartość tego parametru jest nieograniczona, tj. -1 dla każdej bazy danych.
Syntaktyka
ALTER DATABASE <database_name> WITH CONNECTION LIMIT <max_number_of_connections>;
Przykład
ALTER DATABASE test2 WITH CONNECTION LIMIT 10;
Zmiana domyślnej przestrzeni tabel dla bazy danych
Możesz fizycznie przenieść obiekty domyślnej przestrzeni tabel, takie jak tabele i indeksy z domyślnej przestrzeni tabel do nowej niestandardowej przestrzeni tabel. Nowa domyślna przestrzeń tabel musi być pusta dla tej bazy danych i nikt nie może być podłączony do bazy danych podczas tej czynności.
Uwaga: Właściciel bazy danych lub superużytkownik musi dokonać tej zmiany, a użytkownik musi mieć uprawnienia CREATE dla nowej przestrzeni tabel.
Syntaktyka
ALTER DATABASE <database_name> SET TABLESPACE <custom_tablespace_name>;
Przykład
ALTER DATABASE test SET TABLESPACE custom_tblspc;
Zmiana nazwy bazy danych
Możesz zmienić nazwę bieżącej bazy danych za pomocą polecenia RENAME. Nie można jednak zmienić nazwy bazy danych, gdy jest ona dostępna dla innych połączeń.
Uwaga: Właściciel bazy danych lub superużytkownik musi dokonać tej zmiany, a użytkownik musi mieć uprawnienia CREATEDB.
Syntaktyka
ALTER DATABASE <old_database_name> RENAME TO <new_database_name>;
Przykład
ALTER DATABASE test RENAME TO test123;
DROP Database statements
Możesz usunąć docelową bazę danych. Usuwa to wpisy katalogowe dla bazy danych i usuwa katalog zawierający dane. Polecenie może być wykonane tylko przez właściciela bazy danych. Nie można jej również wykonać, gdy użytkownik lub inna osoba jest podłączona do docelowej bazy danych.
Uwaga: DROP DATABASE nie można cofnąć.
Syntaktyka
DROP DATABASE <database_name>;
Przykład
DROP DATABASE test2;
.