ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Internet Directory管理者ガイド
11g リリース1(11.1.1)
B55919-05
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

36 ガベージ・コレクションの管理

ガベージとは、ディレクトリで不要になっているが領域を使用しているデータを指します。結果として、このような不要なデータや古いデータでディスクが一杯になり、ディレクトリのパフォーマンスが低下します。ディレクトリからこの不要なデータを削除する処理を、ガベージ・コレクションと呼びます。

この章の項目は次のとおりです。

36.1 ガベージ・コレクションの管理の概要

ガベージ・コレクタは、ディレクトリから不要なデータを削除する、バックグラウンドのデータベース・プロセスです。Oracle Internet Directoryガベージ・コレクション・フレームワークには、ガベージ・コレクタの標準セットがあり、このフレームワークにより、これらのコレクタを変更できます。Oracle Internet Directory統計情報コレクタでも、Oracle Internet Directoryガベージ・コレクション・フレームワークが使用されます。

この概要の項目は次のとおりです。

36.1.1 Oracle Internet Directoryガベージ・コレクション・フレームワークのコンポーネント

この項では、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 Fusion Middleware 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です。


関連項目:



注意:

事前定義済ガベージ・コレクタは削除しないことをお薦めします。これらのガベージ・コレクタを1つ以上削除すると、不要なデータが増加し、最終的には使用可能なすべてのディスク領域を使い果すことになります。

ただし、動作をカスタマイズするために、事前定義済ガベージ・コレクタを変更してもかまいません。


36.1.1.2.3 Oracle Internet Directory統計情報コレクタ

次のOracle Internet Directory統計情報コレクタの動作を設定して管理できます。

  • 起動時間

  • 実行頻度

Oracle Internet Directory統計情報コレクタは、Oracle Internet Directoryに関する統計情報を収集します。このバックグラウンド・データベース・プロセスのコンテナは、
cn=oidstats_config,
cn=purgeconfig,cn=subconfigsubentry
です。

36.1.2 Oracle Internet Directoryガベージ・コレクションの動作

図36-1に、変更ログ・エントリをパージするガベージ・コレクタの操作の例を示します。

図36-1 例: 変更ログ・エントリのガベージ・コレクション

この図については本文で説明しています。

図36-1の例に示すとおり、ガベージ・コレクション・プロセスは、次のように動作します。

  1. LDAPクライアントが、特定のガベージ・コレクション操作リクエストをディレクトリ・サーバーに送信します。これらの操作には、ツームストンのエントリまたは変更ログのエントリのパージなどがあります。

  2. ディレクトリ・サーバーが、リクエストをガベージ・コレクション・プラグインに渡します。

  3. ガベージ・コレクション・プラグインが、Oracle Internet Directoryで指定されたデータベースのガベージ・コレクション・エンジンにリクエストを送信します。

  4. ガベージ・コレクション・エンジンが、対応するバックグラウンド・データベース・プロセス(この場合は、変更ログのガベージ・コレクタ)をトリガーします。バックグラウンド・データベース・プロセスは、その構成で指定されているパラメータに従って動作します。

36.1.3 ガベージ・コレクタ・エントリとOracle Internet Directory統計情報コレクタ・エントリ

各ガベージ・コレクタ・エントリは、動作を指定する属性を持ち、エントリcn=subconfigsubentryの直下にあるエントリcn=purgeconfigに存在します。


関連項目:

ガベージ・コレクタの各属性の詳細は、『Oracle Fusion Middleware Oracle Identity Managementリファレンス』のOracle Internet Directoryの構成スキーマ要素に関する説明を参照してください。


Oracle Internet Directory統計情報コレクタ・エントリは、属性を持ち、エントリcn=subconfigsubentryの直下にあるエントリcn=purgeconfigにも存在します。

図36-2に、これらのエントリの場所を示します。

図36-2 DIT内のガベージ・コレクション・エントリ

図36-2の説明が続きます
「図36-2 DIT内のガベージ・コレクション・エントリ」の説明

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.5項「時間ベースの変更ログのパージの構成」を参照してください。

36.2 ガベージ・コレクション用のOracle Databaseタイムゾーンの設定

Oracle Internet Directoryガベージ・コレクション・ロジックが正しく動作するようにするには、Oracle Databaseのdbtimezoneパラメータを協定世界時(UTC)からの適切な置換値に設定する必要があります。次のようにします。

  1. 次のように、PL/SQLを起動します。

    $ sqlplus /nolog   
    SQL> connect / as sysdba
     
    
  2. 次のように、dbtimezoneの値を取得するための問合せを実行します。

    SQL> select dbtimezone from dual;
    
  3. 次のように、協定世界時(UTC)からの置換値を取得するための問合せを実行します。

    SQL> select systimestamp from dual;
    

    出力は次のようになります。

    SYSTIMESTAMP
    ---------------------------------------
    31-JAN-09 01.04.42.281000 PM -05:00
    

    systimestamp出力の最終列を取得します。この例では、-05:00です。

  4. dbtimezoneパラメータがsystimestamp出力の最終列の値と同じである場合、残りの手順を実行する必要はありません。それ以外の場合は、手順5に進みます。

  5. 第8章「Oracle Internet Directoryインスタンスの管理」で説明しているように、Oracle Databaseを使用しているすべてのOracle Internet Directoryインスタンスを停止します。

  6. 次にように、systimestamp問合せの最終列から取得した値を使用して、dbtimezoneパラメータを設定します。

    SQL> ALTER DATABASE SET TIME_ZONE = '-05:00'; 
    
  7. Oracle Databaseを停止します。

    SQL> shutdown immediate
    
  8. Oracle Databaseを再起動します。

    SQL> startup
    
  9. 第8章「Oracle Internet Directoryインスタンスの管理」の説明に従って、Oracle Internet Directoryを再起動します。


関連項目:

dbtimezoneパラメータの詳細は、『Oracle OLAP DMLリファレンス』を参照してください。


36.3 Oracle Internet Directoryガベージ・コレクタの変更

この項の項目は次のとおりです。

36.3.1 Oracle Directory Services Managerを使用したガベージ・コレクタの変更

ガベージ・コレクタを変更する手順は、次のとおりです。

  1. 第7.4.5項「Oracle Directory Services Managerの起動」の説明に従って、Oracle Directory Services Managerを起動し、Oracle Internet Directoryサーバーに接続します。

  2. タスク選択バーで、「拡張」を選択します。

  3. 左側のペインで「ガベージ・コレクション」を展開し、変更するガベージ・コレクタを選択します。右側のペインに「ガベージ・コレクタ」ウィンドウが表示されます。

  4. ガベージ・コレクタ・ウィンドウで、このガベージ・コレクタに対する変更を入力します。

  5. 「適用」を選択します。

36.3.2 コマンドライン・ツールを使用したガベージ・コレクタの変更

この項では、コマンドライン・ツールを使用してガベージ・コレクタを変更する方法の例を示します。変更できるガベージ・コレクション属性は、『Oracle Fusion Middleware Oracle Identity Managementリファレンス』のOracle Internet Directoryの構成スキーマ要素に関する説明を参照してください。

36.3.2.1 例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 例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.3.3 Oracle Internet Directory統計情報コレクタの変更

Oracle Internet Directory統計情報コレクタは、ガベージ・コレクタと同じ方法で変更しますが、変更可能なフィールドは3つのみです。

36.4 Oracle Internet Directoryガベージ・コレクタのロギングの管理

この項の項目は次のとおりです。

36.4.1 Oracle Internet Directoryガベージ・コレクタのロギングの有効化

ガベージ・コレクタのロギングを有効にすると、ディレクトリ・サーバーは、ファイル・システム内のファイルに、情報を書き込みます。これには次の情報が含まれます。

  • ジョブ識別子

  • ガベージ・コレクタのジョブ説明

  • パージされたエントリ数

  • 操作のステータス

  • タイムスタンプ

  • 捕捉されたエラー

ガベージ・コレクション情報のロギングを有効にする手順は、次のとおりです。

  1. orclpurgedebug属性を必要に応じて1に設定します。orclpurgedebugを1に設定すると、さらに詳細なデバッグ情報が記録されます。こうしておくと、ガベージ・コレクションの問題のトラブルシューティングに役立ちます。

  2. ログ・ファイルの有効なファイル名(oidgc001.logなど)を、orclpurgefilename属性に設定します。

  3. ログ・ファイルのあるディレクトリのパス名(/private/mydir/oracle/ldap/logなど)を、orclpurgefileloc属性に設定します。

  4. 手順3で指定したディレクトリへのPL/SQL I/Oアクセスを有効にします。これには、次の内容をデータベースに指定します。

    UTL_FILE_DIR=PATH_NAME
    

    PATH_NAMEは、手順3で指定したパスです。


    関連項目:

    『Oracle Databaseリファレンス』のUTL_FILE_DIRパラメータ・タイプに関する項


  5. レプリケーション・サーバーを停止し、次にOracle Internet Directoryサーバーを停止します。

  6. データベースを再起動します。

  7. Oracle Internet Directoryサーバーを起動し、次にレプリケーション・サーバーを起動します。

36.4.2 Oracle Internet Directoryガベージ・コレクタのロギングの無効化

ガベージ・コレクション情報のロギングを無効にするには、orclpurgedebug属性を0に設定します。


注意:

orclpurgedebugが0に設定されている場合も、ガベージ・コレクタの処理を示すために、ガベージ・コレクタの操作に関する最小限の情報が記録されます。


36.4.3 ガベージ・コレクションのロギングの監視

ガベージ・コレクションのログの情報は、ガベージ・コレクションの監視とトラブルシューティングに役立ちます。このログの場所は、ロギングを有効にする際に属性を設定して指定します。たとえば、次のように構成したとします。

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 時間ベースの変更ログのパージの構成

変更ログのパージについては、第36.1.4項「変更ログのパージ」で説明しています。時間ベースのパージは、変更ログ・パージ構成エントリの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 Fusion Middleware Oracle Identity Managementリファレンス』のOracle Internet Directoryの構成スキーマ要素に関する説明