postgres [-A 0 | 1 ] [-B número_de_buffers] [-c nome=valor] [-d nível_de_depuração] [--describe-config] [-D diretório_de_dados] [-e] [-E] [-f s | i | t | n | m | h ] [-F] [-N] [-o nome_do_arquivo] [-O] [-P] [-s | -t pa | pl | ex ] [-S memória_de_trabalho] [-W segundos] [--nome=valor] nome_do_banco_de_dados
postgres [-A 0 | 1 ] [-B número_de_buffers] [-c nome=valor] [-d nível_de_depuração] [-D diretório_de_dados] [-e] [-f s | i | t | n | m | h ] [-F] [-o nome_do_arquivo] [-O] [-p nome_do_banco_de_dados] [-P] [-s | -t pa | pl | ex ] [-S memória_de_trabalho] [-v protocolo] [-W segundos] [--nome=valor]
O executável postgres é o verdadeiro processo servidor PostgreSQL que processa os comandos. Normalmente não é chamado diretamente; em vez deste é iniciado o servidor multiusuário postmaster .
A segunda forma acima é como o postgres é chamado pelo postmaster (somente conceitualmente, porque o postmaster e o postgres são, na verdade, o mesmo programa); não deve ser chamado diretamente desta maneira. A primeira forma chama o servidor diretamente no modo monousuário interativo. A principal utilização deste modo é durante a inicialização pelo initdb . Algumas vezes é utilizada para depuração ou para recuperação de desastre.
Quando chamado no modo interativo a partir da linha de comando, o usuário pode entrar com comandos e os resultados são mostrados na tela, mas de uma forma que é mais útil para os desenvolvedores do que para os usuários finais. Deve-se notar que executar o servidor em modo monousuário não é inteiramente adequado para a depuração do servidor, uma vez que não acontecerá nenhuma comunicação entre processos e bloqueio de fato.
Ao executar o servidor autônomo, o usuário da sessão será definido como o usuário com o identificador 1. Não há necessidade deste usuário existir e, portanto, o servidor autônomo pode ser usado para recuperar manualmente certos tipos de dano acidentais dos catálogos do sistema. Poderes implícitos de superusuário são concedidos ao usuário com identificador igual a 1 no modo autônomo.
Quando o postgres é iniciado pelo postmaster , herda todas as opções definidas por este. Além disso, opções específicas do postgres podem ser passadas pelo postmaster usando a chave -o.
Pode-se evitar a digitação destas opções definindo um arquivo de configuração. Veja a Seção 16.4 para obter detalhes. Algumas opções (seguras) também podem ser definidas, por um modo dependente da aplicação, pelo cliente se conectando. Por exemplo, se a variável de ambiente PGOPTIONS estiver definida, então os clientes baseados na libpq passam esta cadeia de caracteres para o servidor, que irá interpretá-la como opções de linha de comando do postgres.
As opções -A, -B, -c, -d, -D, -F e --nome possuem o mesmo significado que no postmaster , exceto que -d 0 impede o nível de log do postmaster ser propagado para o postgres.
Existem várias outras opções que podem ser especificadas, usadas principalmente para fins de depuração, mostradas apenas para uso pelos desenvolvedores de sistema do PostgreSQL. A utilização de qualquer uma destas opções é altamente desaconselhada. Além disso, qualquer uma destas opções poderá mudar ou desaparecer em uma versão futura sem nenhum aviso.
Nota: Nem as varreduras seqüenciais nem as junções de laço aninhado podem ser desabilitadas completamente; as opções -fs e -fn simplesmente desencorajam o uso pelo otimizador de planos deste tipo, se houver alguma outra alternativa.
Para as outras variáveis de ambiente, com pouca influência durante o modo monousuário, veja o postmaster .
Para cancelar a execução de um comando, deve ser enviado o sinal SIGINT para o processo postgres executando este comando.
Para fazer o postgres recarregar os arquivos de configuração, deve ser enviado o sinal SIGHUP. Normalmente é melhor enviar o sinal SIGHUP para o postmaster que, por sua vez, enviará o sinal SIGHUP para cada um de seus descendentes. Mas em alguns casos pode-se querer que apenas um processo postgres recarregue os arquivos de configuração.
O postmaster utiliza SIGTERM para comunicar a um processo postgres que termine normalmente, e SIGQUIT para que termine sem a limpeza normal. Estes sinais não devem ser utilizados pelos usuários. Também não é aconselhável enviar um SIGKILL para um processo postgres — o postmaster vai interpretar como sendo uma queda do postgres, e vai obrigar todos os processos postgres descendentes terminarem como parte de seu procedimento padrão de recuperação de quedas.
Inicie o servidor autônomo com um comando do tipo:
postgres -D /usr/local/pgsql/data outras_opções meu_banco_de_dados
Forneça o caminho correto para o diretório do banco de dados com -D, ou garanta que a variável de ambiente PGDATA esteja definida. Também especifique o nome do banco de dados em que deseja trabalhar.
Normalmente, o servidor autônomo trata o caractere de nova-linha como fim da entrada do comando; não existe inteligência sobre ponto-e-vírgula, como existe no psql. Para continuar o comando por várias linhas, deve ser digitado uma contrabarra (\) logo antes de cada nova-linha, exceto a última.
Mas se for usada a chave de linha de comando -N, o caractere de nova-linha não termina a entrada do comando. Neste caso, o servidor lê a entrada padrão até a marca de fim-de-arquivo (EOF) e, então, processa a entrada como sendo a cadeia de caracteres de um único comando. A seqüência contrabarra nova-linha não recebe tratamento especial neste caso.
Para sair da sessão tecle EOF (Control+D, geralmente). Se for utilizado -N, serão necessários dois EOF consecutivos para sair.
Deve ser observado que o servidor autônomo não oferece funcionalidades sofisticadas para edição de linha (não existe o histórico dos comandos, por exemplo).