Mover a pasta de dados postgres na unidade NFS. É melhor criar um link simbólico, reiniciar o cluster ou modificar o script init.d?

4

Eu quero mover minha pasta postgres data para uma unidade NFS, mas não sei qual seria a melhor maneira de fazer isso. Eu tenho três opções em mente:

  1. De acordo com a Documentação do Postgres , um método seria usar o initdb comando com a opção -D .

    initdb will attempt to create the directory you specify if it does not already exist.

  2. Outro método listado em LinuxQuestions.org é atualizar o script postgressql init para apontar para o novo diretório, que, nesse caso, seria a unidade NFS.

  3. Por último, eu estava pensando em copiar a pasta pgsql/data para a unidade NFS e simplesmente criar uma ligação simbólica na pasta.

    ou seja, pgsql/data -> nfs/data

Converter ou atualizar o script de inicialização parece ser a abordagem mais simples para mim, mas não tenho certeza se eles seriam melhores ou mais seguros. É aqui que espero que alguém possa me ajudar. Quaisquer sugestões, preocupações e vantagens / desvantagens serão apreciados.

Informações sobre o meio ambiente

  • Servidor 5.7 do Red Hat Enterprise Linux
  • PostgreSQL 8.3.6

Suponha que a unidade NFS esteja montada com a opção -maproot=root e que a unidade NFS seja acessada pelo usuário root .

    
por John 29.07.2011 / 23:35

1 resposta

8

Você pode simplesmente desligar o Postgres, mover a pasta e alterar os scripts de inicialização para apontar para o local correto do diretório de dados. Verifique novamente os arquivos de configuração em data/ para referências ao caminho antigo antes de reiniciar o servidor.

Você provavelmente não quer fazer isso. Mesmo. É uma idéia BAD .
O outro nome do NFS é o Network Failure System. Ele não é conhecido por sua confiabilidade, e ter o sistema de arquivos subjacente desaparecendo em um momento inoportuno (por exemplo, ao anexar ao WAL) poderia realmente arruinar o seu dia, sem mencionar o seu banco de dados. Lembre-se que o Postgres faz nada de especial para o NFS, e vai surtar se algo inesperado acontecer (veja 17.2.1 no manual do Postgres ).

Talvez, se você descrever o problema subjacente que está tentando resolver (faça uma nova pergunta), podemos ajudá-lo a fazer isso de maneira menos arriscada.

    
por 30.07.2011 / 00:00