早見表 |
|
カタログ |
システム |
カテゴリ |
データベース アプライアンス |
ユーザ ボリューム |
あり |
最小 メモリ |
160 MB |
OS |
Linux |
制約 |
なし |
質問/コメント |
重要: CA 3Tera AppLogic 2.8+ では PGSQL を使用できません。代わりに PGSQL64 を使用してください。
PGSQL64 は、PostgreSQL データベース エンジン(http://www.postgresql.org)に基づいたデータベース アプライアンスです。 任意のアプリケーションにデータベースを簡単に追加できる方法を提供します。 PGSQL64 は、MYSQLx アプライアンスによって現在サポートされていない多くの機能をサポートするエンタープライズ スタイルのデータベース アプライアンスです。 これらの機能の一部として、ストアド プロシージャ、トリガ、ビューおよびユーザ定義データ型が含まれます。
PGSQL64 は、各 PGSQ64L インスタンス上で設定できるアプリケーション定義ボリューム上にデータベースを格納します。 空のボリューム上で起動されると、PGSQL64 はオプションで空のデータベースを作成します。 PGSQL64 データベース ボリュームは複数の PGSQL インスタンス間で共有できません(PGSQL インスタンス当たり 1 つのデータベース ボリューム)。
PGSQL64 クライアントは、in 端子を通じて設定されたデータベースにアクセスします。 データベース リクエストは、同じ端子で処理されて完了し、元に戻ります。 PGSQL64 では、有効な Postgres ユーザが in 端子を通じてデータベースにアクセスできます(アプライアンスには 1 つの設定済みスーパーユーザの役割があります: 標準の「postgres」)。 PGSQL64 は、in 端子を通じてサポートされる同時接続の最大数で設定できます。
PGSQL64 では、log 端子を通じてアクセスできるデータベース ログの管理も行えます。 ログはデータベース情報およびエラー ログ記録を追跡するのに役立ちます。 ログ パス、名前、有効期間および内容を設定できます。 また、さまざまなデータベース統計とデバッグ情報を有効にして、データベース アクセス パターンのプロファイリングおよび問題/エラーの診断を促進することもできます。
一般に、GSQL64 は、汎用 Web データベース アプリケーション(単純なクエリを実行する多くのユーザが存在する小規模データベース)または判断サポート データベース(複雑なクエリを実行する少数のユーザが存在する大規模データベース)のいずれかに使用されます。
名前 |
最新バージョン |
OS |
PostgreSQL |
注 |
PGSQL64 |
2.0.2-1 |
CentOS 5.5 |
9.0.1 |
|
境界
リソース
リソース |
最小 |
最大 |
デフォルト |
CPU |
0.1 |
16 |
0.4 |
メモリ |
160 MB |
32G |
512 MB |
帯域幅 |
1 Mbps |
2 Gbps |
250 Mbps |
注: 同時ユーザ数とデータベース サイズという 2 つの主要要因に基づいて、メモリを増やす必要があります。 通常、PGSQL は、メモリ 128MB 当たり約 80 人の同時ユーザをサポートできます。 データベースが大きいほど、PGSQL は処理用のメモリ要求が増大します。 たとえば、PGSQL は少なくとも 1G の 10G データベース用メモリで設定する必要があります。パフォーマンスを向上させるには、1G を超えるメモリが推奨されます。
端子
名前 |
方向 |
プロトコル |
説明 |
in |
in |
PGSQL |
クライアントから PostgreSQL データベース リクエストを受信します。 |
log |
out |
CIFS |
エラー ログを格納するためのリモート ファイル システムにアクセスするために使用されます。 この端子は、使用しない場合は、未接続のままにしておいてかまいません。 |
mon |
out |
CCE |
パフォーマンスとリソースの使用状況統計を送信します。 この端子は未接続のままにしておいてかまいません。 |
デフォルト インターフェースは有効です。 (SSH 経由の)診断およびトラブルシューティング用です。 このアプライアンスの今後のバージョンで SSH アクセスを無効にする可能性があります。
ユーザ ボリューム
ボリューム |
説明 |
data |
データベース データ ストレージ用のボリューム。 |
重要: データ ボリュームは PGSQL インスタンスに排他的に使用する必要があります(他のアプライアンスと共有できない)。
プロパティ
注: PGSQL プロパティはどれもファイル名とパス以外は大文字と小文字を区別しません。
プロパティ名 |
タイプ |
説明 |
auto_create |
文字列 |
データベースが存在しない場合、データベースを作成するべきかどうかを決めます。 作成する場合は「yes」、(ボリュームが壊れている場合に、誤って上書きしないように)自動作成を行わない場合は「no」を選択できます。 「no」に設定し、ユーザ ボリュームにデータベースが存在しない場合、アプライアンスはメンテナンス モード(PostgreSQL デーモンを起動しない)で起動します。 |
read_only |
文字列 |
in 端子経由でアクセスされるデータベースは読み取り専用です。 読み取り専用の場合は「yes」、読み取り/書き込みの場合は「no」を選択できます。 このプロパティは、データベースのパフォーマンスを最適化するという唯一の目的で PGSQL によって使用されます(読み取り専用データベースはガーベージ コレクションなどを必要としません)。 |
max_connections |
整数 |
PGSQL が in 端子で処理するデータベースへアクティブな同時接続の最大数。 PGSQL はメモリ管理用の高度な計算時にこの値を使用します。 通常、PGSQL は、同時接続数 80 当たり 128MB のメモリを必要とします。 接続制限に達すると、PGSQL はその後の接続をすべて拒絶します。 |
query_complexity |
文字列 |
このプロパティは、ユーザが PGSQL で使用されるデータベースに対して実行するクエリの一般的な複雑さを指定します。 有効な値は以下のとおりです。 |
sync_on_write |
文字列 |
PGSQL が、データベース更新が物理的にディスクに書き込まれるまで待機するかどうかを決めます(主としてトランザクションをコミットする場合)。 物理ディスクの更新を待機する場合は「yes」、更新をキャッシュして、後で書き込む場合は「no」を選択できます。 このプロパティを「yes」に設定すると、パフォーマンスは低下しますが、アプライアンスのクラッシュや障害が発生した後に、データベースを確実に一貫した状態に復旧できる可能性があります。 データベースが読み取り専用に指定されている場合、PGSQL が自動的にこの機能を無効にして、このプロパティの値を無視することに注意してください。 |
timezone |
文字列 |
アプライアンスで使用されるタイムゾーンを指定します。 このプロパティが空の場合、タイムゾーンは変更されず、現状のものが使用されます。 サポートされているタイムゾーンのリストはここで参照できます。 デフォルト: empty |
ロギング プロパティ
プロパティ名 |
タイプ |
説明 |
log_filename |
文字列 |
log 端子経由でアクセスされるファイル システムを基準にしたデータベース ログ ファイルのファイル名(/mnt/log/postgresql.log 用の postgresql.log、または /mnt/log/pgsql_logs/postgresql.log 用の /pgsql_logs/postgresql.log など)。 「empty」の場合、ログ記録は無効になります。 ログ ファイル名に % エスケープを指定できます(Linux の strftime パターンと同じです。% エスケープの全リストについては、このトピックの終わりのリファレンス セクションを参照してください)。 % エスケープを使用しない場合、PGSQL はログ ファイルの作成時の時間を追加します。 デフォルト値は(empty)です。 |
log_age |
整数 |
分単位で指定するログ ファイルの最大有効期間。 指定された分数が経過した後、log_filename プロパティを使用して新しいログ ファイルが作成されます。 ログ ファイルがすでに存在する場合、PGSQL はそのログ ファイルを切り捨てます。これによりログのローテーションが可能になります。 新しいログ ファイルの時間ベースの作成を無効にするには、0 に設定します。 |
log_size |
整数 |
メガバイト単位で指定するログ ファイルの最大サイズ。 ログ ファイルが指定されたサイズに達すると、log_filename プロパティを使用して新しいログ ファイルが作成されます。 ログ ファイルがすでに存在する場合、PGSQL はそのログ ファイルを切り捨てます。これによりログのローテーションが可能になります。 新しいログ ファイルのサイズベースの作成を無効にするには、0 に設定します。 |
log_level |
文字列 |
データベース ログ レベル。 有効な値は以下のとおりです。 |
log_cmd_stats |
文字列 |
PGSQL での SQL コマンドの実行に関する統計(コマンドが実行を開始した時間を含む)をログに記録するかどうかを決めます。 ログ記録を有効にする場合は「yes」、ログ記録を無効にする場合は「no」を選択できます。 統計には PGSQL 内の pg_stat_activity システム ビューを使用してアクセスできます。 「no」に設定した場合、PGSQL カスタム カウンタは無効になります。 |
重要: ログ記録が有効で、log 端子が接続されていない場合、PGSQL アプライアンスは起動に失敗します。
カスタム カウンタ
log_cmd_stats プロパティが「yes」に設定されている場合、PGSQL アプライアンスは mon 端子を介して以下のカスタム カウンタをレポートします。 これらのカウンタは PostgreSQL カウンタ グループに属します。
カウンタ名 |
説明 |
アクティブなプロセス |
サーバのアクティブなサーバ プロセスの数 |
コミット済みトランザクション |
サーバでコミット済みのトランザクション |
ロールバック |
サーバでロールバックされたトランザクション |
DB ブロック フェッチ リクエスト |
サーバのディスク ブロック フェッチ リクエストの数 |
DB ブロック フェッチ ヒット |
サーバのキャッシュ内で検出されたディスク ブロック フェッチ リクエストの数 |
エラー メッセージ
アプリケーションの起動に失敗した場合、以下の内容のエラーがシステム ログにログ記録される場合があります。
エラー メッセージ |
説明 |
エラー: postgres.conf 設定ファイルを更新できませんでした。ブート ボリューム上のディスク空き容量が不足している可能性があります。 |
PGSQL で postgres.conf 設定ファイルを更新できませんでした。 ブート ボリュームがいっぱいになっているか、権限に問題があることが原因として考えられます。 |
エラー: 予期しない内部エラー: postgres.conf.tmpl ファイルが見つかりません。CA テクニカル サポートに問い合わせてください。 |
テンプレート ファイル postgresql.conf.tmpl が存在しないかまたは判読不能です。CA テクニカル サポートに問い合わせてください。 |
エラー: 指定されたログ ファイルにアクセスできません。log_filename プロパティに適切なパスが指定されていること、log 端子が接続されていることを確認してください。 |
PGSQL でログ ファイル ディレクトリを特定できませんでした。log_filename の値が無効であることが原因として考えられます。 |
エラー: 指定されたログ ファイルに書き込むことができません。指定されたログ ディレクトリが書き込み可能なことを確認してください。 |
PostgreSQL ログ ファイルに書き込むことができません。 |
エラー: log_level プロパティに不明なログ レベルが指定されました。 |
指定された log_level 値は無効です。none、error、warn、notice、debug のいずれかにする必要があります。 |
エラー: データベースが読み取り専用に指定されているので、log_cmd_stats を有効にできません。 |
log_cmd_stats は、データベースが読出し書込みである必要があります。 |
エラー: ユーザのデータベース ボリュームをマウントできませんでした。 ボリュームが有効なファイル システムとしてフォーマットされていることを確認します。 |
PGSQL は、データベース ファイルで指定されたボリュームをマウントできませんでした。 ボリュームが存在し、ext3 ファイル システムでフォーマットされることを確認してください。 |
エラー: PGSQL は、提供されたデータベース ボリュームに認識されない PostgreSQL データベースがあるため、メンテナンス モードで起動しました。 |
指定されたデータベース ボリュームには有効なデータベースが含まれません。また、auto_create は「no」に設定されます。 アプライアンスはメンテナンス モードで起動します。 |
エラー: 提供されたデータベース ボリューム上で新しいデータベースの作成に失敗しました。 失敗の詳細については、PGSQL 内の /var/log/appliance/log ファイルを参照してください |
PGSQL はデータベース ディレクトリを空にしたり、新しいディレクトリを作成することができませんでした。 |
エラー: PostgreSQL サーバを起動できませんでした。 障害の詳細については、PGSQL 内の /var/log/appliance/log ログ ファイルを参照してください |
PGSQL は PostgreSQL サーバを起動できませんでした。詳細については、/var/log/pgstartup.log および /var/log/appliance/log を参照してください。 |
エラー: log_filename が指定されましたが、log 端子が接続されていません。 |
log_filename プロパティは「empty」ではありませんが PGSQL の log 端子が接続されていません。 |
エラー: log_filename が指定されていますが、ログ デバイスがマウントされていません。 |
log_filename プロパティは「empty」ではありませんが、PGSQL はログ記録デバイスにアクセスできませんでした。 PGSQL が NAS の前に起動したことが、原因として考えられます。 |
ユーザに注意を呼びかける必要がある重大エラーが検出された場合、PGSQL は、以下のようにグリッドのダッシュボードにメッセージをログ記録します。
メッセージ |
説明 |
データ ボリュームの空き容量が 5% 未満です。 |
PGSQL アプライアンス上のデータ ボリュームの空き容量が 5% 未満です。 ボリュームのサイズを拡張することをお勧めします。 |
データ ボリュームの空き容量が 1% 未満です。 |
PGSQL アプライアンス上のデータ ボリュームの空き容量が 1% 未満です。 すぐに対応する必要があります。データ損失が発生する可能性があります。 |
ディスク空き容量がしきい値を下回ると、これらのメッセージは、1 回のみログ記録されます。
PGSQL のパフォーマンスは、sync_on_write、log_filename および log_cmd_stats プロパティ値の著しい影響を受けます。 fsync、ログ記録および統計をすべて無効にすると(sync_on_write=no、log_filename=""、log_cmd_stats=no)、最良のパフォーマンス結果が得られます。 以下の表は、これらの機能を有効および無効にしたときに実行されるサンプル pgbench テスト結果を示しています(秒当たりのトランザクション数を示す tps 単位で指定)。 pgbench はデータベースのパフォーマンスを測定するために PostgreSQL に含まれているユーティリティです。
pgbench テスト設定 |
有効化 |
無効化 |
1 クライアント、100 リクエスト |
40~70 tps |
650 tps |
10 クライアント、100 リクエスト |
60~90 tps |
1100 tps |
100 クライアント、100 リクエスト |
70~110 tps |
1200 tps |
シンプルな 2 層アプリケーション(Web データベース アプリケーション)
以下の図は、単純なクエリを実行する多くのユーザ向けの 2 層 Web アプリケーションでの PGSQL アプライアンスの標準的な使い方を示しています。
使用するアプライアンス:
クライアント リクエストは usr ゲートウェイ上に着信します。 ゲートウェイが Web サーバにリクエストを転送し、この Web サーバがリクエストを提供します。 srv 上のスクリプト(たとえば Perl または PHP)は、永続データにアクセスする必要があるときに、db 端子を介して dbase アプライアンスを使用します。
この例では、dbase とともに使用されるデータベースは読み取り専用ではなく、多くのユーザが srv を通じてアクセスして、単純なクエリを実行できます。 そのため、dbase は 256MB のメモリを使用するように設定されています。 また、データベースはデータベース エラー ログ ファイル(ログ端子は接続されていません)を維持しません。
プロパティ設定の例:
プロパティ名 |
値 |
注 |
auto_create |
yes |
データ ボリュームが空の場合は、データベースを作成します。 |
read_only |
no |
データベースは読み取り専用ではなく、変更される場合があります。 |
query_complexity |
simple |
ユーザは通常単純なクエリを実行します。 |
sync_on_write |
yes |
データベースの更新がディスクに物理的に書き込まれるのを待機します。 |
注: dbase 上にデータ ボリュームも設定する必要があり、web 上にコンテンツ ボリュームを設定する必要があります。 ここで使用できるアプリケーション ボリュームを作成するには、「グリッド ユーザ ガイド」を参照してください。
拡張性のある 2 層アプリケーション(Web データベース アプリケーション)
以下の図は、データベースを使用して、複数の負荷分散サーバ間で状態とデータが共有される 2 層 Web アプリケーション内の PGSQL アプライアンスの典型的な使用状況を示しています(単純なクエリを実行する多くのユーザ向け)。 さらに、この例には、管理者がデータベースにログインしてメンテナンスできるメンテナンス用の個別の入力および管理者が PostgreSQL エラー ログにログインして表示することができる入力があります。
使用するアプライアンス:
クライアント リクエストは usr ゲートウェイ上に着信します。 ゲートウェイは Web ロード バランサにリクエストを転送し、Web ロード バランサはいずれかの Web サーバ(srv1 または srv2)にリクエストを方向付けます。 Web サーバ上のスクリプト(Perl や PHP など)が永続データにアクセスする必要がある場合、db 端子を介して、dbase アプライアンスを使用します。
dbase データベースは log 端子を介して logs アプライアンスにそのエラー ログを書き込みます。 さらに、管理者はログ ゲートウェイを介して logs アプライアンスにログインして、データベース エラー ログ ファイル(および Web サーバ ログ ファイル)を表示できます。
また、管理者は SSH 経由で maint ゲートウェイを介して、admin サーバにログインできます。 admin サーバから、管理者は、統計またはデータベース スキーマの変更のために dbase データベースにアクセスできます。 admin サーバは、たとえば、より新しいバージョンのライブラリやデータベース スキーマをダウンロードするために、gway ゲートウェイを介してインターネットにアクセスできます。
この例では、dbase とともに使用されるデータベースは読み取り専用ではなく、多くのユーザが Web サーバを通じてアクセスして単純なクエリを実行できます。 そのため、dbase は 256MB のメモリを使用するように設定されています。 また、データベースは 1 週間分のログ ファイル(1 日 1 ファイル)を保持するように設定されています(それぞれの週が終わると、ログ ファイルは上書きされます)。
プロパティ設定の例:
プロパティ名 |
値 |
注 |
auto_create |
yes |
データ ボリュームが空の場合は、データベースを作成します。 |
read_only |
no |
データベースは読み取り専用ではなく、変更される場合があります。 |
query_complexity |
simple |
ユーザは通常単純なクエリを実行します。 |
sync_on_write |
yes |
データベースの更新がディスクに物理的に書き込まれるのを待機します。 |
log_filename |
dblog。%a |
logs データ ボリューム上に格納されるエラー ログ ファイル(1 日 1 ファイル)の名前。 |
log_age |
1440 |
ログ ファイルはそれぞれ 1 日分(たとえば dblog.Mon)です。 |
log_level |
error |
エラー ログ レベル。 |
注:
maint、admin、gway および log アプライアンスは 2 層アプリケーションの操作に必要ありません。 admin サーバが存在する場合、admin サーバにデータベースのスクラブ、電子メールの送信などのためのクローン ジョブがある場合があります。
シンプルな 2 層アプリケーション(判断サポート システム)
以下の図は、サイズが数 GB の大規模データベース上で複雑なクエリを実行する一部のユーザ向けの判断サポート システムを実装する2 層 Web アプリケーション内の PGSQL アプライアンスの典型的な使用状況を示しています。
使用するアプライアンス:
クライアント リクエストは usr ゲートウェイ上に着信します。 ゲートウェイが srv サーバにリクエストを転送し、この srv サーバがリクエストを提供します。 srv 上のスクリプト(たとえば Perl または PHP)は、永続データにアクセスする必要があるときに、db 端子を介して dbase アプライアンスを使用します。 dbase アプライアンスはログによってエクスポーズされた共有のルート ディレクトリ内にログ ファイルを格納するように設定されています。
ブラウザを使用して、管理者は admin ゲートウェイに接続して、PostgreSQL ログ ファイルを表示します。 admin ゲートウェイは logs NAS アプライアンスにリクエストを転送します。
この例では、dbase で使用されるデータベースは読み取り専用ではなく、多くのユーザが複雑なクエリ(何百万もの行にアクセスする大規模なクエリ)を実行する srv 経由でこのデータベースにアクセスする場合があります。 そのため、dbase は 1536MB のメモリを使用するように構成されます。 また、データベースは 1 週間分のログ ファイル(1 日 1 ファイル)を保持するように設定されています(それぞれの週が終わると、ログ ファイルは上書きされます)。
プロパティ設定の例:
プロパティ名 |
値 |
注 |
auto_create |
yes |
データ ボリュームが空の場合は、データベースを作成します。 |
max_connections |
25 |
データベースは同時に 25 ユーザまでに制限されます。 |
read_only |
no |
データベースは読み取り専用ではなく、変更される場合があります。 |
query_complexity |
complex |
ユーザは通常複雑なクエリを実行します。 |
sync_on_write |
yes |
データベースの更新がディスクに物理的に書き込まれるのを待機します。 |
log_filename |
dblog。%a |
logs データ ボリューム上に格納されるエラー ログ ファイル(1 日 1 ファイル)の名前。 |
log_age |
1440 |
ログ ファイルはそれぞれ 1 日分(たとえば dblog.Mon)です。 |
log_level |
error |
エラー ログ レベル。 |
注: dbase アプライアンス上にデータ ボリュームも設定する必要があり、logs アプライアンス上にコンテンツ ボリュームも設定する必要があります。
シンプルな 2 層アプリケーション(Web 読み取り専用データベース アプリケーション)
PGSQL アプライアンスの一般的でない使用状況として、読み取り専用データベースを使用する 2 層 Web アプリケーションが考えられます。 これはデータベースが読み取り専用(変更不可)であることを除いて、前の単純なアプリケーション例と同じです。 読み取り専用データベースに必要とされないさまざまな PostgreSQL 機能をオフにするため、読み取り専用データベースを使用するように、PGSQL をパラメータ化することが重要です。その結果、パフォーマンス(データベース自動バキューム、データベース変更統計など)が向上します。
プロパティ設定の例:
プロパティ名 |
値 |
注 |
auto_create |
no |
データ ボリューム上のデータベースはすでに存在します。 |
read_only |
yes |
データベースは読み取り専用で、変更できません。 |
query_complexity |
simple |
ユーザは通常単純なクエリを実行します。 |
log_filename |
dblog。%a |
logs データ ボリューム上に格納されるエラー ログ ファイル(1 日 1 ファイル)の名前。 |
log_age |
1440 |
ログ ファイルはそれぞれ 1 日分(たとえば dblog.Mon)です。 |
log_level |
error |
エラー ログ レベル。 |
データベース アプリケーションのデバッグ
PGSQL は、パラメータ化されたログ ファイル(log_filename)を使用してデータベースをデバッグできるようにプロパティをエクスポーズします。 たとえば、これは、ユーザが SQL ステートメントをトラッキングしたり、SQL ステートメントの実行にかかる時間を見たり、SQL ステートメントが失敗する理由を見たりする場合に便利です。 デバッグ情報には次のものが含まれます。
通常、データベースをデバッグするために、以下のプロパティが設定されます。
プロパティ名 |
値 |
注 |
log_level |
debug |
デバッグ ログ レベル。 |
log_cmd_stats |
yes |
SQL コマンド統計(タイミング、処理、実行など)をログに記録します。 |
デバッグ情報は log 端子を介してアクセスされたエラー ログ内に格納されるか、または PostgreSQL 統計ビュー(http://www.postgresql.org/docs/8.3/static/monitoring-stats.html)の 1 つによって利用可能です。
以下の点に留意してください。
http://www.postgresql.org/docs/8.3/interactive/index.html --PostgreSQL 8.3 ドキュメント
アプライアンス ベース クラス上にあるソフトウェア(LUX64 は PGSQL64 のベース クラスです)に加えて、以下のオープン ソース サードパーティ ソフトウェアが使用されます。
ソフトウェア |
バージョン |
変更 |
ライセンス |
注 |
libgcrypt |
1.4.4-5.el5 |
なし |
GPLv2 |
該当なし |
libgpg-error |
1.4-2 |
なし |
GPLv2 |
該当なし |
libxslt |
1.1.17-2. el5_2.2 |
なし |
GPLv2 |
該当なし |
postgresql |
9.0.1-1PGDG |
なし |
BSD |
該当なし |
postgresql-libs |
9.0.1-1PGDG |
なし |
BSD |
該当なし |
postgresql-server |
9.0.1-1PGDG |
なし |
BSD |
該当なし |
postgresql-test |
9.0.1-1PGDG |
なし |
BSD |
該当なし |
samba-client |
3.0.28-1.el5_2.1 |
なし |
GPLv3 |
該当なし |
samba-common |
3.0.28-1.el5_2.1 |
なし |
GPLv3 |
該当なし |
Copyright © 2011 CA. All rights reserved. | このトピックについて CA Technologies に電子メールを送信する |