Jak zmienić, zmienić nazwę, usunąć i skopiować bazę danych w PostgreSQL

author
3 minutes, 30 seconds Read

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

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;

.

Similar Posts

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.