36 ガベージ・コレクションの管理
ガベージとは、ディレクトリで不要になっているが領域を使用しているデータを指します。結果として、このような不要なデータや古いデータでディスクが一杯になり、ディレクトリのパフォーマンスが低下します。ディレクトリからこの不要なデータを削除する処理を、ガベージ・コレクションと呼びます。
36.1 ガベージ・コレクション管理の理解
ガベージ・コレクタは、ディレクトリから不要なデータを削除する、バックグラウンドのデータベース・プロセスです。
Oracle Internet Directoryガベージ・コレクション・フレームワークには、ガベージ・コレクタのデフォルト・セットがあり、このフレームワークにより、これらのコレクタを変更できます。Oracle Internet Directory統計情報コレクタでも、Oracle Internet Directoryガベージ・コレクション・フレームワークが使用されます。
この概要の項目は次のとおりです。
36.1.1 ガベージ・コレクション・フレームワークのコンポーネントの理解
次の各トピックでは、Oracle Internet Directoryガベージ・コレクション・フレームワークを構成するコンポーネントであるガベージ・コレクション・プラグインとバックグラウンドのデータベース・プロセスについて説明します。
36.1.1.1 ガベージ・コレクション・プラグインについて
Oracle Internet Directoryのガベージ・コレクションは、ガベージ・コレクタの管理リクエストを受け取るガベージ・コレクション・プラグインを使用します。このプラグインは、Oracle Internet Directoryとともにインストールされ、デフォルトで使用可能になります。このプラグインのエントリは、cn=plugin,cn=subconfigsubentry
です。
このプラグインには、3つのトリガーがあります。
-
ガベージ・コレクション・ジョブの作成に使用するプラグイン・トリガーの識別名:
cn=Add PurgeConfig,cn=plugin,cn=subconfigsubentry
-
ガベージ・コレクション・ジョブの変更に使用するプラグイン・トリガーの識別名:
cn=Modify PurgeConfig,cn=plugin,cn=subconfigsubentry
-
ガベージ・コレクション・ジョブの削除に使用するプラグイン・トリガーの識別名:
cn=Delete PurgeConfig,cn=plugin,cn=subconfigsubentry
関連項目:
ガベージ・コレクション・プラグインの属性のリストおよび説明は、『Oracle Identity Managementリファレンス』のOracle Internet Directory構成のスキーマ要素に関する項を参照してください
36.1.1.2 バックグラウンドのデータベース・プロセスの理解
次の各トピックでは、ガベージ・コレクタおよびOracle Internet Directory統計情報コレクタを含む、ガベージ・コレクション・プラグインによって起動されるバックグラウンドのデータベース・プロセスについて説明します。
36.1.1.2.1 ガベージ・コレクタについて
次のガベージ・コレクタの動作を設定して管理できます。
-
起動時間
-
パージするデータの経過時間
-
実行頻度
-
パージするデータの種類
-
一度にパージするエントリの数
36.1.1.2.2 事前定義のガベージ・コレクタについて
Oracle Internet Directoryのデフォルトのインストールに含まれている事前定義済ガベージ・コレクタは、次のとおりです。
-
変更ログのガベージ・コレクタ: ディレクトリ内のコンシューム済変更ログ・エントリをクリーンアップします。このガベージ・コレクタのコンテナは、
cn=changelog purgeconfig, cn=purgeconfig,cn=subconfigsubentry
です。 -
一般統計のガベージ・コレクタ: ディレクトリの一般統計情報をモニターするためにOracle Internet Directoryサーバー管理機能により作成され、使用されなくなったエントリをクリーンアップします。このガベージ・コレクタのコンテナは、
cn=general stats purgeconfig, cn=purgeconfig,cn=subconfigsubentry
です。 -
状況統計のガベージ・コレクタ: ディレクトリの状況統計情報をモニターするためにOracle Internet Directoryサーバー管理機能により作成され、使用されなくなったエントリをクリーンアップします。このガベージ・コレクタのコンテナは、
cn=health stats purgeconfig, cn=purgeconfig,cn=subconfigsubentry
です。 -
セキュリティおよびリフレッシュ・イベントのガベージ・コレクタ: ディレクトリのセキュリティおよびリフレッシュ・イベントをモニターするためにOracle Internet Directoryサーバー管理機能により作成され、使用されなくなったエントリをクリーンアップします。このガベージ・コレクタのコンテナは、
cn=secrefresh events purgeconfig, cn=purgeconfig,cn=subconfigsubentry
です。 -
システム・リソース・イベントのガベージ・コレクタ: ディレクトリのシステム・リソース・イベントをモニタリングするためにOracle Internet Directoryサーバー管理機能によって作成され、使用されなくなったエントリをクリーンアップします。このガベージ・コレクタのコンテナは、
cn=sysresource events purgeconfig, cn=purgeconfig,cn=subconfigsubentry
です。 -
ツームストンのガベージ・コレクタ: ディレクトリ内で削除済とマークされている、使用されなくなったエントリをクリーンアップします。このガベージ・コレクタのコンテナは、
cn=tombstone purgeconfig, cn=purgeconfig,cn=subconfigsubentry
です。 -
LDAPパフォーマンス・モニタリング・ガベージ・コレクタ: LDAPサーバー・パフォーマンス統計データをクリーンアップします。このガベージ・コレクタのコンテナは、
cn=perf stats purgeconfig,cn=purgeconfig,cn=subconfigsubentry
です。 -
LDAPバインド・パフォーマンス・モニタリング・ガベージ・コレクタ: セキュリティ・イベント追跡用に収集されたバインド・パフォーマンス・データをクリーンアップします。このガベージ・コレクタのコンテナは、
cn=bindsec stats purgeconfig,cn=purgeconfig, cn=subconfigsubentry
です。 -
LDAP比較パフォーマンス・モニタリング・ガベージ・コレクタ: セキュリティ・イベント追跡用に収集された比較パフォーマンス・データをクリーンアップします。このガベージ・コレクタのコンテナは、
cn=comparesec stats purgeconfig, cn=purgeconfig,cn=subconfigsubentry
です。 -
LDAP比較失敗パフォーマンス・モニタリング・ガベージ・コレクタ: セキュリティ・イベント追跡用に収集された比較失敗パフォーマンス・データをクリーンアップします。このガベージ・コレクタのコンテナは、
cn=comparefailure stats purgeconfig,cn=purgeconfig,cn=subconfigsubentry
です。
関連項目:
-
『Oracle Identity Managementリファレンス』のOracle Internet Directory構成のスキーマ要素に関する項。
ノート:
事前定義済ガベージ・コレクタは削除しないことをお薦めします。これらのガベージ・コレクタを1つ以上削除すると、不要なデータが増加し、最終的には使用可能なすべてのディスク領域を使い果すことになります。
ただし、動作をカスタマイズするために、事前定義済ガベージ・コレクタを変更してもかまいません。
36.1.2 Oracle Internet Directoryガベージ・コレクションの動作
この項では、変更ログ・エントリをパージするガベージ・コレクタの操作の例を示します。
図36-1に、変更ログ・エントリをパージするガベージ・コレクタの操作の例を示します。
図36-1 例: 変更ログ・エントリのガベージ・コレクション

図36-1の例に示すとおり、ガベージ・コレクション・プロセスは、次のように動作します。
-
LDAPクライアントが、特定のガベージ・コレクション操作リクエストをディレクトリ・サーバーに送信します。これらの操作には、ツームストンのエントリまたは変更ログのエントリのパージなどがあります。
-
ディレクトリ・サーバーが、リクエストをガベージ・コレクション・プラグインに渡します。
-
ガベージ・コレクション・プラグインが、Oracle Internet Directoryで指定されたデータベースのガベージ・コレクション・エンジンにリクエストを送信します。
-
ガベージ・コレクション・エンジンが、対応するバックグラウンド・データベース・プロセス(この場合は、変更ログのガベージ・コレクタ)をトリガーします。バックグラウンド・データベース・プロセスは、その構成で指定されているパラメータに従って動作します。
36.1.3 ガベージ・コレクタ・エントリと統計情報コレクタ・エントリについて
各ガベージ・コレクタ・エントリは、動作を指定する属性を持ち、エントリcn=subconfigsubentry
の直下にあるエントリcn=purgeconfig
に存在します。
関連項目:
ガベージ・コレクタの各属性の詳細は、『Oracle Identity Managementリファレンス』のOracle Internet Directory構成のスキーマ要素に関する項を参照してください
Oracle Internet Directory統計情報コレクタ・エントリは、属性を持ち、エントリcn=subconfigsubentry
の直下にあるエントリcn=purgeconfig
にも存在します。
図36-2に、これらのエントリの場所を示します。
36.1.4 変更ログのパージの概要
レプリケーションとOracle Directory Integration Platformはいずれも変更ログを使用して、サプライヤ・ディレクトリの情報をコンシューマ・ディレクトリに伝達します。
変更ログはすべてods_chg_log
という表に格納されます。また、レプリケーション変更ログはasr_chg_log
に格納されます。変更ログのガベージ・コレクタが実行されると、どの変更ログ・コンシューマからも必要とされなくなった変更ログがパージされます。これで、Oracle Internet Directoryデータベースで変更ログ・ストアが大きくなりすぎるのを防ぐことができます。
変更ログのガベージ・コレクタでは、次の2つの方法でパージする変更ログを決定します。
-
変更番号ベースのパージ
変更番号ベースのパージでは、すべての変更ログ・コンシューマの変更ステータスが考慮されます。つまり、変更ログは、すべてのコンシューマによってコンシュームされてからパージされます。変更ログのガベージ・コレクタを実行すると、レプリケーション、Oracle Directory Integration Platformおよびその他のコンシューマによってコンシュームされたすべての変更ログがパージされます。
-
時間ベースのパージ
時間ベースのパージは、特定の時間が経過した変更ログのパージを目的としたフォールバック方法です。この方法では、すべての変更ログ・サブスクライバによってコンシュームされていないものであっても、古い変更ログが確実にパージされます。時間ベースのパージは、他のコンシューマの変更ステータスではなく、レプリケーションの変更ステータスに従います。変更ログのガベージ・コレクタは、レプリケーションで必要とされず、かつ
orclpurgetargetage
の時間以上が経過したすべての変更ログをパージします。orclpurgetargetage
がゼロの場合、変更ログのガベージ・コレクタはすぐにこの動作を実行します。orclpurgetargetage
が無効な数値である場合や、定義されていない場合のデフォルト値は、240時間(10日)です。レプリケーションで必要とされる変更ログは、レプリケーションでコンシュームされた後でパージされます。Oracle Directory Integration Platformがデプロイされているときに時間ベースのパージを有効にする場合は、変更ログがOracle Directory Integration Platformによって処理されてからパージされるように、
orclpurgetargetage
を十分に大きな値に設定してください。値を240にすると、10日が経過してから変更ログがパージされます。「時間ベースの変更ログのパージの構成」を参照してください。
36.2 ガベージ・コレクション用のOracle Databaseタイムゾーンの設定
Oracle Internet Directoryガベージ・コレクション・ロジックが正しく動作するようにするには、Oracle Databaseのdbtimezone
パラメータを協定世界時(UTC)からの適切な置換値に設定する必要があります。
次のステップを実行します。
ノート:
dbtimezone
パラメータの詳細は、『Oracle OLAP DMLリファレンス』を参照してください。
36.3 Oracle Internet Directoryガベージ・コレクタの変更
次の各トピックでは、Oracle Internet Directoryガベージ・コレクタおよびOracle Internet Directory統計情報コレクタの変更方法について説明します。
この項の内容は次のとおりです。
36.3.1 Oracle Directory Services Managerを使用したガベージ・コレクタの変更
Oracle Directory Services Managerを使用して、ガベージ・コレクタを変更できます。
ガベージ・コレクタを変更するには:
- 「Oracle Directory Services Managerの起動」の説明に従って、Oracle Directory Services Managerを起動し、Oracle Internet Directoryサーバーに接続します。
- タスク選択バーで、「拡張」を選択します。
- 左側のペインで「ガベージ・コレクション」を展開し、変更するガベージ・コレクタを選択します。「ガベージ・コレクタ」ウィンドウが右ペインに表示されます。
- ガベージ・コレクタ・ウィンドウで、このガベージ・コレクタに対する変更を入力します。
- 「適用」を選択します。
36.3.2 コマンド行ツールを使用したガベージ・コレクタの変更
例を使用して、コマンド行ツールによりガベージ・コレクタを変更する方法について説明します。
この項では、次の項目について説明します。
変更可能なガベージ・コレクションの属性は、『Oracle Identity Managementリファレンス』のOracle Internet Directory構成のスキーマ要素に関する項を参照してください。
36.3.2.1 ガベージ・コレクタの変更
削除済とマークされたエントリのガベージ・コレクタをすぐに実行するとします。LDIFファイルは次のようになります。
dn: cn=tombstone purgeconfig, cn=purge config, cn=subconfigsubentry changetype:modify replace: orclpurgenow orclpurgenow: 1
ldapmodifyを使用して、このエントリをロードします。
ldapmodify -D "cn=orcladmin" -q -h hostname -p port \ -D username -f file_name_of_defined_entry
36.3.2.2 ガベージ・コレクタの変更ログの無効化
変更ログのガベージ・コレクタを使用禁止にするとします。
dn: cn=changelog purgeconfig, cn=purgeconfig, cn=subconfigsubentry changetype: modify replace: orclpurgeenable orclpurgeenable: 0
ldapmodifyを使用して、このエントリをロードします。
ldapmodify -D "cn=orcladmin" -q -h hostname -p port \ -D username -f file_name_of_defined_entry
36.4 Oracle Internet Directoryガベージ・コレクタのロギングの管理
次の各トピックでは、Oracle Internet Directoryガベージ・コレクタのロギングの有効化、無効化およびモニター方法について説明します。
この項の内容は次のとおりです。
36.4.1 Oracle Internet Directoryガベージ・コレクタのロギングの有効化
ガベージ・コレクタのロギングを有効にすると、ディレクトリ・サーバーは、ファイル・システム内のファイルに、情報を書き込みます。
次の情報がファイルに書き込まれます。
-
ジョブ識別子
-
ガベージ・コレクタのジョブ説明
-
パージされたエントリ数
-
操作のステータス
-
タイムスタンプ
-
捕捉されたエラー
ガベージ・コレクション情報のロギングを有効にするには:
36.4.2 Oracle Internet Directoryガベージ・コレクタのロギングの無効化
ガベージ・コレクション情報のロギングを無効にするには、orclpurgedebug
属性を0
に設定します。
ノート:
orclpurgedebug
が0に設定されている場合も、ガベージ・コレクタの処理を示すために、ガベージ・コレクタの操作に関する最小限の情報が記録されます。
36.4.3 Oracle Internet Directoryガベージ・コレクションのロギングのモニタリング
ガベージ・コレクションのログの情報は、ガベージ・コレクションのモニタリングとトラブルシューティングに役立ちます。このログの場所は、ロギングを有効にする際に属性を設定して指定します。
たとえば、次のように構成したとします。
orclpurgefilename = oidgc001.log orclpurgefileloc = /private/mydir/oracle/ldap/log
ロギングを有効にすると、/private/mydir/oracle/ldap/log/oidgc001.log
ファイルを読み取ることによって変更ログのガベージ・コレクションの処理をモニターできます。
次に、管理者が変更ログのガベージ・コレクション構成エントリのorclpurgenow
属性を変更した場合に記録される情報の例を示します。
Running Garbage Collector: cn=changelog purgeconfig Starting time: 2005/03/24 11:03:23 PurgeConfig object located, Eid= 936 purge_ODSChglog: Nothing to be purged(no_work_to_do) purge_ODSChglog: 107 chglogs successfully purged purge_ASRChglog: Nothing to be purged(no_work_to_do) purge_ASRChglog: 0 chglogs successfully purged purge_ASRChglog: 0 chglogs successfully purged Modifying Garbage Collector for at "2005/03/24 11:03:23 Garbage Collector DN recognized, rdn=cn=changelog purgeconfig orclPurgeNow successfully retrieved. Garbage Collector job found: jobno=21 Garbage Collector has been run Garbage collector is updated successfully!
orclpurgenow
の変更により、変更ログのガベージ・コレクタがすぐに実行されます。最初のパラグラフで示されているように、ods_chg_log
表から107個の変更ログがパージされ、asr_chg_log
表からは0個の変更ログがパージされています。また、2番目のパラグラフの情報は、orclpurgenow
属性が正常に変更されたことを示しています。
36.5 時間ベースの変更ログのパージの構成
時間ベースのパージは、変更ログ・パージ構成エントリのorclpurgetargetage
属性を変更して構成できます。
変更ログのパージについては、「変更ログのパージの概要」で説明されています。次の例では、120時間(5日)の時間ベースのパージを構成しています。次のようなLDIFファイルを使用します。
dn: cn=changelog purgeconfig,cn=purgeconfig,cn=subconfigsubentry changetype:modify replace: orclpurgetargetage orclpurgetargetage: 120
LDIFファイルmod.ldif
を適用するには、次のように入力します。
ldapmodify -D "cn=orcladmin" -q -p port -h host -f mod.ldif
ノート:
変更ログのガベージ・コレクタのコンテナは、次のとおりです。cn=changelog purgeconfig, cn=purgeconfig,cn=subconfigsubentry
関連項目:
『Oracle Identity Managementリファレンス』のOracle Internet Directory構成のスキーマ要素に関する項。