initdbコマンドを使用してインスタンスを作成する方法について説明します。
カーネルパラメータの設定は、“付録L カーネルパラメータの設定”を参照してから行ってください。
設定後は、各オペレーティングシステムのコマンドの仕様に応じて、必要ならばシステムを再起動してください。
PGDATA環境変数またはDオプションで指定したディレクトリを、データベースクラスタの格納先のディレクトリとしてインスタンスを作成します。また、initdbコマンドを実行したユーザーが、インスタンス管理者になります。
注意
initdbコマンドで作成したインスタンスは、WebAdminでは管理できません。
複数のインスタンスを作成する場合、データベースクラスタを格納するディレクトリ、ポート番号は重複しないようにしてください
参照
initdbコマンドの詳細については、“PostgreSQL文書”の“リファレンス”の“initdb”を参照してください。
以下にインスタンスの作成方法を説明します。
インスタンス管理者となるOSユーザーアカウントの使用
インスタンス管理者となるOSユーザーアカウントでサーバに接続します。
OSのスーパーユーザー(root)を使用することはできません。
ここでは、サーバに接続しているユーザーをOSのスーパーユーザーからOSのユーザーアカウント“symfo”に変更する例を示します。
# su symfo
環境変数の設定
インスタンスを作成するサーバに、環境変数を設定します。
以下の環境変数を設定します。
環境変数PATH
インストールディレクトリ/binを追加します。
環境変数MANPATH
インストールディレクトリ/share/manを追加します。
環境変数LD_LIBRARY_PATH
インストールディレクトリ/libを追加します。
インストールディレクトリが“/opt/symfoserver64”の場合の環境変数の設定例を示します。
$ PATH=/opt/symfoserver64/bin:$PATH ; export PATH $ MANPATH=/opt/symfoserver64/share/man:$MANPATH ; export MANPATH $ LD_LIBRARY_PATH=/opt/symfoserver64/lib:$LD_LIBRARY_PATH ; export LD_LIBRARY_PATH
$ setenv PATH /opt/symfoserver64/bin:$PATH $ setenv MANPATH /opt/symfoserver64/share/man:$MANPATH $ setenv LD_LIBRARY_PATH /opt/symfoserver64/lib:$LD_LIBRARY_PATH
データベースクラスタの作成
initdbコマンドにデータベースクラスタの格納先ディレクトリを指定してデータベースクラスタを作成します。必要に応じて、トランザクションログ格納先やロケールの設定オプションを指定してください。
$ initdb -D /database/inst1 --xlogdir=/transaction/inst1 --lc-collate="C" --lc-ctype="C" --encoding=UTF8
ポイント
いくつかの機能では、インスタンスをシステム内で一意に識別する名前を要求されることがあります。これらの機能では、WebAdminの命名規約に従った名前を受け入れることができるので、以下を参考にして命名することを推奨します。
16バイト以内
先頭の文字は、ASCIIアルファベット
先頭以外の文字は、ASCIIアルファベット、ASCII数字
注意
I/O負荷分散のため、トランザクションログ格納先は、データベースクラスタの格納先のディスク装置やバックアップデータ格納先のディスク装置とは別のディスク装置に格納することを検討してください。
文字列の並び換え順と文字の分類には “C”または“POSIX”を指定してください。“C”または“POSIX”以外を指定した場合、言語や国・地域特有のルールに従った動作をしますが、性能が劣化します。また、ロケールの異なるシステム上でアプリケーションなどを動作させる場合に、改修が必要になります。
例えば以下のように指定します。
initdb --locale="C" --lc-messages="ja_JP.UTF8" initdb --lc-collate="C" --lc-ctype="C"
lc-messagesに“C”または“POSIX”以外の文字列を設定する場合は、lc-ctypeとlc-collateを同じ文字列に設定してください。同じ文字列でない場合は、すべての日本語メッセージが正しく出力されず、メッセージの内容が不明になります。
Symfoware Serverを起動する端末の環境変数LANGには、initdbのlc-messages(postgresql.confのlc_messages)に指定したものと、同じ文字列を指定してください。同じ文字列でない場合は、起動した端末に表示されるメッセージ、および、起動に使用したpg_ctlコマンドまたはpostgresコマンドのlオプションに指定したログファイルに出力されるメッセージが正しく出力されないことがあります。
データベースの符号化方式には、SQL_ASCII以外を指定してください。SQL_ASCIIを設定した場合は、データベース内のデータの符号化方式が、データを挿入するアプリケーションに依存して、統一される保証がなくなります。例えば、マルチバイト文字の文字列を入力した場合に、その文字列がUTF-8で挿入されるか、EUC_JPで挿入されるかを、Symfoware Serverは保証しません。
参照
ロケールに関する詳細は、“PostgreSQL文書”の“サーバの管理”の“多言語対応”の“ロケールのサポート”を参照してください。
ポート番号の設定
postgresql.confのportパラメータにポート番号を指定してください。ポート番号は、他のソフトウェアと重ならないように設定してください。指定しない場合には、“26500”が選択されます。
WebAdminを使用して別のインスタンスを作成するときのために、/etc/servicesファイルに、使用するポート番号を登録しておいてください。WebAdminは、/etc/servicesファイルを用いて空きポート番号の候補選択と指定されたポート番号の重複チェックを行っているからです。
なお、サービス名は、任意の名前で登録してください。
コアファイル出力先の設定
調査情報の採取に備えてコアファイルの出力先を指定する場合は、postgresql.confのcore_directory、core_contentsパラメータの設定を行ってください。
参照
これらのパラメータの設定内容は、“運用ガイド”の“パラメータ”を参照してください。
バックアップ格納先の設定
データベースの異常に備えてバックアップを行う場合は、バックアップデータ格納先など、バックアップに関する設定を行ってください。
参照
バックアップの指定については、“運用ガイド”の“バックアップ方法”を参照してください。
インスタンスの起動
インスタンスを起動します。
pg_ctlコマンドのstartモードにより起動します。
wオプションを指定することを推奨します。これにより、インスタンスの起動の完了を待ってからコマンドが復帰します。wオプションを指定しない場合、インスタンスの起動が正常に完了したのか、失敗したのかが分からない場合があります。
以下の場合に“FATAL:データベースシステムは起動しています(11189)”のメッセージが出力されることがあります。
インスタンスの起動途中にアプリケーションやコマンド、またはプロセスがデータベースに接続した場合
wオプションを指定してインスタンスを起動した場合
これは、pg_ctlコマンドがインスタンスのプロセスが起動を完了したかどうかを確認するために出力しています。
そのため、他にデータベースに接続するアプリケーション、コマンド、およびプロセスが存在していない場合は、このメッセージを無視してください。
$ pg_ctl start -w -D /database/inst1
参照
pg_ctlコマンドの詳細については、“PostgreSQL文書”の“リファレンス”の“pg_ctl”を参照してください。