Назад | Перейти на главную страницу

Перемещение папки данных postgres на диск NFS. Что лучше: символическая ссылка, переустановка кластера или изменение сценария init.d?

Я хочу переместить свой постгрес data папку на диск NFS, но я не уверен, как лучше это сделать. У меня есть три варианта:

  1. В соответствии с Документация Postgres, одним из способов было бы использовать initdb команда с -D вариант.

    initdb попытается создать указанный вами каталог, если он еще не существует.

  2. Другой метод, указанный на LinuxQuestions.org заключается в обновлении postgressql сценарий инициализации, указывающий на новый каталог, которым в данном случае будет диск NFS.

  3. Наконец, я подумал, что просто скопирую pgsql/data папку на диск NFS и просто создайте символическую ссылку на папку.

    т.е. pgsql/data -> nfs/data

Создание символьных ссылок или обновление сценария инициализации кажутся мне самым простым подходом, но я не уверен, что это лучший или самый безопасный способ. Здесь я надеюсь, что кто-нибудь может мне помочь. Любые предложения, проблемы и плюсы / минусы будут оценены.

Информация об окружающей среде

Предположим, что диск NFS смонтирован с -maproot=root вариант и что диск NFS будет доступен для root пользователь.

Вы можете просто выключить Postgres, переместить папку и изменить сценарии инициализации, чтобы они указывали на правильное расположение каталога данных. Дважды проверьте файлы конфигурации в data/ для ссылок на старый путь перед перезапуском сервера.


Вы, вероятно, не захотите этого делать. В самом деле. Это ПЛОХОЙ идея.
Другое название NFS - Network Failure System. Он не известен своей надежностью, и отключение базовой файловой системы в неподходящее время (например, при добавлении в WAL) может действительно испортите себе день, не говоря уже о вашей базе данных. Помните, что Postgres делает ничего особенного для NFS, и будет волноваться, если произойдет что-то неожиданное (см. 17.2.1 в руководстве Postgres).

Возможно, если вы опишете основную проблему, которую пытаетесь решить (зададите новый вопрос), мы сможем помочь вам сделать это менее рискованным способом?