ローカル・データベースの管理
管理ポータルの [データベース] ページ ([システム処理]→[データベース]) では、ローカル・データベースの確認と保守ができます。このページには、次の情報が表示されます。
-
データベースの一般情報 — すべてのデータベースの概要情報。
-
データベースの空き容量情報 — すべてのデータベースの空き容量情報。
-
データベースの詳細ページ — 各データベースに固有の情報。このページから、空き容量を増やすためのメンテナンスを実行することもできます。
ページ上部のボタンを使用して、整合性チェックを実行することもできます。詳細は、"構造的な整合性の検証" を参照してください。
このセクションで説明しているほとんどの情報および操作は、^DATABASE コマンド行ユーティリティにも存在し、これを使用して実行することもできます。
データベースの一般情報
[データベース] ページ ([システム処理]→[データベース]) には、すべてのローカル・データベースのリストが含まれています。各ローカル・データベースについて以下の情報が表示されます。
列名 | 定義 |
---|---|
名前 | データベース名。この名前をクリックすると詳細が表示されます。"データベースの詳細ページ" を参照してください。 |
ディレクトリ | データベースが存在するシステム・ディレクトリ。 |
最大サイズ (GB) | 割り当てられた許容されるデータベースの最大サイズ。ギガバイト単位。 |
サイズ (MB) | 現在割り当てられているデータベースのサイズ。メガバイト単位。
Note:
このフィールドは、データベースの論理サイズを測定します。その結果、ここで報告されるサイズが、データベースの物理サイズより小さくなる場合があります (特に IRISTEMP データベースの場合)。 |
状態 |
データベースの状態。マウントされているかマウントされていない (ディスマウントされている) かと、設定されているアクセス権を示します。
|
暗号化 | データベースが暗号化されているかどうかを表示します。 |
ジャーナル | データベースのグローバルがジャーナルされているかどうかを [はい] または [いいえ] で示します。 |
また、表示するデータベースの数の制御に使用できるフィルタ・バーをページは含んでいます。例えば、システム・データベースのみをリスト表示するには、[フィルタ:] テキスト・ボックスに IRIS* を、ページごとにデータベースを 5 つだけリスト表示するには、[ページサイズ] テキスト・ボックスに 5 を、表示する行数を 3 行に制限するには、[最大行数:] テキスト・ボックスに 3 をそれぞれ入力します ([結果] フィールドに数字付きで表示される [+] 記号は、指定された基準に合うデータベースがその他にあることを示していますが、表示はされません)。
データベースの空き容量情報
データベースの空き容量 (空のブロック) の管理は、データベース・メンテナンスの重要な側面です。空き容量の情報を確認するには、管理ポータルの [空き容量] ビューを表示するか、^%FREECNT ユーティリティを使用します。通常運用時のデータベースのサイズと空き容量属性は常に変化しているため、ポータルやユーティリティで報告される特定の時点での数値は概算に過ぎないことに注意してください。
データベースが必要以上の空き容量を持つようにする場合、"データベースの詳細ページ" での説明のとおり、データベースを圧縮し、切り捨てることができます。
管理ポータルを使用した空き容量情報の表示
各ローカル・データベース上の空き容量に関する情報を示す、空き容量情報を表示するには、[データベース] ページ ([システム処理]→[データベース]) に移動し、[空き容量ビュー] ラジオ・ボタンをクリックします。以下のテーブルは、表示される情報の説明です。
列名 | 定義 |
---|---|
名前 | データベース名。この名前をクリックすると詳細が表示されます。"データベースの詳細ページ" を参照してください。 |
ディレクトリ | データベースのプライマリ・ボリュームが存在するシステム・ディレクトリ。 |
最大サイズ | 最大割り当てサイズ (ギガバイト単位)。データベースは、このサイズまで拡大可能です。データベース作成時の既定値は無制限です。 |
サイズ | 現在割り当てられているデータベースのサイズ。メガバイト単位。
Note:
このフィールドは、データベースの論理サイズを測定します。その結果、ここで報告されるサイズが、データベースの物理サイズより小さくなる場合があります (特に IRISTEMP データベースの場合)。 |
拡張サイズ | データベースを拡張できるサイズ (メガバイト単位)。データベースの作成時の既定値はゼロ (0) に設定することを推奨します。これは、システムの既定値 (現在のサイズの 12% または 10 MB のどちらか大きい方) を使用することを意味します。この設定では、拡張サイズは 1GB より大きくなりません。 |
使用可能 | データベースで使用できる空き領域の容量 (メガバイト単位)。 |
空き (%) | データベースで使用できる空き領域の割合。 |
ディスク空き容量 | ボリュームの空き領域の容量。 |
状態 | ディレクトリの状態。データベースがマウントされているかどうかと、アクセス許可を示します。 |
管理ポータルからの空き容量管理の実行の詳細は、"データベースの詳細ページ" を参照してください。
%FREECNT を使用した空き容量情報の表示
InterSystems IRIS には、データベースで使用可能な空き容量を表示する ^%FREECNT ユーティリティが用意されています。このユーティリティは、ターミナルで do ^%FREECNT と入力して実行します。
%SYS ネームスペースで ^%FREECNT を使用している場合は、プロンプトにアスタリスク (*) を入力してすべてのデータベースの空き容量を表示するか、1 つのデータベース・ディレクトリ名を入力するかを選択できます。次に例を示します。
%SYS>do ^%FREECNT
Database directory to show free space for (*=All)? *
Databases Selected
------------------
c:\MyIris\mgr\
c:\MyIris\mgr\irisaudit\
c:\MyIris\mgr\irislib\
c:\MyIris\mgr\irislocaldata\
c:\MyIris\mgr\iristemp\
c:\MyIris\mgr\user\
Device:
Right margin: 80 =>
Database Free Space
Feb 15 2012 7:25 PM
Database Max Size Size Available %Free Disk Free
c:\MyIris\mgr\ Unlimited 191MB 19MB 9.94 60.79GB
c:\MyIris\mgr\irisaudit\ Unlimited 1MB 0.43MB 43 60.79GB
c:\MyIris\mgr\irislib\ Unlimited 319MB 27MB 8.46 60.79GB
c:\MyIris\mgr\irislocaldata\ Unlimited 1MB 0.55MB 55 60.79GB
c:\MyIris\mgr\iristemp\ Unlimited 4MB 1.5MB 37.5 60.79GB
c:\MyIris\mgr\user\ Unlimited 1MB 0.43MB 43 60.79GB
%SYS 以外のネームスペースでは、このユーティリティは、そのネームスペース内のデータベースの空き容量を示します。次に例を示します。
USER>Do ^%FREECNT
Databases Selected
------------------
c:\MyIris\mgr\user\
Device:
Right margin: 80 =>
Database Free Space
Feb 15 2012 7:28 PM
Database Max Size Size Available %Free Disk Free
c:\MyIris\mgr\user\ Unlimited 1MB 0.52MB 52 42.72GB
<- フラグ (%Free 列内) は、指定されたデータベースの空き容量の割合が 5% 未満に低下したことを示します。ファイル・システムでデータベースの拡張を処理できるだけの十分な領域を確保する必要があります。
空き容量情報を表示し、その他のデータベース・タスクを実施するもう一つの方法が、^DATABASE ユーティリティです。例えば、データベースのグローバルを圧縮したり、データベースを再作成でき、これによりデータベースの名前やサイズを変更することなく既存のデータベース内のデータをクリアできます。ユーティリティの情報については、"^DATABASE" を参照してください。
InterSystems IRIS によって使用されるデータ構造は自身で均衡を保つように構成されており、長時間使用し続けてもパフォーマンスが低下することはありません。パフォーマンスを回復するために、データベースを終了してデータやインデックスの再構築や圧縮を行う必要はありません。
データベースの詳細ページ
[データベースの詳細] ページには、データベースの詳細情報が表示されます。管理ポータルからこの情報にアクセスする手順は以下のとおりです。
-
[データベース] ページ ([システム処理]→[データベース]) を表示します。
-
詳細を確認するデータベースの名前をクリックします。
[データベースの詳細] ページの上部に並んだボタンにより、以下のようなさまざまなデータベース操作を行うことができます。
-
マウント / ディスマウント — データベースをマウントまたはディスマウントします。明示的に変更したり InterSystems IRIS の再起動や停止が行われるまで、新しい状態は有効です。永久にデータベースをディスマウントするには、構成から削除する必要があります。
-
圧縮 — データベース全体に分散した空き領域をデータベースの末尾に移動します。
-
削除 — データベースの末尾の空き領域を基盤となるファイル・システムに返します。
-
デフラグ — グローバル・ブロックを再配置して、特定のグローバルを表すブロックが連続するようにします。
このページには、選択したデータベースに固有の情報も含まれています。これらは [一般情報] テーブルと [データベースサイズ] テーブルにまとめられています。
フィールド | 定義 |
---|---|
ディレクトリ | このデータベースが存在するディレクトリ名。 |
リソース名 | このデータベースに割り当てられたリソース名。 |
マウント | このデータベースがマウントされているかどうかを示します。 |
読み取り専用 | このデータベースが読み取り専用としてマウントされているかどうかを示します。 |
読み取り専用の理由 | このデータベースが読み取り専用としてマウントされている理由。 |
暗号化 | このデータベースが暗号化されているかどうかを示します。 |
暗号化キーID | 暗号化キーIDを示します。 |
フィールド | 定義 |
---|---|
ブロックサイズ | このデータベースのブロック・サイズ (バイト)。 |
ブロック | 現在のこのデータベース内のブロック数。 |
最大サイズ | このデータベースで許容される最大サイズ (MB)。 |
サイズ | このデータベースの現在のサイズ (MB)。 |
拡張サイズ | このデータベースが拡張される量 (MB)。 |
利用可能空き容量 | このデータベース内の利用可能スペース。 |
% 空き容量 | このデータベース内の空き容量の割合。 |
ディスク空き容量 | このデータベースを含むディスク上の空き容量。 |
最終拡張時刻 | このデータベースが最後に拡張された時刻。 |
フル | データベースが満杯であることを示します。 |
データベースの圧縮
データベースの圧縮では、グローバル・ブロックを再配置することで、データベース全体に分散された空き領域を、そのデータベースの末尾に移動します。その後、データベースの領域の削除を実行することで、空き領域を基盤となるファイル・システムに返すことができます。(グローバルも圧縮できます。"データベースのグローバルの圧縮" を参照してください。)
データベースを圧縮するときには、そのデータベースの末尾に配置する利用可能な空き領域の容量を指定し、最低でも指定した空き容量を末尾に配置するために、グローバル・ブロックを再配置する操作を行います。(この操作では、追加の空き領域を作成することはできません。そのため、利用可能容量の合計よりも多くの容量を末尾に配置することはできません。)
例えば、サイズが 50 MB のデータベースがあり、そのうちの 15 MB が空き領域になっていて、その空き領域のうちの 5 MB が既にデータベースの末尾に配置されているとします。このデータベースを圧縮して、5 MB より大きく 15 MB より小さい容量を指定すると、データベースの末尾の空き領域が指定した容量と等しくなるまで、グローバル・ブロックがデータベースの末尾から先頭に移動されます。この容量に 15 MB を指定すると、移動可能なすべてのグローバル・ブロックがデータベースの先頭に移動されます。
データベース領域を圧縮するには、以下の手順を実行します。
-
[データベース] ページ ([システム処理]→[データベース]) に移動します。
-
圧縮するデータベースの名前をクリックします。これにより [データベースの詳細] ページに移動します。
-
ページ上部のリボン上の [圧縮] をクリックします。これにより、[データベース圧縮] ダイアログ・ボックスが表示されます。このページには、データベースの名前と場所、現在のサイズ、利用可能な空き容量の合計、および現在ファイルの末尾にある空き領域の量が表示されます。
-
[ファイルの末尾でのターゲット空き容量 (MB)] テキスト・ボックスに、ファイルの末尾で必要な空き容量を指定します。提示された範囲内の値を入力する必要があります。容量を入力したら、[OK] をクリックします。すべての空き容量が既に末尾にある場合や、空き容量がない場合、プロンプトは表示されず、[OK] ボタンも無効になります。
Note:いくつかの理由から、この操作で移動される空き容量は、指定した容量よりも大きくなる可能性があります。逆に、報告される数値は概算であるため、表示された空き容量のすべてが、実際に移動できるわけではない可能性もあります。
-
タスクが完了すると、[バックグラウンドタスク情報] ダイアログ・ボックスが表示されます。オプションで、[バックグラウンドタスク] ページ ([システム処理]→[バックグラウンドタスク]) にタスクを表示することもできます。
-
[閉じる] をクリックすると、[データベースの詳細] ページが再表示されます。このページは、新しいデータベース情報を示すよう、自動的に更新されます。
データベースの領域の削除
データベースの未使用領域を削除すると、空き領域がデータベースの末尾から基盤となるファイル・システムに返されます。多くの場合、データベースの領域は圧縮後に削除されます。圧縮すると、空き領域がデータベースの末尾に移動します。
データベースの未使用領域を削除するときには、そのデータベースのターゲット・サイズを指定します。データベースの末尾に十分な空き領域がある場合は、この操作により、ターゲット・サイズに合わせてデータベースを縮小する分の領域が削除されます。十分な空き領域がない場合は、削除可能なすべての領域が削除されます。(末尾に配置されるデータベースの空き領域の容量を調べるには、データベースを圧縮します。現在の合計空き容量と末尾の空き容量を表示するために、この操作を完了する必要はありません。)
この機能は、raw ボリュームを持つデータベースには使用できません。
データベース領域を削除するには、以下の手順を実行します。
-
[データベース] ページ ([システム処理]→[データベース]) に移動します。
-
削除するデータベースの名前をクリックします。これにより [データベースの詳細] ページに移動します。
-
ページ上部のリボン上の [削除] をクリックします。選択したデータベースの名前、場所、およびメガバイト (MB) 単位の現在のサイズを示す [データベース領域の削除] ダイアログ・ボックスが表示されます。
-
[ターゲットファイルサイズ (MB)] に入力します。これは、現在のサイズより小さくする必要があります。その後、[OK] をクリックします。0 を入力すると、利用可能な空き領域をファイルの末尾からすべて削除します。
Note:切り捨てを目的とした空き容量は、データの格納を目的とした空き容量とは異なります。特定の制御構造は、それらがデータ・ストレージに使用されていない場合は、切り捨て時に削除できます。これにより、報告される空き容量で違いが生じる可能性があります。
データベースのデフラグ
データベースのデフラグにより、データベース内のグローバル・ブロックが再編成され、特定のグローバルのデータを含むすべてのブロックが連続するようになります。この操作では、1 つのグローバルからのビッグ・ストリング・ブロックやポインタ・ブロックを順序どおりには配置しませんが、それらを連続する領域に配置します。このプロセスの一環として、[データベースをデフラグ] オプションでは、[Compact globals in a database] オプションと同じ方法ですべてのグローバルを圧縮します。ただし、目標密度は 70% に設定されています。(この目標密度がデータベースの現在のグローバル・ブロック密度よりも低い場合、データベースのサイズが増加することはありません。)
IRISTEMP データベースはデフラグできません。
一般に、デフラグを定期的に実行する必要はありません。ただし、ワークロードによっては、特にデータベースの大部分を連続的に読み込むような場合は、グローバル・ブロックを連続的に編成することで良好な結果が得られます。
デフラグ処理には、データベースの末尾に特定の量の空き領域が必要になります。そのため、以下に示すような状況が考えられます。
-
この操作の実行に必要十分な空き領域がデータベースの末尾にある場合は、グローバルのデフラグ以外の変更がデータベースに加えられることなく操作が完了します。
-
データベースに十分な空き領域がない場合は、データベースが必要に応じて拡張されます。デフラグの完了後に、データベースの領域の削除を実行すると、追加された空き領域を削除できます。
-
データベース内に十分な空き容量はないが、かなりの空き容量を末尾に移動できる場合、これが通知されます。この場合、[データベースをデフラグ] オプションを選択する前にデータベースを圧縮すると、デフラグ操作を完了するために必要な拡張量を減らすことができます。
データベースのグローバルをデフラグするには、以下の手順を実行します。
-
[データベース] ページ ([システム処理]→[データベース]) に移動します。
-
デフラグするデータベースの名前をクリックします。これにより [データベースの詳細] ページに移動します。
-
ページ上部のリボン上の [デフラグ] をクリックします。選択したデータベースの名前、場所、およびメガバイト (MB) 単位の現在のサイズと、デフラグする必要のある空き容量を表すメッセージを示す [データベースのデフラグ] ダイアログ・ボックスが表示されます。
-
[OK] をクリックします。
-
タスクが完了すると、[バックグラウンドタスク情報] ダイアログ・ボックスが表示されます。オプションで、[バックグラウンドタスク] ページ ([システム処理]→[バックグラウンドタスク]) にタスクを表示することもできます。
-
[閉じる] をクリックすると、[データベースの詳細] ページが再表示されます。このページは、新しいデータベース情報を示すよう、自動的に更新されます。
デフラグ操作では、データベース内のすべてのデータが一時的に再配置されます。これは、この操作の実行前のデータベースのグローバル断片化の程度には関係ありません。後続の操作の実行では、ほぼ同量のリソースを消費しますが、それ以上の効果は得られません。
デフラグ操作は、通常のデータベース・アクティビティと並行して実行するように設計されています。ただし、この操作は、ある程度のシステム・リソースを消費するため、システムが極度に高負荷の状態にあると完了しないことがあります。このような理由から、この操作やその他のデータベース再編成操作 (データベースの圧縮やグローバルの圧縮などを含む) は、高負荷時を避けて実行し、このような操作をシステム上で同時に複数実行しないようにすることをお勧めします。
グローバルのデフラグでは、圧縮中にデータベースのサイズが一時的に増大することがあります。これによってデータベースが構成最大サイズに到達した場合 (このガイドの “InterSystems IRIS の構成” の章で "ローカル・データベース" を参照)、またはストレージ・ボリュームで利用可能な領域が不足するために拡張が可能でない場合、操作はキャンセルされます。
データベースのグローバルの圧縮
データベース容量を管理するもう 1 つの方法は、^DATABASE ルーチンを使用してデータベースのグローバルを圧縮する方法です。グローバルを圧縮することにより、グローバル・データはより少数のブロックに統合され、データベースの空き容量が増加します。
グローバルの作成時および構成時に、InterSystems IRIS は、通常、グローバル・ブロックの容量の約 70% が満たされるようにデータを割り当てます。(完全に照合順で増加したグローバルは、90% 近くまで割り当てられることがあります。)一般に、InterSystems IRIS による自動的なグローバル・ブロック密度の管理で問題はありません。ただし、連続しないデータ削除のパターンによっては、平均のグローバル・ブロック密度が大幅に小さくなることがあります。
データベース内の 1 つのグローバルに対するグローバル・ブロックについて、現在の密度をグローバル単位で確認するには、整合性チェックを実行して ("構造的な整合性の検証" を参照)、各グローバルの Data Level 出力を調べます。
グローバルを圧縮するときには、目標のグローバル・ブロック密度 (既定では 90%) と、この密度に可能な限り近づくようにするためのデータの統合操作 (3 つのブロックに分散されたグローバル・データを 2 つのブロックに再編成するなど) を指定します。通常 (例外もありますが)、グローバルを圧縮すると、データベース内で利用可能な空き容量が大幅に増加します。(現在のデータベースのグローバル・ブロック密度よりも低い目標密度を指定しても、データベースのサイズが増加することはありません。)
データベースのグローバルを圧縮するには、以下の手順を実行します。
-
ターミナルを開いて、%SYS ネームスペースに変更します。
-
do ^DATABASE と入力して、メニューから [7) Compact globals in a database] を選択します。
-
操作を実行するデータベースのディレクトリを指定します。複数のデータベースを指定するには、[Database directories to compact?] プロンプトで ? を入力して、番号のリストを入力します。
-
すべてのグローバルの圧縮を指示します。または、圧縮する個別のグローバルのリストを入力します。
-
平均グローバル・ブロック密度の目標値を指定して、残りのプロンプトに応答し、確定します。
グローバルの圧縮操作は、通常のデータベース・アクティビティと並行して実行するように設計されています。ただし、この操作は、ある程度のシステム・リソースを消費するため、システムが極度に高負荷の状態にあると完了しないことがあります。このような理由から、この操作やその他のデータベース再編成操作 (データベースの圧縮やグローバルのデフラグなどを含む) は、高負荷時を避けて実行し、このような操作をシステム上で同時に複数実行しないようにすることをお勧めします。
グローバル圧縮では、圧縮中にデータベースのサイズが一時的に増大することがあります。これによってデータベースが構成最大サイズに到達した場合 (このガイドの “InterSystems IRIS の構成” の章で "ローカル・データベース" を参照)、またはストレージ・ボリュームで利用可能な領域が不足するために拡張が可能でない場合、操作はキャンセルされます。