• 検索結果がありません。

IBM Directory の情報およびユーティリティー

ドキュメント内 am41_perftune.ps (ページ 41-63)

Tivoli Access Manager での IBM Directory の使用

1. ユーザー・データ

2. デフォルト・ポリシー・データ

3. Tivoli Access Manager での IBM LDAP ACL の使用

LDAP での DB2 の使用

次の Web サイトには、IBM LDAP での DB2 の使用に関する説明があります。

http://www.ibm.com/software/network/directory/library/

LDAP での DB2 の使用について理解するために重要な情報となるものは、エント

リー ID (すなわち EID) です。すべての LDAP オブジェクトは、その EID によっ

て DB2 内で識別されます。以下は、EID に基づいてエントリーと属性を検索する ためのコマンド、および、エントリーと属性に基づいて EID を検索するためのコマ ンドをリストしたものです。

表のフルネームを検索する場合:

db2 list tables | grep -i src 表について記述する場合:

db2 describe table ldapdb2.src LDAP で最後の EID を検索する場合:

db2 "select * from ldap_next_eid"

DN を使用して名前を指定し、ユーザーの EID を検索する場合:

db2 "select eid from ldap_entry where dn_trunc = ’OU=EPERSON’"

db2 "select ldap_entry.eid,dn_trunc from ldap_entry where dn_trunc =

’CN=IVUSER1,OU=EPERSON’"

principalname を使用して名前を指定し、ユーザーの EID を検索する場合:

db2 "select eid from ldapdb2.principalname where principalname =

’IVUSER1’

EID を指定して、ユーザーの DN を検索する場合:

db2 "select ldap_entry.dn_trunc from ldap_entry where eid = 100"

db2 "select ldap_entry.eid,dn_trunc from ldap_entry where eid = 100"

#also displays the eid

以下は、ACL/所有者ソース表を検索する検索コマンドをリストしたものです。

EID 100ACL ソース表を表示する場合:

db2 "select * from src where eid = 100"

EID 100110ACL ソース表を表示する場合:

db2 "select * from src where eid < 110 and eid > 100"

最初の 100 個のエントリーからのデフォルト ACL 継承を含まない (acl 所有者は -1) EID を検索する場合:

db2 "select * from src where aclsrc = -1 and eid < 100 and eid > 2"

サフィックスではなく、さらに最初の 60 個のエントリーからのデフォルト ACL 継承を持たない、ACL ソース表内の EID を検索する場合:

db2 "select eid from src where aclsrc = -1 and eid > 1 and eid < 60 and eid not in (select ldap_entry.eid from ldap_entry where peid = -1)"

db2 "select eid from src where aclsrc = -1 and eid > 1 and eid < 60 and eid in (select deid from ldap_desc where deid != aeid)"

デフォルト ACL ソースを持たず、EID 3 を持つサフィックスの子孫である、ACL/

所有者ソース表内の EID を検索する場合:

db2 "select src.eid from src,ldap_desc,ldap_entry where aclsrc = -1 and src.eid > 1 and src.eid < 60 and deid = src.eid and aeid=3 and peid !=

-1 and ldap_entry.eid = src.eid"

ACL/所有者ソース表内で、EID 4 (secauthority=default) の子孫である最初の 10 個のユーザーを検索する場合:

db2 "select * from src where src.eid in (select deid from ldapdb2.ldap_desc where (aeid= 4 and deid <10 and deid != 4))"

以下は、ACL/所有者ソース表を更新する更新コマンドをリストしたものです。

EID 100ACL ソース表を更新する場合:

db2 "update src set aclsrc = 3 where eid = 100"

サフィックスではなく、さらに最初の 60 個のエントリーからのデフォルト ACL 継承を含まないすべての EIDACL ソース表を更新する場合:

db2 "update src set aclsrc = 3 where eid in (select eid from src where aclsrc = -1 and eid > 1 and eid < 60 and eid not in (select

ldap_entry.eid from ldap_entry where peid = -1))"

EID の祖先を子孫表から表示する場合:

db2 "select * from ldap_desc where deid = 100"

すべてのサフィックスの EID を検索する場合:

db2 "select ldap_entry.eid from ldap_entry where peid = -1"

db2 "select ldap_entry.eid,dn_trunc from ldap_entry where peid = -1"

バルク・ロードされた最初のユーザー (Tivoli Access Manager によって作成され たユーザー以外の最初のユーザー) の EID の検索を支援する場合:

db2 "select ldap_entry.eid,dn_trunc from ldap_entry,objectclass where objectclass.eid < 50 and objectclass.objectclass = ’EPERSON’ and objectclass.eid = ldap_entry.eid"

db2 "select * from objectclass where objectclass = ’EPERSON’ and eid <

50"

複数の物理ディスクへのデータベースの分散

データベースが大きくなるにつれて、複数の物理ディスク・ドライブにデータベー スを分散することが必要になります。複数のディスクにエントリーを分散すること により、パフォーマンスを向上させることができます。パフォーマンスの点からみ

ると、1 個の 20 GB ディスクは 2 個の 10 GB ディスクより劣ります。以下のセ

クションでは、複数のディスクに ldapdb2 データベースを分散するための DB2 の 構成方法について説明します。

IBM Directory の表スペース

IBM Directory は、ディレクトリー用のデータベースを作成するとき、db2 create

database コマンドを使用して ldapdb2 という名前のデータベースを作成します。

IBM Directory バージョン 3.2.1 では、3 つの SMS (システム管理スペース) 表ス ペースがあるデータベースを作成します。 IBM Directory バージョン 3.2.2 以降で

は、もう 1 つの SMS 表スペースが追加されたデータベースを作成します。これら の表スペースは、ldapdb2 ユーザーのコンテキストのもとで実行される次の DB2 コマンドを使用して表示できます。

db2 connect to ldapdb2 db2 list tablespaces

IBM Directory バージョン 3.2.1 の出力例は、次のとおりです。

Tablespaces for Current Database

Tablespace ID = 0

Name = SYSCATSPACE

Type = System managed space

Contents = Any data

State = 0x0000

Detailed explanation:

Normal

Tablespace ID = 1

Name = TEMPSPACE1

Type = System managed space

Contents = Temporary data

State = 0x0000

Detailed explanation:

Normal

Tablespace ID = 2

Name = USERSPACE1

Type = System managed space

Contents = Any data

State = 0x0000

Detailed explanation:

Normal

IBM Directory バージョン 3.2.2 以降の場合は、次の追加の表スペースが存在しま

す。

Tablespace ID = 3

Name = LDAPSPACE1

Type = System managed space

Contents = Any data

State = 0x0000

Detailed explanation:

Normal

IBM Directory はユーザーの表スペース (USERSPACE1) に保管され、バージョン

3.2.2 以降の場合は LDAP 表スペース (LDAPSPACE) に保管されます。デフォルト

では、ユーザーの表スペース用のコンテナーまたはディレクトリーは 1 つだけで す。ユーザーの表スペースの内容を表示するには、次のような DB2 コマンドを入 力します。

db2 list tablespace containers for 2 出力例は次のとおりです。

Tablespace Containers for Tablespace 2

Container ID = 0

Name = /ldapdb2/NODE0000/SQL00001/SQLT0002.0

Type = Path

DB2 が表スペース 2 のために使用するコンテナーまたはディレクトリーは、

/ldapdb2/SQL00001/SQLT0002.0 です。IBM Directory バージョン 3.2.1 の場合は、

ここには LDAP ディレクトリー表のすべてのファイルが入ります。IBM Directory バージョン 3.2.2 以降の場合は、このディレクトリーは表スペース 3 にも保管され ます。最も大きな表 ldap_entry には、LDAP ディレクトリー情報の大部分が入り ます。

ターゲット・ディスク上でのファイルシステムおよびディレクトリーの作成

複数のディスク・ドライブに DB2 データベースを分散する際の最初のステップ は、データベースが分散される物理ディスクにファイルシステムとディレクトリー を作成し、フォーマットすることです。

ガイドラインを以下に示します。

v DB2 はデータベースをすべてのディレクトリーに等しく分散するので、すべての ファイルシステムまたはディレクトリー (あるいはその両方) を同じサイズにする ことをお勧めします。

v DB2 データベースに使用されるすべてのディレクトリーは、完全に空でなければ なりません。 AIX および Solaris システムでは、すべてのファイルシステムのル

ートに lost+found ディレクトリーを作成します。 lost+found ディレクトリー

を削除する代わりに、各ファイルシステムのルートに、データベースの分散に使 用されるサブディレクトリーを作成します。たとえば、各ファイルシステムに、

DB2 データベースが保管される c という名前のサブディレクトリーを作成しま す。

v IBM Directory バージョン 3.2.1 の場合は、31ページの『データベースのリダイ

レクト復元の実行』で説明する set tablespace コマンドで c ディレクトリーを 指定します。

v IBM Directory バージョン 3.2.2 以降の場合は、c ディレクトリーのもとに 2 つ

の追加のディレクトリー (1 つは表スペース 2 の保持用、もう 1 つは表スペー ス 3 の保持用) を作成します。これらのディレクトリーの名前は、たとえば 2 および 3 となります。この場合、これらのディレクトリーを、31ページの『デ ータベースのリダイレクト復元の実行』で説明する set tablespace で指定しま す。

v DB2 インスタンスのユーザーは、作成されたディレクトリーに対して書き込みア クセス権をもっていなければなりません。 AIX および Solaris システムの場合 は、次のコマンドを使用して適切なアクセス権を付与します。

chown ldapdb2 directory_name

以下に、プラットフォーム固有のガイドラインを示します。

v AIX オペレーティング・システムの場合は、「ラージ・ファイル使用可能 (Large File Enabled)」オプションを使用してファイルシステムを作成します。これは、

「ジャーナル・ファイルシステムの追加 (Add a Journaled File System)」smitty メニューのオプションの 1 つです。

v AIX および Solaris システムの場合は、ファイル・サイズの限度を無制限に設定

するか、ファイルシステムと同じ大きさのファイルを作成するのに十分な大きさ のサイズに設定します。 AIX システムでは、 /etc/security/limits ファイル がシステムしきい値を制御し、-1 は無制限を意味します。 Solaris システムで は、ulimit コマンドがシステムしきい値を制御します。

既存データベースのバックアップ

既存のデータベースのバックアップをとるには、以下のステップを実行します。

1. IBM Directory Server プロセスを停止する (slapd)。

2. すべての DB2 接続をクローズするために、以下を入力する。

db2 force applications all db2 list applications

次のようなメッセージが表示されます。

SQL1611W Database System Monitor がデータを戻しませんでした 3. バックアップ処理を開始するために、次のコマンドを入力する。

db2 backup db ldapdb2 to [file system | tape device]

データベースのバックアップが正常に行われた場合は、次のようなメッセージが 表示されます。

バックアップが正常に行われました。このバックアップ・イメージのタイム・スタンプ は 20000420204056 です

注: 先に進む前に、バックアップ処理が正常に行われたことを確認してください。

次のステップでは、データベースを再作成するために既存のデータベースが破 棄されます。バックアップが正常に行われなかった場合は、既存のデータベー スが失われます。バックアップの成否は、別個のシステムに復元することによ って確認できます。

データベースのリダイレクト復元の実行

DB2 リダイレクト復元により、指定されたデータベース表スペースを複数のコンテ ナーまたはディレクトリーに復元します。次の例では、表スペース 2 を入れるため の以下のディレクトリーが、作成済みであり、空であって、ldapdb2 インスタンス 所有者による書き込みアクセスを可能にできる正しいアクセス権をもつものと想定 しています。

/disks/1/2 /disks/2/2 /disks/3/2 /disks/4/2 /disks/5/2

次の例では、IBM Directory バージョン 3.2.2 以降が使用されており、表スペース 3 用に以下のディレクトリーが作成済みであると想定しています。

/disks/1/3 /disks/2/3 /disks/3/3 /disks/4/3 /disks/5/3

リダイレクト復元を行うには、以下のステップを実行します。

1. DB2復元処理を開始するために、次のコマンドを入力する。

db2 restore db ldapdb2 from [location of backup] replace existing redirect 次のようなメッセージが表示されます。

ドキュメント内 am41_perftune.ps (ページ 41-63)

関連したドキュメント