initdbコマンドを使用して、インスタンスを作成する方法について説明します。
注意
ファイアウォールなどでポートが塞がれている(アクセス許可されていない)場合は、使用するポートに対し、アクセスできるように許可してください。ポートを開ける(アクセス許可を与える)方法については、ご使用のベンダーのドキュメントを参照してください。
なお、ポートを開ける際には、十分セキュリティ上のリスクを考慮してください。
PGDATA環境変数またはDオプションで指定したディレクトリを、データベースクラスタの格納先のディレクトリとしてインスタンスを作成します。また、initdbコマンドを実行したユーザーが、インスタンス管理者になります。
注意
initdbコマンドで作成したインスタンスは、WebAdminでは管理できません。
複数のインスタンスを作成する場合、データベースクラスタを格納するディレクトリ、ポート番号は重複しないようにしてください
参照
initdbコマンドの詳細については、“PostgreSQL文書”の“リファレンス”の“initdb”を参照してください。
以下にインスタンスの作成方法を説明します。
インスタンス管理者となるOSユーザーアカウントの使用
インスタンス管理者となるOSユーザーアカウントでサーバに接続します。
環境変数の設定
インスタンスを作成するサーバに、環境変数を設定します。
以下の環境変数を設定します。
環境変数PATH
インストールフォルダ\bin、および、インストールフォルダ\libを追加します。
インストールフォルダが“C:\Program Files\Fujitsu\fsepv<xy>server64”の場合の環境変数の設定例を示します。
なお“<xy>”は製品のバージョンレベルを示します。
> SET PATH=C:\Program Files\Fujitsu\fsepv<xy>server64\bin;C:\Program Files\Fujitsu\fsepv<xy>server64\lib;%PATH%
データベースクラスタの作成
initdbコマンドにデータベースクラスタの格納先ディレクトリを指定してデータベースクラスタを作成します。必要に応じて、トランザクションログ格納先やロケールの設定オプションを指定してください。
> initdb -D D:\database\inst1 --xlogdir=E:\transaction\inst1 --lc-collate="C" --lc-ctype="C" --encoding=UTF8
ポイント
いくつかの機能では、インスタンスをシステム内で一意に識別する名前を要求されることがあります。これらの機能では、WebAdminの命名規約に従った名前を受け入れることができるので、以下を参考にして命名することを推奨します。
16バイト以内
先頭の文字は、ASCIIアルファベット
先頭以外の文字は、ASCIIアルファベット、ASCII数字
注意
I/O負荷分散のため、トランザクションログ格納先は、データベースクラスタの格納先のディスク装置やバックアップデータ格納先のディスク装置とは別のディスク装置に格納することを検討してください。
メッセージが表示される言語の設定に“C”以外を指定した場合には、正しくメッセージが表示されない場合があります。
文字列の並び換え順と文字の分類には “C”を指定してください。“C”以外を指定した場合、言語や国・地域特有のルールに従った動作をしますが、性能が劣化します。また、ロケールの異なるシステム上でアプリケーションなどを動作させる場合に、改修が必要になります。
例えば以下のように指定します。
initdb --locale="C" --lc-messages="C" initdb --lc-collate="C" --lc-ctype="C"
データベースの符号化方式には、SQL_ASCII以外を指定してください。SQL_ASCIIを設定した場合は、データベース内のデータの符号化方式が、データを挿入するアプリケーションに依存して、統一される保証がなくなります。例えば、マルチバイト文字の文字列を入力した場合に、その文字列がUTF8で挿入されるか、SJISで挿入されるかを、FUJITSU Enterprise Postgresは保証しません。
参照
ロケールに関する詳細は、“PostgreSQL文書”の“サーバの管理”の“多言語対応”の“ロケールのサポート”を参照してください。
ポート番号の設定
postgresql.confのportパラメータにポート番号を指定してください。ポート番号は、他のソフトウェアと重ならないように設定してください。指定しない場合には、“27500”が選択されます。
WebAdminを使用して別のインスタンスを作成するときのために、サービスファイルに、使用するポート番号を登録しておいてください。WebAdminは、サービスファイルを用いて空きポート番号の候補選択と指定されたポート番号の重複チェックを行っているからです。
なお、サービス名は、他のサービス名と重複しない任意の名前で登録してください。
注意
Windowsファイアウォールの設定のために、ポート番号を控えておいてください。
コアファイル出力先の設定
調査情報の採取に備えてコアファイルの出力先を指定する場合は、postgresql.confのcore_directory、core_contentsパラメータの設定を行ってください。
参照
これらのパラメータの設定内容は、“運用ガイド”の“パラメータ”を参照してください。
バックアップ格納先の設定
データベースの異常に備えてバックアップを行う場合は、バックアップデータ格納先など、バックアップに関する設定を行ってください。
参照
バックアップの指定については、“運用ガイド”の“バックアップ方法”を参照してください。
Windowsサービスへのインスタンスの登録
pg_ctlコマンドのregisterモードで、Windowsサービスへのインスタンスの登録を行ってください。
pg_ctlコマンドに、登録するサービス名、ユーザ名、パスワード、インスタンスへのパスを指定して、Windowsサービスへのインスタンスを登録します。
登録サービス名が“inst1”、ユーザ名が“fsepuser”、データベースクラスタの格納先ディレクトリが“D:\database\inst1”の場合の実行例を示します。
> pg_ctl register -N "inst1" -U fsepuser -P ******** -D D:\database\inst1 -w
注意
“Administrator”権限のあるインスタンス管理者ユーザで行ってください。
以下の理由により、ユーザ名とパスワードを必ず指定してください。
WindowsサービスがNetwork Serviceアカウントで起動されるため、ユーザ資源がすべてそのアカウントのものとして作成されます。その結果、データベース資源へのアクセス失敗、バックアップ/リカバリの不可などの異常事象が発生します。
なお、セキュリティの観点からユーザ名とパスワードの指定を行わない場合は、Windowsサービスへのインスタンスの登録直後にWindowsサービスの一覧からアカウントを指定するようにしてください。
pg_ctlコマンドに指定するパスワードを入力する際、セキュリティ上の観点から、他のユーザから参照されないように注意してください。
Windowsサービスにインスタンスが登録されます。
sc queryコマンドでも登録状態を確認することができます。
インスタンスの起動
以下の手順でサービスを起動してください。
[サービス]ウィンドウを表示する
Windowsの[管理ツール]で、[サービス]をクリックします。
サービスを起動する
サービス名一覧の中から、起動したいインスタンス名を選択し、[サービスの開始]ボタンをクリックします。
コマンドで起動する場合は、コマンドプロンプトで、net startコマンドまたはsc startコマンドでサービス名を指定して起動してください。