0

現在、いくつかのデータを移動していますが、興味深い問題に直面しています。

CentOS サーバー (6.3) を立ち上げ、限られた組み込みディスク容量を持つサーバー上で Postgres 9.2 を実行しています。ただし、非常に信頼性の高い外部ネットワーク ディスク領域が大量に利用可能です。

データベース用にこのストレージデバイスのディレクトリにテーブルスペースを設定しましたが、すべてがうまく機能しているようです...

に格納する必要がある BLOB データが大量にあることに気付きましたpg_largeobject

のテーブルスペースを設定する方法を調べていて、いくつかの結果pg_largeobjectを見つけましたが、それらは恐ろしく古くなっています。

有望そうな記事を 1 つ見つけましたが、このスレッドは物事が変更される予定である/変更されるべきであるとも言及しているため、躊躇しています。

2つ質問があります...

  1. pg_largeobject理想的な世界では、メンテナンスを容易にするために、すべての postgres (を含む) をこの外部ストレージに移動したいと考えています。これは可能ですか?
  2. pg_largeobjectそうでない場合、ネットワーク ストレージを使用するにはどうすればよいですか?
4

1 に答える 1

1

ほのめかしたように、ストレージが iSCSI、ATAoE、NBD などの信頼できるファイル ネットワーク ブロック デバイスを使用していると仮定すると、PostgreSQL 全体をリモート ストレージに移動するのが最善の策です。NFS で Pg を実行することはお勧めしません。また、CIFS/SMBFS で実行してもうまくいきません。

ただ:

  • バックアップを作成する
  • SHOW data_directory;inの出力に注意してくださいpsql
  • PostgreSQL をシャットダウンする
  • pg_xlogデータ ディレクトリ ( 、、などを含むフォルダpg_clog) をリモート ストレージに移動します。
  • datadir の新しい場所の親ディレクトリの権限を調整して、postgresユーザーpostgres、グループ、またはothers権限ブロックが少なくともexecute各親ディレクトリにあることを確認して、ツリーをトラバースできるようにします。
  • システムの起動スクリプトを調整して、新しい場所を PostgreSQL の datadir として設定する、古い datadir の場所 ( による出力SHOW data_directory) を新しい場所にシンボリック リンクします。
  • PostgreSQL を起動

残念ながら、システムやパッケージが異なれば、datadir を見つける方法も異なります。たとえば、Debian/Ubuntu は pg_wrapper を使用します。

于 2013-03-19T01:43:21.143 に答える