Como alterar, renomear, soltar e copiar bases de dados no PostgreSQL

author
4 minutes, 6 seconds Read

SUMMARY: Este artigo cobre as declarações ALTER DATABASE, RENAME DATABASE e DROP DATABASE e usando a declaração CREATE DATABASE WITH TEMPLATE para copiar uma base de dados.

1. ALTER DATABASE statements

a. Mudando o proprietário da base de dados

b. Configurando a base de dados modelo

c. Restringindo novas conexões para uma base de dados específica

d. Restringindo o limite de conexões para uma base de dados específica

e. Mudando o espaço de tabelas padrão para o banco de dados

2. Declarações RENAME DATABASE

3. Declarações DROP DATABASE

4. Copiando a estrutura e dados do banco de dados

Este post olha alguns dos comandos disponíveis para gerenciar bancos de dados PostgreSQL a partir do prompt PSQL. Vamos rever métodos para alterar, renomear, descartar e copiar um banco de dados.

Vamos recapitular alguns comandos básicos do PostgreSQL:

1. Sintaxe de criação de banco de dados:

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

2. Para obter uma lista de bancos de dados no cluster atual:

a. \l+

b. selecione * do pg_database ;

ALTER database statements:

ALTER database statements can be used to change the existing attributes of the target database.

Alterar o proprietário da base de dados

Para alterar o proprietário da base de dados, o usuário conectado deve ser o proprietário da base de dados e também ser um membro direto ou indireto da nova função de proprietário, e o usuário conectado deve ter o privilégio CREATEDB.

Sintaxe

ALTER DATABASE <database_name> OWNER TO <new_owner>;

Exemplo

PROPRIETÁRIO DA BASE DE DADOS AO USUÁRIO;

Configurar a base de dados de modelos

Por defeito, temos apenas duas bases de dados de modelos presentes num cluster-template0 e template1. Outras bases de dados não podem ser usadas como modelo por padrão. Caso você precise criar um template de banco de dados personalizado para seu ambiente, você pode usar esta opção.

Sintaxe

ALTER DATABASE <database_name> WITH IS_TEMPLATE = true;

Exemplo

ALTER DATABASE test WITH IS_TEMPLATE = true;

Restrição de novas conexões para um banco de dados específico

Esta opção é muito útil para a manutenção do banco de dados. Você pode restringir novas conexões para uma base de dados específica durante a janela de manutenção da base de dados. Para ativar esta opção, nenhum usuário está conectado ao banco de dados de destino.

Sintaxas

ALTER DATABASE <database_name> WITH ALLOW_CONNECTIONS = false;

Exemplo

Teste DE BASE DE DADOS ÚLTIMA2 COM PERMANENTE_CONEXÕES = falsas;

Restrição do limite de conexões para uma base de dados específica.

Para segurança e ótimo desempenho, você pode limitar o número de conexões que podem se conectar à base de dados de destino. Por padrão, o valor para este parâmetro é ilimitado – ou seja, -1 para cada banco de dados.

Sintaxe

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

Exemplo

ALTER DATABASE test2 WITH CONNECTION LIMIT 10;

Mudar o espaço de tabelas padrão para o banco de dados

Pode mover fisicamente objetos do espaço de tabelas padrão como tabelas e índices do espaço de tabelas padrão para um novo espaço de tabelas personalizado. O novo tablespace padrão deve estar vazio para este banco de dados, e ninguém pode ser conectado ao banco de dados durante esta atividade.

Nota: O dono do banco de dados ou um superusuário deve fazer esta mudança, e o usuário deve ter privilégios CRIAR para o novo tablespace.

Sintaxe

ALTER DATABASE <database_name> SET TABLESPACE <custom_tablespace_name>;

Exemplo

ALTER DATABASE test SET TABLESPACE custom_tblspc;

Declarações do banco de dados RENAME

É possível alterar o nome do banco de dados atual usando RENAME. Entretanto, você não pode renomear o banco de dados enquanto ele estiver sendo acessado por outras conexões.

Nota: O proprietário do banco de dados ou superusuário deve fazer esta alteração, e o usuário deve ter privilégios CREATEDB.

Sintaxe

ALTER DATABASE <old_database_name> RENAME TO <new_database_name>;

Exemplo

ALTER DATABASE test RENAME TO test123;

DROP Extratos do banco de dados

Você pode DROPar o banco de dados de destino. Isto remove as entradas do catálogo para a base de dados e elimina o diretório que contém os dados. Ele só pode ser executado pelo proprietário da base de dados. Também não pode ser executado enquanto você ou qualquer outra pessoa estiver conectada à base de dados de destino.

Nota: DROP DATABASE não pode ser desfeita.

Sintaxe

DROP DATABASE <database_name>;

Exemplo

DROP DATABASE test2;

Similar Posts

Deixe uma resposta

O seu endereço de email não será publicado.