initlocation [ --location=er">alble> | -D altdir ] [ --username=name | -u name ] [ altdir ]
Unix ファイルシステム上のどこに別のデータベースの格納を予定す るのかを指定します。トップレベルディレクトリは PGDATA ディレクトリと呼ばれますので、最初の別の 場所を PGDATA2 で指し示すと解り易いでしょう。
このデータベース格納領域の Unix ファイルシステムにおける所有者 は誰かを指定します。Postgres スーパ ユーザはデータベースシステムを格納するファイル全てと、これらの ファイルにアクセスする postmaster プロセスとそのバックエンドプ ロセスを所有する Unix ユーザです。通常は、このスーパユーザが initlocation を実行すべきユーザであ り、そして、その結果そのディレクトリとファイルの所有者となりま す。
Note: Unix のスーパユーザのみが Postgres スーパユーザとして異なったユーザをもつデータベースシステムを作 成することができます。Postgres スー パユーザ以外のユーザを指定すると、データベースセキュリティやデ ータ整合性に関する問題が発生する可能性があります。より詳細につ いては PostgreSQL アドミ ニストレータガイド を参照して下さい。
initlocation は指定した場所にディレクト リを作成します。
正常終了。
指定したディレクトリ領域に書き込むための、ファイルシステム上 のパーミッションを持っていません。
指定したユーザ名が Postgres スー パユーザではありません。
--username コマンドラインオプションを指定し て下さい。
initlocation は Postgres の二次的データベータベース格納 領域を新規に作成します。二次的格納領域には、必要なディレクトリツリ ーが含まれ、それらディレクトリには正しいファイルパーミッションがつ いています。
データベース格納領域の作成には、データベースのデータが保存されること になるディレクトリの作成も含まれます。
initlocation の引数には、2 種類ありま す。1 つ目は、環境変数(つまり PGDATA2 )を指定す ることができます。この環境変数は、 CREATE DATABASE/WITH LOCATION や createdb -D altdir を後で使用する際にバックエンドに知らせなければならないものです。し かし、これを成功させるためには、バックエンドデーモンはそ の環境内にこの値を持っていなければなりません。 2 つ目は、格納領域のトップディレクトリの絶対パスを明示的に指定する ことができます。しかし、この第 2 の選択肢は Postgres のインストールの段階で明示的に 有効にしていない限り使用できません。通常はセキュリティやデータの整合 性に関する悩みを軽減するために無効になっています。
Note: Postgres は格納領域を作成するために、指 定されたパスに /base/ を付け加えます。
バックエンドが WITH LOCATION の引数に要求するのは、 全てが大文字で、かつパスのデリミタが無い場合それは環境変数となること です。