initlocation

Name

initlocation  --  二次的 Postgres データベース格納領域 を作成する。

Synopsis

initlocation [ --location=er">alble> | -D altdir ]
    [ --username=name | -u name ]
    [ altdir ]
  

入力

--location=altdir, -D altdir, altdir

Unix ファイルシステム上のどこに別のデータベースの格納を予定す るのかを指定します。トップレベルディレクトリは PGDATA ディレクトリと呼ばれますので、最初の別の 場所を PGDATA2 で指し示すと解り易いでしょう。

--username=name, -u name, PGUSER

このデータベース格納領域の Unix ファイルシステムにおける所有者 は誰かを指定します。Postgres スーパ ユーザはデータベースシステムを格納するファイル全てと、これらの ファイルにアクセスする postmaster プロセスとそのバックエンドプ ロセスを所有する Unix ユーザです。通常は、このスーパユーザが initlocation を実行すべきユーザであ り、そして、その結果そのディレクトリとファイルの所有者となりま す。

Note: Unix のスーパユーザのみが Postgres スーパユーザとして異なったユーザをもつデータベースシステムを作 成することができます。Postgres スー パユーザ以外のユーザを指定すると、データベースセキュリティやデ ータ整合性に関する問題が発生する可能性があります。より詳細につ いては PostgreSQL アドミ ニストレータガイド を参照して下さい。

出力

initlocation は指定した場所にディレクト リを作成します。

We are initializing the database area with username postgres (uid=500). This user will own all the files and must also own the server process. Creating Postgres database system directory altdir Creating Postgres database system directory altdir

正常終了。

We are initializing the database area with username postgres (uid=500). This user will own all the files and must also own the server process. Creating Postgres database system directory /usr/local/src/testlocation mkdir: cannot make directory `altdir': Permission denied

指定したディレクトリ領域に書き込むための、ファイルシステム上 のパーミッションを持っていません。

Valid username not given. You must specify the username for the Postgres superuser for the database system you are initializing, either with the --username option or by default to the USER environment variable.

指定したユーザ名が Postgres スー パユーザではありません。

Can't tell what username to use. You don't have the USER environment variable set to your username and didn't specify the --username option

--username コマンドラインオプションを指定し て下さい。

説明

initlocationPostgres の二次的データベータベース格納 領域を新規に作成します。二次的格納領域には、必要なディレクトリツリ ーが含まれ、それらディレクトリには正しいファイルパーミッションがつ いています。

データベース格納領域の作成には、データベースのデータが保存されること になるディレクトリの作成も含まれます。

initlocation の引数には、2 種類ありま す。1 つ目は、環境変数(つまり PGDATA2 )を指定す ることができます。この環境変数は、 CREATE DATABASE/WITH LOCATIONcreatedb -D altdir を後で使用する際にバックエンドに知らせなければならないものです。し かし、これを成功させるためには、バックエンドデーモンはそ の環境内にこの値を持っていなければなりません。 2 つ目は、格納領域のトップディレクトリの絶対パスを明示的に指定する ことができます。しかし、この第 2 の選択肢は Postgres のインストールの段階で明示的に 有効にしていない限り使用できません。通常はセキュリティやデータの整合 性に関する悩みを軽減するために無効になっています。

Note: Postgres は格納領域を作成するために、指 定されたパスに /base/ を付け加えます。

バックエンドが WITH LOCATION の引数に要求するのは、 全てが大文字で、かつパスのデリミタが無い場合それは環境変数となること です。

使用法

環境変数を使用して、別の場所にデータベースを作成します。

% setenv PGDATA2 /opt/postgres/data
% initlocation PGDATA2
% createdb -D PGDATA2