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:
- Alterar o proprietário da base de dados
- Sintaxe
- Exemplo
- Configurar a base de dados de modelos
- Sintaxe
- Exemplo
- Restrição de novas conexões para um banco de dados específico
- Sintaxas
- Exemplo
- Restrição do limite de conexões para uma base de dados específica.
- Sintaxe
- Exemplo
- Mudar o espaço de tabelas padrão para o banco de dados
- Sintaxe
- Exemplo
- Declarações do banco de dados RENAME
- Sintaxe
- Exemplo
- DROP Extratos do banco de dados
- Sintaxe
- Exemplo
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;