PostgreSQLのすべてのデータがルートのパーティションに格納されているんですがそれを

他のパーティションなどに割り振れないでしょうか。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/01/25 11:31:51
  • 終了:--

回答(3件)

id:taknt No.1

きゃづみぃ回答回数13539ベストアンサー獲得回数11982005/01/25 11:41:27

ポイント30pt

設定時の指定は いかがでしょうか?

MANPATHやPGDATAなど。

id:tonolove No.2

tonolove回答回数158ベストアンサー獲得回数02005/01/25 13:17:03

ポイント80pt

http://www.stackasterisk.jp/tech/dataBase/postgresql02_03.jsp

PostgreSQL 入門:PostgreSQL 有効活用術(バックアップ/リストア編)

3_4.データベースファイルの生成場所

データベースのデータは、デフォルトで /usr/local/pgsql/data/base/ 以下にファイルとして作成されます。通常の利用だとこれで問題はないのですが、大規模なデータベースの場合、ディスク領域が足りなくなることが懸念されます。そういった場合、大容量のパーティションにデータを配置すれば、問題は回避できます。

方法ですが、シンボリックリンクという機構を使います。シンボリックリンクを用いると、ファイルやディレクトリへのリンクを、実体とは別のところに配置することが可能になります。例えば、/tmp/hoge というファイルがあったとして、/home/hoge/link に /tmp/hoge へのシンボリックリンクを作れば、cat /home/hoge/link とすれば、/tmp/hoge の内容が表示されるようになります。

シンボリックリンクを作るためのコマンドは ln (エルエヌ)です。上記の例の場合だと

ln -s /tmp/hoge /home/hoge/link

のように、-s オプションをつけて、実体、リンクの名前 という順番で記述します。

PostgreSQL のデータを他の場所に移す場合の説明をします。データは /usr/local/pgsql/data/base/ の下にデータベース名のディレクトリが作られていて、その中にすべてのファイルが存在します。ですから、まずそのディレクトリを希望の位置に移動させます。その後、/usr/local/pgsql/data/base の下にデータベース名と同じ名前のシンボリックリンクを作ります。

上記の処理はデータベースの運用が始まる前に行うべきなのですが、運用中にしなければならないときは、postmaster をとめて、データベースへのアクセスが無い状態にしてから移動作業を行います。

pg_ctl stop

mv /usr/local/pgsql/data/base/yourdbname /ext/dbdir/

ln -s /ext/dbdir/yourdbname /usr/local/pgsql/data/base/yourdbname

yourdbname はデータベース名です。最後に postmaster を起動して完了です。

id:medical_blog No.3

medical_blog回答回数16ベストアンサー獲得回数02005/01/26 01:04:33

ポイント30pt

テーブルスペースを使用すれば可能ですが、これは出たばかりのVer8で新規に実装された機能です。

ただこれを使用してもテーブル単位などでしか、振り分けることは出来ません。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません