web-dev-qa-db-ja.com

NFSドライブ上のpostgresデータフォルダを移動しています。シンボリックリンク、クラスターの再初期化、またはinit.dスクリプトの変更の方が良いですか?

Postgres dataフォルダーをNFSドライブに移動したいのですが、それを行うための最良の方法がわかりません。私は3つのオプションを念頭に置いています:

  1. Postgres Documentation によると、1つの方法は、initdbコマンドを-Dオプションとともに使用することです。

    initdbは、指定したディレクトリがまだ存在しない場合は作成を試みます。

  2. LinuxQuestions.org にリストされている別の方法は、postgressql initスクリプトを更新して、新しいディレクトリ(この場合はNFSドライブ)を指すようにすることです。

  3. 最後に、pgsql/dataフォルダーをNFSドライブにコピーして、フォルダーをシンボリックリンクするだけだと思っていました。

    つまり、pgsql/data -> nfs/data

Initスクリプトをシンボリックリンクまたは更新することは、私にとって最も簡単なアプローチのように思えますが、それらが最善の方法か、最も安全な方法かはわかりません。これは誰かが私を助けてくれることを願っているところです。任意の提案、懸念、および賛否両論をいただければ幸いです。

環境情報

  • Red Hat Enterprise Linux Server 5.7
  • PostgreSQL 8.3.6

NFSドライブが-maproot=rootオプションでマウントされており、NFSドライブにrootユーザーがアクセスするとします。

4
John

Postgresをシャットダウンし、フォルダを移動して、データディレクトリの正しい場所を指すようにinitスクリプトを変更するだけです。サーバーを再起動する前に、data/の下の構成ファイルで古いパスへの参照を再確認してください。


あなたはおそらくこれをしたくないでしょう。本当に。それは[〜#〜]悪い[〜#〜]の考えです。
NFSの別名はネットワーク障害システムです。その信頼性は知られていないため、基盤となるファイルシステムが不適切なタイミングで(たとえば、WALに追加するときに)消えてしまうと、データベースは言うまでもなく、本当に1日が台無しになる可能性があります。 。 PostgresはNFSに対して特別なことは何もせず、予期しないことが起こった場合はびっくりすることを忘れないでください( Postgresマニュアルの17.2.1を参照 =)。

おそらく、解決しようとしている根本的な問題を説明する(新しい質問をする)場合、リスクの少ない方法で解決できるように支援できますか?

8
voretaq7