Documentação do PostgreSQL 7.4.1 | ||||
---|---|---|---|---|
Anterior | Início | Capítulo 18. Gerenciamento de bancos de dados | Fim | Próxima |
É possível criar bancos de dados em outros locais além do local padrão para a instalação. Deve ser lembrado que todos os acessos aos bancos de dados são realizados pelo servidor de banco de dados e, portanto, qualquer local especificado deve poder ser acessado pelo servidor.
Um local alternativo para bancos de dados é referenciado por uma variável de ambiente que fornece o caminho absoluto para o local de armazenamento pretendido. Esta variável de ambiente deve estar presente no ambiente do servidor e, portanto, deve ser definida antes do servidor ser inicializado (Portanto, o conjunto de locais alternativos está sob controle do administrador; os usuários comuns não podem mudar). Pode ser utilizado qualquer nome válido de variável de ambiente para referenciar um local alternativo, embora seja recomendado a utilização de nomes de variáveis com o prefixo PGDATA para evitar confusão e conflito com outras variáveis.
Para criar a variável no ambiente do processo servidor primeiro o servidor deve ser parado, a variável definida, inicializada a área de dados e, finalmente, reinicializado o servidor (veja também a Seção 16.6 e a Seção 16.3 ). Para definir uma variável de ambiente execute
PGDATA2=/home/postgres/data export PGDATA2
nos interpretadores de comando Bourne, ou
setenv PGDATA2 /home/postgres/data
no csh ou no tcsh. Deve haver certeza que esta variável de ambiente estará sempre definida no ambiente do servidor, senão não será possível acessar o banco de dados. Portanto, provavelmente será necessário definir a variável em algum arquivo de inicialização do interpretador de comandos, ou em algum script de inicialização do servidor.
Para criar uma área de armazenamento de dados em PGDATA2, deve-se garantir que já existe o diretório indicado por esta variável (neste caso /home/postgres), e que este diretório pode ser escrito pela conta de usuário sob a qual o servidor executa (veja a Seção 16.1 ). Então, a partir da linha de comando, deve ser executado:
initlocation PGDATA2
(não initlocation $PGDATA2). Depois o servidor pode ser inicializado.
Para criar um banco de dados no novo local deve ser utilizado o comando:
CREATE DATABASE nome_do_banco_de_dados WITH LOCATION 'local';
onde local é a variável de ambiente utilizada, neste exemplo PGDATA2. O comando createdb possui a opção -D para esta finalidade.
Os bancos de dados criados em locais alternativos podem ser acessados e removidos como qualquer outro banco de dados.
Nota: Também é possível especificar caminhos absolutos no comando CREATE DATABASE diretamente, sem definir as variáveis de ambiente. Esta funcionalidade está desabilitada por padrão, porque é um risco à segurança. Para que seja habilitada o PostgreSQL deve ser compilado com a macro do pré-processador C ALLOW_ABSOLUTE_DBPATHS definida. Uma forma de fazer é executar o passo de compilação da seguinte maneira:
gmake CPPFLAGS=-DALLOW_ABSOLUTE_DBPATHS all