Pesquisei no Google e encontrei esta página da web antiga , que dizia apenas para alterar o nome do diretório. Tentei mas não deu certo:
$ pg_lsclusters
Version Cluster Port Status Owner Data directory Log file
8.4 main 5432 down postgres /var/lib/postgresql/8.4/main /var/log/postgresql/postgresql-8.4-main.log
9.1 main 50420 online postgres /var/lib/postgresql/9.1/main /var/log/postgresql/postgresql-9.1-main.log$ pg_ctlcluster 9.1 main stop
$ pwd
/var/lib/postgresql/9.1
$ ls
main
$ mv main oldmain
$ pg_ctlcluster 9.1 oldmain start
Error: specified cluster does not exist
PostgreSQL 9.1.4, Ubuntu 11.10
Atualização: versão 166 do
postgresl-common
pacote adicionadapg_renamecluster
. Veja a nova resposta de Ilya sobre isso.Em versões mais antigas (incluindo Postgres 9.1.4 no Ubuntu 11.10), o nome de um cluster é vinculado ao nome do diretório de dados na "arquitetura PostgreSQL Multi-Version/Multi-Cluster" introduzida por Martin Pitt. Isso é fornecido com pacotes Debian (Debian, Ubuntu e distribuições relacionadas). Para uma descrição detalhada da arquitetura, consulte:
Ou navegue pelo arquivo online aqui.
Outras instalações não possuem todos esses recursos, então algumas pessoas podem ficar confusas quando você fala sobre nomes de cluster.
Apenas renomear o diretório de dados não funciona, porque você precisa alterar o diretório de
/etc/postgresql/<version>/<cluster>
acordo.E há algumas configurações no seu
postgresql.conf
, que também precisam ser ajustadas. Execute um grep no diretório para ver:Debian/Ubuntu tem um
pg_renamecluster
comando (disponível no pacote "postgresql-common") que faz exatamente o que você precisa:postgresql.conf
.Página de homem .
Observação para usuários do Systemd: geradores são usados para criar arquivo de unidade (ou seja, serviço) para cada cluster PostgreSQL. Então, depois
pg_renamecluster
que você deve recarregar a configuração do Systemd, habilite e inicie o novo serviço:sudo systemctl daemon-reload sudo systemctl enable postgresql@<version>-<new cluster name>.service sudo systemctl start postgresql