無料スクリプト配布のPHP.TO   PHPの実用的なtips PHPマニュアル MySQLマニュアル Apacheマニュアル PostgreSQLマニュアル マニュアル検索    

initdb

名前

initdb --  PostgreSQL のデータベースクラスタを新しく作成する

概要

initdb [ option ...] [ --pgdata | -D ] directory

説明

initdb PostgreSQL のデータベースクラスタを新しく作成します。 データベースクラスタとは、1つのサーバインスタンスで管理されるデータベースの集合です。

データベースクラスタの作成には、データベースのデータを保存するディレクトリの作成、共有カタログテーブル(特定のデータベースではなく、クラスタ全体に所属するテーブル)の生成、そして template1 データベースと postgres データベースの作成といった作業が含まれます。 後から新しいデータベースを作成する際は、 template1 データベースの全ての内容がコピーされます。 (つまり、 template1 にインストールしたものすべてが、後に生成した各データベースに自動的にコピーされます。) postgres データベースは、ユーザ、ユーティリティ、サードパーティ製アプリケーションのデフォルトデータベースとしての使用を意図したものです。

initdb は指定されたデータディレクトリを作成しようと試みますが、多くの場合、そのデータディレクトリの親ディレクトリの所有者はrootなので、権限がないことがあります。 このような場合、まず、空のデータディレクトリをrootで作成し、 chown を使ってそのディレクトリの所有権限をデータベースのユーザに変えてください。 次に su を使ってデータベースユーザとなります。 最後にデータベースユーザとして initdb を実行します。

initdb は、サーバプロセスの所有者によって実行されなければなりません。 initdb によって作成されるファイルやディレクトリにサーバがアクセスする必要があるからです。 サーバをrootとして実行することはできませんので、rootで initdb を実行してはいけません (実際には、実行しようとしても拒否されます)。

initdb は、データベースクラスタのデフォルトのロケールと文字セット符号化方式を初期化します。 文字セット符号化方式、照合順( LC_COLLATE )および文字セットクラス( LC_CTYPE 、例えば、大文字、小文字、数字)は、データベース作成時、別々に設定することができます。 initdb template1 データベース用のこれらの値を決定します。 この値が他のすべてのデータベースのデフォルトとして提供されます。

デフォルトの照合順や文字セットクラスを変更するためには、 --lc-collate および --lc-ctype オプションを使用してください。 C POSIX 以外の照合順には性能の劣化が伴います。 これらの理由により initdb 実行時のロケールを正しく選択することが重要です。

残りのロケール関連のものはサーバ起動時に変更することができます。 --locale を使用して、照合順や文字セットクラスを含む、すべてのロケール関連のもののデフォルトを設定することも可能です。 SHOW ALL を使用して、すべてのサーバのロケール値( lc_* )を表示することができます。 詳細は 項22.1 に記載しています。

デフォルトの符号化方式を変更するには、 --encoding オプションを使用します。 詳細は 項22.3 に記載しています。

オプション

-A authmethod
--auth= authmethod

このオプションは、 pg_hba.conf にてローカルユーザ用に使用される認証方法( host 行と local 行)を指定します。 システムのすべてのローカルユーザが信頼できるわけではない場合は、 trust を使用しないでください。 インストールを簡単にするために trust がデフォルトです。

--auth-host= authmethod

このオプションは pg_hba.conf にてTCP/IP接続経由のローカルユーザ用に使用される認証方法( host 行)を指定します。

--auth-local= authmethod

このオプションは pg_hba.conf にてUnixドメインソケット接続経由のローカルユーザ用に使用される認証方法( local 行)を指定します。

-D directory
--pgdata= directory

このオプションは、データベースクラスタを格納すべきディレクトリを指定します。 initdb が必要とする情報はこれだけですが、 PGDATA 環境変数を設定しておけば、このオプションで指定する手間が省けます。 この方法は、後に同じ変数を使用してデータベースサーバ( postgres )がデータベースディレクトリを参照できるので、効率的です。

-E encoding
--encoding= encoding

テンプレートデータベースの符号化方式を選択します。 特に上書きされない限り、これが今後作成される全てのデータベースのデフォルト符号化方式となります。 デフォルトは、ロケールによって決まります。 ロケールが機能していない場合は、 SQL_ASCII になります。 PostgreSQL サーバによってサポートされる文字セットについては 項22.3.1 で説明します。

-k
--data-checksums

I/Oシステムによる破損検知を補助するために、データページにおいてチェックサムを使用します。 これがないと警告もされません。 チェックサムを有効にすると、認知できる程度の性能低下が発生する可能性があります。 これは初期化の際にのみ設定することができ、後で変更することはできません。 設定した場合、すべてのデータベースにおいて、すべてのオブジェクトに対してチェックサムが計算されます。

--locale= locale

データベースクラスタ用のデフォルトのロケールを設定します。 このオプションを指定しない場合は、 initdb を実行している環境のロケールが継承されます。 ロケールサポートについては 項22.1 で説明します。

--lc-collate= locale
--lc-ctype= locale
--lc-messages= locale
--lc-monetary= locale
--lc-numeric= locale
--lc-time= locale

--locale と似ていますが、指定したカテゴリのロケールのみを設定します。

--no-locale

--locale=C と同じです。

-N
--nosync

デフォルトでは initdb はすべてのファイルが安全にディスクに書き出されるまで待機します。 このオプションを使うと initdb は待機せずに返るようになり、より高速になりますが、後でオペレーティングシステムがクラッシュした場合にデータディレクトリが破損状態になってしまう可能性があります。 通常、このオプションは試験用では有用ですが、実用のインストレーションを作成する際に使用すべきではありません。

--pwfile= filename

initdb はデータベーススーパーユーザのパスワードをこのファイルから読み取ります。 このファイルの最初の行がパスワードとして解釈されます。

-S
--sync-only

すべてのデータベースファイルを安全にディスクに書き出し、終了します。 これは通常の initdb の操作をまったく行いません。

-T CFG
--text-search-config= CFG

デフォルトの全文検索設定を設定します。 詳細については default_text_search_config を参照してください。

-U username
--username= username

データベースのスーパーユーザのユーザ名を選択します。 initdb を実行している実効ユーザの名前がデフォルトです。 スーパーユーザの名前はあまり重要ではありませんが、慣習的に使われている postgres を使うことを(オペレーティングシステムのユーザ名と異なっていても)お勧めします。

-W
--pwprompt

initdb にデータベースのスーパーユーザ権限を与えるためのパスワード入力のプロンプトを表示させます。 パスワード認証を行うつもりがない場合は必要ありません。 このオプションを指定しても、パスワードの設定を行わない限りパスワード認証は行われません。

-X directory
--xlogdir= directory

このオプションはトランザクションログの格納ディレクトリを指定します。

この他にも、使用頻度は下がりますが、下記のオプションが使用可能です。

-d
--debug

ブートストラップバックエンドからのデバッグ情報と、一般の利用者にはおそらく不要なその他の情報を出力します。 ブートストラップバックエンドとは initdb がカタログテーブルを作成する際に使用するプログラムです。 このオプションはうんざりするようなログを大量に出力します。

-L directory

データベースクラスタを初期化する際に、 initdb が参照すべき入力ファイルを指定します。 これは通常必要ありません。 明示的に指定する必要がある場合は、その時に指定するよう要求されます。

-n
--noclean

デフォルトでは、 initdb を実行中にエラーが発生し、データベースクラスタを完成できなかった場合に、そのエラーが発生する前に作成された全てのファイルを削除します。 このオプションを指定すると、これらのファイルが削除しないで残されるので、デバッグの際にはとても便利です。

その他のオプションを以下に示します。

-V
--version

initdb のバージョンを表示し、終了します。

-?
--help

initdb のコマンドライン引数の使用方法を表示し、終了します。

環境

PGDATA

データベースクラスタを保存するディレクトリを指定します。 -D オプションを使用して上書きすることができます。

また、このユーティリティは、他のほとんどの PostgreSQL ユーティリティと同様、 libpq でサポートされる環境変数を使用します( 項31.14 を参照してください)。

注釈

initdb pg_ctl initdb 経由でも呼び出すことができます。

関連項目

pg_ctl , postgres

powered by SEO.CUG.NET