Jak měnit, přejmenovávat, rušit a kopírovat databáze v PostgreSQL

author
4 minutes, 0 seconds Read

SUMMARY: Tento článek se zabývá příkazy ALTER DATABASE, RENAME DATABASE a DROP DATABASE a použitím příkazu CREATE DATABASE WITH TEMPLATE ke kopírování databáze.

1. Příkazy ALTER DATABASE

a. Změna vlastníka databáze

b. Nastavení databáze Template

c. Omezení nových připojení pro určitou databázi

d. Omezení limitu připojení pro určitou databázi

e. Omezení počtu připojení pro určitou databázi. Změna výchozího tabulkového prostoru pro databázi

2. Příkazy RENAME DATABASE

3. Příkazy DROP DATABASE

4. Kopírování struktury a dat databáze

Tento příspěvek se zabývá některými dostupnými příkazy pro správu databází PostgreSQL z příkazu PSQL. Projdeme si metody pro změnu, přejmenování, zrušení a kopírování databáze.

Připomeneme si některé základní příkazy PostgreSQL:

1. Syntaxe vytváření databází:

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

2. Získání seznamu databází v současném clusteru:

a. \l+

b. select * from pg_database ;

Příkazy ALTER databáze

Příkazy ALTER databáze lze použít ke změně stávajících atributů cílové databáze.

Změna vlastníka databáze

Chcete-li změnit vlastníka databáze, připojený uživatel by měl být vlastníkem databáze a zároveň přímým nebo nepřímým členem nové vlastnické role a připojený uživatel musí mít oprávnění CREATEDB.

Syntaxe

ALTER DATABASE <database_name> OWNER TO <new_owner>;

Příklad

ALTER DATABASE test OWNER TO user;

Nastavení šablonové databáze

Ve výchozím nastavení máme v clusteru přítomny pouze dvě šablonové databáze – šablona0 a šablona1. Ostatní databáze nelze ve výchozím nastavení použít jako šablonu. V případě, že potřebujete vytvořit vlastní šablonu databáze pro své prostředí, můžete použít tuto možnost.

Syntaxe

ALTER DATABASE <database_name> WITH IS_TEMPLATE = true;

Příklad

ALTER DATABASE test WITH IS_TEMPLATE = true;

Omezení nových připojení pro konkrétní databázi

Tato možnost je velmi užitečná pro údržbu databáze. Během okna údržby databáze můžete omezit nová připojení ke konkrétní databázi. Chcete-li tuto možnost povolit, není k cílové databázi připojen žádný uživatel.

Syntaxe

ALTER DATABASE <database_name> WITH ALLOW_CONNECTIONS = false;

Příklad

ALTER DATABASE test2 WITH ALLOW_CONNECTIONS = false;

Omezení limitu připojení pro konkrétní databázi.

Pro zabezpečení a optimální výkon můžete omezit počet připojení, která se mohou připojit k cílové databázi. Ve výchozím nastavení je hodnota tohoto parametru neomezená – tj. -1 pro každou databázi.

Syntaxe

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

Příklad

ALTER DATABASE test2 WITH CONNECTION LIMIT 10;

Změna výchozího prostoru tabulek pro databázi

Fyzicky můžete přesunout výchozí objekty prostoru tabulek, jako jsou tabulky a indexy, z výchozího prostoru tabulek do nového vlastního prostoru tabulek. Nový výchozí prostor tabulek musí být pro tuto databázi prázdný a během této činnosti nesmí být k databázi nikdo připojen.

Poznámka: Tuto změnu musí provést vlastník databáze nebo superuživatel a uživatel musí mít práva CREATE pro nový prostor tabulek.

Syntaxe

ALTER DATABASE <database_name> SET TABLESPACE <custom_tablespace_name>;

Příklad

ALTER DATABASE test SET TABLESPACE custom_tblspc;

Příkazy databáze RENAME

Pomocí příkazu RENAME můžete změnit název aktuální databáze. Databázi však nemůžete přejmenovat, pokud k ní přistupují jiná připojení.

Poznámka: Tuto změnu musí provést vlastník databáze nebo superuživatel a uživatel musí mít práva CREATEDB.

Syntaxe

ALTER DATABASE <old_database_name> RENAME TO <new_database_name>;

Příklad

ALTER DATABASE test RENAME TO test123;

DROP Příkazy databáze

Cílovou databázi můžete DROP. Tím odstraníte katalogové záznamy databáze a smažete adresář obsahující data. Může jej provést pouze vlastník databáze. Také jej nelze provést, pokud jste vy nebo kdokoli jiný připojen k cílové databázi.

Poznámka: DROP DATABASE nelze vrátit zpět.

Syntaxe

DROP DATABASE <database_name>;

Příklad

DROP DATABASE test2;

.

Similar Posts

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.