Q
A
「データベーススペース」とはユーザーデータを格納する領域です。
PowerGres Plusはビジネスユースの考え方を採用し、事前にデータベースの容量を見積り、割り当てを行い、運用を行います。
データベーススペースは自動的に拡張しないため容量が不足した場合は追加割り当てが必要になります。追加割り当てはPowerGres Plusに付属のGUIツール「PostgreSQL Plus Administrator」内の『データベースへのデータベーススペースの追加割当』で行います。
『データベースへのデータベーススペースの追加割当』は「PostgreSQL Plus Administrator」にて[データベース操作]から[データベースへのデータベーススペースの追加割当]を選択して設定できます。
Q
A
PowerGres Plusの定量値を以下に示します。
| 項目 | 定量値 |
|---|---|
| インスタンスが管理できるデータの最大サイズ | 無制限(注1) |
| 作成できるデータベースの数 | 無制限 |
| 1つのデータベースに割り当てることができるデータベーススペースの数 | 無制限 |
| 1つのデータベーススペースの最大サイズ | 16Gバイト以内 |
| 作成できるテーブルの数 | 無制限(注2) |
| 1レコードの最大サイズ | 2Gバイト以内 |
| 1カラムの最大サイズ | 1Gバイト |
| ラージオブジェクトの最大サイズ | 1つあたり最大4Tバイト以内 全体で最大16Tバイト以内 |
| 最大接続数 | 128(Windows版V1.0では最大50) |
| テンポラリログの最大サイズ | 15.5Gバイト以内(パッチ適用前のV1.xでは最大1Gバイト以内) |
| アーカイブログの最大サイズ | 160Gバイト以内 |
| データベースバッファの最大サイズ | Linux版 : 2.5Gバイト以内 Windows版 : 1.5Gバイト以内 |
(注1)バックアップとリカバリーがインスタンスごとに行われるため、格納されているデータサイズの合計が100Gバイトを超える場合、データベースの運用が困難になると考えられます。
(注2)テーブル数やインデックス数が増えるにしたがって、必要なメモリ量が増えます。PowerGres Plusが使用できるメモリ量には以下のような制限があります。
そのため、作成できるテーブル数とインデックス数には限りがあります。以下を目安にしてください。
Q
A
PowerGres Plusでは発生しません。
オリジナルのPostgreSQLでは、トランザクションIDのサイズが32ビットであるため、データベースを長時間運用していると、トランザクションIDのカウンタが0に戻り、古いトランザクションと新しいトランザクションの順序が逆転してしまうことがあります。このようなトランザクションIDのラップアラウンド問題を回避するために、オリジナルのPostgreSQLでは、定期的にVACUUMを行う必要があります。
PowerGres PlusではトランザクションIDが64ビットに拡張されています。そのため、実質的には無制限とみなすことができ、ラップアラウンド問題は発生しません。
Q
A
システムログ(syslog)またはイベントログなどに、“動作環境(SMF)”に関する以下のようなメッセージが出力されることがあります。
|
(例) |
動作環境(SMF)はPowerGres Plusの動作環境の一部として、セットアップ時に作成されている資源です。この資源はPowerGres Plusが管理しています。動作環境(SMF)には、インスタンスの制御情報を保持しています。データベースを運用する上で管理する情報が増えると、自動的に拡張されます。
Q
A
edmf_base2プロセスは起動時に、“データベースバッファに指定されたサイズ + ESMの動作に必要なメモリ”を確保します。ESMの動作に必要なメモリは、最大接続数に設定した値により増減します。ここで確保されたサイズはインスタンスが停止するまで確保されます。これ以上のメモリは使用しません。
ただし、topコマンドなどでは確保したメモリのうち実際に使用されているメモリのサイズが表示されるので、時間がたつにつれて使用メモリ量が増えていくように見えてしまいます。
実行中のedmf_base2プロセスが確保したメモリのサイズは下記の方法で確認することができます。
edmf_spvzの子プロセスのedmf_base2プロセスIDを調べます。
psなどで、edmf_spvzのPIDがPPIDになっているedmf_base2のPIDを探します。
1.で調べたPIDを使用して下記のコマンドを実行します。
|
ps -p "PID" -o vsz |
表示されたvszの値がedmf_base2プロセスが確保しているメモリのサイズとなります。
なお、edmf_base2はインスタンスの起動時に複数のプロセスが起動されますが、親プロセスと実行コンテクストの一部を共有した子プロセスとして生成されています。個々のプロセスごとに表示されているサイズを使用しているわけではありません。