Configurando o postgresql em outro SDD

0

Eu sou novo na parte do servidor do Ubuntu. Estou configurando um servidor com o Ubuntu 14.04 LTS OS instalado. Eu tenho dois discos sata de 1 TB e dois discos sata de 2 TB (configurados com RAID 1 para ambos). Eu estou usando os 1TB para o sistema operacional e também outras coisas, mas para o meu banco de dados eu quero usar discos de 2TB.

Instalei o postgresql no meu servidor, mas quero que todos os dados do banco de dados sejam armazenados no banco de dados de 2 TB.

Então eu quero alguma ajuda em como fazer isso. Quero dizer como definir a casa ou o data_directory do meu banco de dados postgresql para que os dados sejam armazenados diretamente no 2TB.

Gostaria que a ajuda fosse dada a partir do ponto de montagem.

Obrigado antecipadamente

    
por Vishal 31.08.2015 / 20:49

2 respostas

1

Não sei ao certo onde o postgres armazena seus dados, acho que /var/lib/postgresql/ . Se você quiser usar o 2tb exclusivamente para dados postgres, você pode fazer o seguinte: (Eu não tenho postgres rodando atm, por favor verifique caminhos e nomes. Isto funciona para qualquer tipo de serviço, assim como no postgres). / p>

  • Pare o postgres sudo service postgres stop
  • dir de dados mv: sudo mv /var/lib/postgresql /var/lib/postgresql.bak
  • sudo mkdir /var/lib/postgresql
  • crie um sistema de arquivos e monte a nova unidade em /var/lib/postgresql
  • altere proprietário e grupo para postgres e altere os direitos de acesso ( chown e chmod , você pode verificar as configurações antigas de ls -la /var/lib/postgresql.bak )
  • Copie os dados do postgres de volta: cp -ra /var/lib/postgresql.bak/* /var/lib/postgresql/ (se houver arquivos ocultos, copie-os também: cp -ra /var/lib/postgresql.bak/.* /var/lib/postgresql/
  • reiniciar postgres: service postgres start
por Jakob Lenfers 31.08.2015 / 21:09
1

Na verdade, isso é bem simples. Tudo o que você precisa fazer é especificar um caminho ao criar um cluster de banco de dados. Isso vem da documentação do postgresql . O comando para criar um novo cluster pg é o initdb e se parece com isto:

initdb [option...] [--pgdata | -D] directory

De acordo com a documentação, initdb criará o diretório especificado, a menos que não tenha privilégios para gravar no local de destino. Para estar seguro, você pode criá-lo como root e depois alterar a propriedade para o usuário do sistema postgres. No meu sistema (usado para desenvolvimento), criei um diretório em /home (em uma matriz raid1) que pertence a postgres e executei o initdb nesse diretório.

cd /home sudo mkdir postgres sudo chown postgres:postgres postgres initdb [your db creation options here] --pgdata /home/postgres

Agora você pode iniciar o servidor postgresql especificando o diretório pgdata. Por exemplo,

pg_ctl start -D /home/postgres

iniciará uma instância do servidor que faz uso de seu diretório especificado. Se uma instância do servidor já estiver em execução, talvez você queira substituir start por restart . Isso derrubará o servidor em execução e iniciará com as novas opções.

Em uma nota lateral, como você já deve ter adivinhado, é possível ter várias instâncias do servidor sendo executadas ao mesmo tempo (em diferentes portas, é claro), cada uma gerenciando um cluster separado (isto é, caminho físico). / p>     

por hmayag 31.08.2015 / 23:49