前へ     目次     索引     DocHome     次へ     
iPlanet Directory Server 5.1 管理者ガイド



第 4 章   ディレクトリデータベースへのデータの実装


データベースには、Directory Server によって管理されるディレクトリのデータが含まれます。この章では、次のディレクトリデータベースの実装手順について説明します。



読み取り専用モードの有効化と無効化

Directory Server 上でエクスポート操作またはバックアップ操作を実行する前に、対象となるデータベースに対して読み取り専用モードを有効にすると、その時点でのデータベースの状態の正確なイメージを確保できます。

Directory Server Console とコマンド行ユーティリティでは、エクスポートまたはバックアップ操作の前に、ディレクトリが自動的に読み取り専用モードに設定されることはありません。これは、読み取り専用にしてしまうと、ディレクトリの更新ができなくなるためです。ただし、システムが多重マスター構成になっている場合、この問題は発生しません。


読み取り専用モードの有効化

  1. Directory Server Consoleで「構成」タブを選択し、ナビゲーションツリーの Data フォルダを展開します。

  2. 読み取り専用モードにするデータベースを選択し、右側の区画にある「データベースの設定」タブをクリックします。

  3. 「データベースは読み取り専用です」チェックボックスを選択します。

  4. 「保存」をクリックします。

    変更内容はすぐに有効になります。

インポートまたは復元の操作を実行する前に、操作対象のデータベースが読み取り専用モードになっていないことを確認してください。読み取り専用になっている場合は、次の手順に従ってデータベースを更新できるようにします。


読み取り専用モードの無効化

  1. Directory Server Console で「構成」タブを選択し、Data ツリーを展開します。

  2. 更新可能にするデータベースを選択し、右側の区画にある「データベースの設定」タブをクリックします。

  3. 「データベースは読み取り専用です」チェックボックスの選択を解除します。

  4. 「保存」をクリックします。

    変更内容はすぐに有効になります。



データのインポート

iPlanet Directory Server では、3 つの方法でデータをインポートできます。

  • Directory Server Consoleからインポートする

    Directory Server Console を使用して、データベースリンクを含め、すべてのデータベースにデータを追加します。

  • データベースを初期化する

    Directory Server Console を使用して、1 つのデータベースにデータをインポートします。この方法では、データベース内のすべてのデータが上書きされます。

  • コマンド行を使用してデータをインポートする

    コマンド行ユーティリティを使用してデータをインポートします。



     

    インポートする LDIF (LDAP Data Interchange Format) ファイルでは、UTF-8 文字セットエンコードが使用されている必要があります。  



次の表に、データベースのインポートと初期化の違いを示します。


表 4-1 データのインポートとデータベースの初期化の比較

比較ドメイン

データのインポート

データベースの初期化

データベースの上書き  

×  

 

LDAP 処理  

追加、変更、削除  

追加のみ  

性能  

低速  

高速  

パーティション特性  

すべてのパーティションが対象  

ローカルパーティションのみ  

サーバの障害への対応  

ベストエフォート (障害発生時までの変更内容はそのまま残る)  

不可分 (障害が発生するとすべての変更内容は失われる)  

LDIF ファイルの位置  

Console と同じマシン上  

Console またはサーバと同じマシン上  

構成情報のインポート (cn=config)  

 

×  

次の節では、データのインポートについて説明します。


Console を使用したインポートの実行

Directory Server Console からインポート操作を実行する場合は、エントリの変更と削除を行うのと同様にデータの追加を行うために ldapmodify 処理が実行されます。この処理は、Directory Server によって管理されるすべてのデータベース、および Directory Server がデータベースリンクを保持しているリモートデータベースが対象になります。

インポートを実行するには、ディレクトリマネージャ (Directory Manager) としてログインする必要があります。

Directory Server Console からデータをインポートするには、次の手順を実行します。

  1. Directory Server Console で、「タスク」タブを選択します。画面の一番下までスクロールし、「データベースのインポート」を選択します。

    また、「構成」タブの「Console」メニューから「インポート」を選択してインポートすることもできます。

    「データベースのインポート」ダイアログボックスが表示されます。

  2. インポートする LDIF ファイルの絶対パスを「LDIF ファイル」フィールドに入力するか、「参照」をクリックしてインポートするファイルを選択します。

    そのディレクトリがあるマシンとは別のリモートマシン上で Console を実行している場合、フィールド名は「LDIF ファイル (Console を実行するマシン上)」と表示されます。これによって、参照しているディレクトリがカレントディレクトリではないことがわかります。ここで参照するファイルシステムは、コンソールを実行しているマシン上にあります。

  3. このボックスで、次のオプション (複数可) を選択します。

    追加のみ : LDIF ファイルでは、デフォルトの追加命令に加えて、変更命令と削除命令を含むことがあります。サーバが追加以外の処理を無視するように設定する場合は、「追加のみ」チェックボックスを選択します。

    エラー時に続行 : エラーが発生してもサーバがインポートを続けるように設定する場合は、「エラー時に続行」チェックボックスを選択します。たとえば、新しいエントリとすでにデータベース上に存在するデータの両方を含む LDIF ファイルをインポートする場合に、このオプションを使用できます。既存エントリが拒否エントリ用ファイルに記録され、すべての新しいエントリが追加されます。

  4. 「拒否エントリ用ファイル」フィールドには、サーバがインポートできなかったすべてのエントリを記録するファイルの絶対パスを入力します。あるいは、「参照」ボタンをクリックして拒否データを保存するファイルを選択します。

    たとえば、サーバはデータベースにすでに存在するエントリや、親オブジェクトのないエントリをインポートできません。Console は、サーバから送られたエラーメッセージを拒否ファイルに書き込みます。

    このフィールドを空白のままにすると、拒否されたエントリは記録されません。

  5. 「OK」をクリックします。

    インポートが実行され、さらにインデックスが作成されます。


Console を使用したデータベースの初期化

データベース上に存在するデータは上書きできます。次の節では、Console を使用したデータベースの初期化について説明します。

データベースを初期化するには、ディレクトリマネージャ (Directory Manager) としてログインする必要があります。これは、ルートエントリを含む LDIF ファイルをインポートするには、ディレクトリマネージャ (root DN) としてディレクトリにバインドする必要があるためです。ルートエントリへのアクセス権が認められるのは、ディレクトリマネージャだけです (たとえば、dc=siroe,dc=com などがルートエントリです)。



警告  

LDIF ファイルからデータベースを初期化するときは、データを復元する場合を除いて、o=NetscapeRoot 接尾辞を上書きしないように注意してください。この接尾辞を上書きしてしまうと、重要な情報が削除されてしまい、iPlanet サーバの再インストールが必要になります。  



Directory Server Console を使用してデータベースを初期化するには、次の手順を実行します。

  1. Directory Server Console で、「構成」タブを選択します。

  2. 左側にあるナビゲーション区画の Data ツリーを展開します。初期化するデータベースの接尾辞で示されたディレクトリを展開してから、データベースをクリックします。

  3. データベースをマウスの右ボタンでクリックし、「データベースの初期化」を選択します。

    「データベースの初期化」は、「オブジェクト」メニューから選択することもできます。

  4. インポートする LDIF ファイルの絶対パスを「LDIF ファイル」フィールドに入力するか、「参照」をクリックしてマシン上のファイルを選択します。

  5. インポートするファイルが置かれているローカルマシンから Console を操作している場合は、手順 6 に進みます。LDIF ファイルがあるサーバのリモートマシンから Console を操作している場合は、次のどちらかのオプションを選択します。

    ローカルマシンから : LDIF ファイルがローカルマシン上に置かれていることを示します。

    サーバマシンから : LDIF ファイルがリモートサーバ上にあることを示します。デフォルトでは、Console は次のディレクトリ内でファイルを検索します。

    Solaris 9 プラットフォーム

    /var/ds5/slapd-serverID/ldif

    その他のプラットフォーム

    installDir/slapd-serverID/ldif

  6. 「OK」をクリックします。


コマンド行からのインポート

コマンド行を使用してデータをインポートするには、3 つの方法があります。

  • ldif2db (Solaris 9 プラットフォームのdirectoryserver ldif2db) を使用する。

    この方法でインポートすると、データベースの内容は上書きされます。また、サーバをあらかじめ停止させておく必要があります。

  • ldif2db.pl (Solaris 9 プラットフォームの directoryserver ldif2db-task) を使用する。

    この方法でインポートすると、データベースの内容は上書きされます。サーバを停止させておく必要はありません。

  • ldif2ldap (Solaris 9 プラットフォームの directoryserver ldif2ldap) を使用する。

    この方法では、LDAP によって LDIF ファイルが追加されます。この方法を使用すると、すべてのデータベースにデータを追加できます。


ldif2db コマンドを使用したインポート

ldif2db コマンド (Solaris 9 プラットフォーム上のdirectoryserver ldif2db) は、指定したデータベースのデータを上書きします。このスクリプトでは、インポートを開始する前に、サーバの停止が要求されます。

デフォルトでは、まず既存の o=NetscapeRoot 構成情報すべてが保存され、インポートされるファイル内の o=NetscapeRoot 構成情報と結合されます。



警告  

このスクリプトは、データベース内のデータを上書きします。  



サーバを停止して LDIF をインポートするには、次の手順を実行します。

  1. root としてコマンド行に次のコマンドを入力し、サーバを停止させます。

    Solaris 9 プラットフォーム

    # /usr/sbin/directoryserver stop

    その他のプラットフォーム

    # installDir/slapd-serverID/stop-slapd

  2. ldif2db コマンドを使用します。

    Solaris 9 プラットフォーム

    # /usr/sbin/directoryserver ldif2db

    その他のプラットフォーム

    # installDir/slapd-serverID/ldif2db

    このスクリプトの使い方については、『iPlanet Directory Server 構成、コマンド、およびファイルのリファレンス』を参照してください。

次の例では、ldif2db コマンドを使用して LDIF ファイルを 1 つのデータベースにインポートします。



警告  

-n オプションで、LDIF ファイルに含まれる接尾辞に対応しないデータベースを指定した場合は、データベースに含まれるすべてのデータが削除され、インポートは失敗します。データベース名を間違えないように注意してください。  



Windows NT バッチファイル

ldif2db.bat -n Database1
 -i c:¥iplanet¥servers¥slapd-siroe¥ldif¥demo.ldif
 -i c:¥iplanet¥servers¥slapd-siroe¥ldif¥demo2.ldif

UNIX シェルスクリプト

# use 'ディレクトリサーバ ldif2db' on Solaris 9 plaforms
ldif2db -n Database1 \
 -i /usr/iplanet/servers/slapd-siroe/ldif/demo.ldif \
 -i /usr/iplanet/servers/slapd-siroe/ldif/demo2.ldif


表 4-2 例で使用した ldif2db オプションの説明

オプション

説明

-n

 

データのインポート先となるデータベースの名前を指定する  

-i

 

インポートする LDIF ファイルの絶対パス名を指定する。このオプションは必須。一度に複数の LDIF ファイルをインポートする場合は、複数の -i 引数を使用できる。複数のファイルをインポートする場合、サーバはコマンド行で指定された順に LDIF ファイルをインポートする  


ldif2db.pl Perl スクリプトを使用したインポート

ldif2db コマンドと同様に ldif2db.pl スクリプト (Solaris 9 プラットフォーム上の directoryserver ldif2db-task) は、指定したデータベースのデータを上書きします。このスクリプトを使用してインポートを実行する場合は、サーバを動作させておく必要があります。



警告  

このスクリプトは、データベース内のデータを上書きします。  



このスクリプトのコマンドは、プラットフォームごとに異なります。

Solaris 9 プラットフォーム

# /usr/sbin/directoryserver ldif2db-task

Windows プラットフォーム

installDir> bin¥slapd¥admin¥bin¥perl slapd-serverID¥ldif2db.pl

その他のプラットフォーム

# installDir/slapd-serverID/ldif2db.pl

この Perl スクリプトの使い方については、『iPlanet Directory Server 構成、コマンド、およびファイルのリファレンス』を参照してください。

次の例では、ldif2db.pl スクリプトを使用して、LDIF ファイルをインポートします。このスクリプトの実行には、root 権限は必要ありませんが、ディレクトリマネージャとして認証する必要があります。

Windows NT バッチファイル

iPlanet¥Servers¥bin¥slapd¥admin¥bin¥perl.exe
  iPlanet¥Servers¥slapd-siroe¥ldif2db.pl
    -
D "cn=Directory Manager" -w password -n Database1
    -
i iPlanet¥Servers¥slapd-siroe¥ldif¥demo.ldif

UNIX シェルスクリプト

# use 'ディレクトリサーバ ldif2db-task' on Solaris 9 plaforms
ldif2db.pl \
  -D "cn=Directory Manager" -w password -n Database1 \
  -i /usr/iplanet/servers/slapd-siroe/ldif/demo.ldif

次の表に、これらの例で使用されている ldif2db.pl のオプションを示します。


表 4-3 例で使用した ldif2db.pl オプションの説明

オプション

説明

-D

 

ディレクトリマネージャの DN を指定する  

-w

 

ディレクトリマネージャのパスワードを指定する  

-n

 

データのインポート先となるデータベースの名前を指定する  

-i

 

インポートする LDIF ファイルの絶対パス名を指定する。このオプションは必須。一度に複数の LDIF ファイルをインポートする場合は、複数の -i 引数を使用できる。複数のファイルをインポートする場合、サーバはコマンド行で指定された順に LDIF ファイルをインポートする  


ldif2ldap コマンドを使用したインポート

ldif2ldap コマンド (Solaris 9 プラットフォーム上の directoryserver ldif2ldap) を使うと、LDAP を通して LDIF ファイルが追加されます。このスクリプトを使用すると、すべてのディレクトリデータベースに対して同時にデータをインポートできます。ldif2ldap を使用してインポートを実行するには、サーバを動作させておく必要があります。

ldif2ldap を使用して LDIF をインポートするには、次のコマンドを使用します。

Solaris 9 プラットフォーム

# /usr/sbin/directoryserver ldif2ldap

その他のプラットフォーム

# installDir/slapd-serverID/ldif2ldap

このスクリプトの使い方については、『iPlanet Directory Server 構成、コマンド、およびファイルのリファレンス』を参照してください。

次の例では、ldif2ldap コマンドを使ってインポートが実行されます。このコマンドを実行するために root 権限は必要ありませんが、コマンド行でディレクトリマネージャに資格を付与する必要があります。最後のパラメタは、インポートする 1 つ以上の LDIF ファイル名です。

Windows NT バッチファイル

ldif2ldap.bat "cn=Directory Manager" password
  c:¥iplanet¥servers¥slapd-siroe¥ldif¥demo.ldif

UNIX シェルスクリプト

# use 'ディレクトリサーバ ldif2ldap' on Solaris 9 plaforms
ldif2ldap "cn=Directory Manager" password \
  /usr/iplanet/servers/slapd-siroe/ldif/demo.ldif



データのエクスポート



LDIF (LDAP Data Interchange Format) を使用すると、データベースのエントリをデータベースからエクスポートできます。LDIF は、RFC 2849「The LDAP Data Interchange Format (LDIF) - Technical Specification」に記載されている標準形式です。

データのエクスポートは、次のような場合に便利です。

  • データベース上のデータのバックアップ

  • ほかの Directory Server へのデータコピー

  • ほかのアプリケーションへのデータのエクスポート

  • ディレクトリトポロジ変更後のデータベースの再実装

たとえば、ディレクトリが 1 つのデータベース内に置かれている場合に、その内容を次のように 2 つのデータベースに分割するとします。



新しいデータベースにデータを実装するには、データベース 1 の内容をエクスポートして、それを新しいデータベース 1 および 2 にインポートする必要があります。

データをエクスポートするには、iPlanet Directory Server の Console か、コマンド行ユーティリティを使用します。次の節では、各方法の詳細について説明します。

エクスポート処理を実行しても、構成情報 (cn=config) はエクスポートされません。



警告  

エクスポートの処理中には、サーバを停止しないでください。  




Console を使用した LDIF へのディレクトリデータのエクスポート

エクスポートされるファイルの最終的な位置に応じて、ディレクトリデータの一部またはすべてを LDIF にエクスポートできます。LDIF ファイルがサーバ上にある場合は、サーバと同じマシン上にあるデータベースのデータしかエクスポートできません。LDIF ファイルがリモートマシン上にある場合は、データベースおよびデータベースリンクのすべてをエクスポートできます。

サーバの動作中に、Directory Server Console から LDIF にディレクトリデータをエクスポートするには、次の手順を実行します。

  1. Directory Server Console で、「タスク」タブを選択します。画面の一番下までスクロールし、「データベースのエクスポート」を選択します。

    また、「構成」タブの「Console」メニューから「エクスポート」を選択してすべてのデータベースをエクスポートすることもできます。

    「データベースのエクスポート」ダイアログボックスが表示されます。

  2. 「LDIF ファイル」フィールドに LDIF ファイルの絶対パスとファイル名を入力するか、「参照」をクリックしてファイルを選択します。

    リモートサーバ上で Console を実行している場合は、「参照」は無効になっています。「参照」ボタンが無効になっている場合は、ファイルがデフォルトで次のディレクトリに保存されています。

    Solaris 9 プラットフォーム

    /var/ds5/slapd-serverID/ldif

    その他のプラットフォーム

    /usr/iplanet/servers/slapd-serverID/ldif

  3. サーバ以外のリモートマシン上で Console を実行している場合は、「LDIF ファイル」 フィールドの下に 2 つのラジオボタンが表示されます。Console の実行マシン上の LDIF ファイルにエクスポート先を指定する場合は、「ローカルマシンへ」を選択します。サーバのマシン上に置かれている LDIF ファイルにエクスポート先に指定する場合は、「サーバマシンへ」を選択します。

  4. ディレクトリ全体をエクスポートする場合は、「データベース全体」ラジオボタンを選択します。

    データベースに含まれる接尾辞の 1 つのサブツリーだけをエクスポートする場合は、「サブツリー」ラジオボタンを選択して、「サブツリー」テキストボックスに接尾辞の名前を入力します。これによって、複数のデータベースに含まれるサブツリーをエクスポートできます。

    「参照」をクリックして接尾辞またはサブツリーを選択することもできます。

  5. 「OK」をクリックすると、ファイルがエクスポートされます。


Console を使用した LDIF への単一のデータベースのエクスポート

サーバの動作中に、Directory Server Console から LDIF に単一のデータベースをエクスポートするには、次の手順を実行します。

  1. Directory Server Console で、「構成」タブを選択します。

  2. 左側にあるナビゲーション区画の Data ツリーを展開します。エクスポートするデータベースによって維持される接尾辞で示されたディレクトリを展開します。接尾辞で示されたディレクトリの下から、エクスポートするデータベースを選択します。

  3. データベースをマウスの右ボタンでクリックし、「データベースのエクスポート」を選択します。

    「データベースのエクスポート」は、「オブジェクト」メニューから選択することもできます。

    「パーティションのエクスポート」ダイアログボックスが表示されます。

  4. LDIF ファイルの絶対パスを「LDIF ファイル」フィールドに入力するか、「参照」をクリックしてファイルを選択します。

    「参照」ボタンが無効になっている場合は、ファイルがデフォルトで次のディレクトリに保存されています。

    Solaris 9 プラットフォーム

    /var/ds5/slapd-serverID/ldif

    その他のプラットフォーム

    /usr/iplanet/servers/slapd-serverID/ldif

  5. 「OK」をクリックすると、ファイルがエクスポートされます。


コマンド行からの LDIF へのエクスポート

db2ldif コマンド (Solaris 9 プラットフォームの directoryserver db2ldif) を使用すると、データベースを LDIF にエクスポートできます。このスクリプトは、サーバが動作中または停止中であるときに、データベースの内容のすべてまたは一部を LDIF ファイルにエクスポートします。

データベースの内容を LDIF ファイルにエクスポートするには、次のコマンドを使用します。

Solaris 9 プラットフォーム

# /usr/sbin/directoryserver db2ldif

その他のプラットフォーム

# installDir/slapd-serverID/db2ldif

このスクリプトの使い方については、『iPlanet Directory Server 構成、コマンド、およびファイルのリファレンス』を参照してください。

次の例では、2 つの接尾辞のデータベースが 1 つの LDIF ファイルにエクスポートされます。

db2ldif -n database1 -a output.ldif \
        -s "dc=siroe,dc=com" -s "o=NetscapeRoot"

次の表に、これらの例で使用されている db2ldif のオプションを示します。


表 4-4 例で使用した db2ldif オプションの説明

オプション

説明

-n

 

データのインポート先となるデータベースの名前を指定する  

-a

 

サーバがエクスポートした LDIF を保存する出力ファイル名を定義する。デフォルトでは、このファイルは installDir/slapd-serverID ディレクトリに格納される  

-s

 

エクスポートに取り込む接尾辞を指定する。複数の -s 引数を使用すると、複数の接尾辞を指定することができる  



データのバックアップと復元



Directory Server Console やコマンド行スクリプトを使用して、データベースのバックアップと復元を行うことができます。

次の節では、データのバックアップと復元の手順について説明します。


すべてのデータベースのバックアップ

次に、Directory Server Console を使って、あるいはコマンド行から、ディレクトリ内のすべてのデータベースをバックアップするための手順を示します。



 

データベースリンクによって連鎖させたリモートサーバ上にデータベースがある場合は、この方法でデータをバックアップすることはできません。  




Server Console を使用したすべてのデータベースのバックアップ

Directory Server Console を使用してデータベースをバックアップする場合は、すべてのデータベースの内容と、関連するインデックスファイルがバックアップ位置にコピーされます。バックアップは、サーバが動作中でも実行できます。

Server Console を使用してデータベースをバックアップするには、次の手順を実行します。

  1. Directory Server Console で、「タスク」タブを選択します。

  2. 「Directory Server のバックアップ」をクリックします。

    「ディレクトリのバックアップ」ダイアログボックスが表示されます。

  3. 「ディレクトリ」テキストボックスに、バックアップの格納先ディレクトリへの絶対パスを入力します。ディレクトリと同じマシン上でコンソールを実行している場合は、「参照」をクリックしてローカルディレクトリを選択します。

    または「デフォルトの使用」をクリックして、バックアップを次のディレクトリに格納します。

    Solaris 9 プラットフォーム

    /var/ds5/slapd-serverID/bak/YYYY_MM_DD_hh_mm_ss

    その他のプラットフォーム

    /usr/iplanet/servers/slapd-serverID/bak/YYYY_MM_DD_hh_mm_ss

    ここでの serverID とは、ディレクトリサーバの名前で、バックアップが作成された日時を入れるため backupDir 名が生成されます。

  4. 「OK」をクリックすると、バックアップが作成されます。


コマンド行からのすべてのデータベースのバックアップ

db2bak コマンド (Solaris 9 プラットフォームのdirectoryserver db2bak) を使用すると、コマンド行からデータベースをバックアップできます。このスクリプトは、サーバが動作中か動作中でないかにかかわらず実行できます。

ただし、この方法では構成情報をバックアップできません。構成情報のバックアップについては、「dse.ldif 構成ファイルのバックアップ」を参照してください。

ディレクトリをバックアップするには、次のコマンドを使用します。

Solaris 9 プラットフォーム

# /usr/sbin/directoryserver db2bak backupDir

その他のプラットフォーム

# installDir/slapd-serverID/db2bak backupDir

backupDirパラメタにバックアップを格納するディレクトリを指定します。デフォルトでは、バックアップディレクトリ名は、現在の日付 YYYY_MM_DD_hh_mm_ss から生成されます。このスクリプトの使い方については、『iPlanet Directory Server 構成、コマンド、およびファイルのリファレンス』を参照してください。

次の例では、指定したディレクトリに、すべてのデータベースがバックアップされます。

# db2bak /usr/iplanet/servers/slapd-siroe/bak/checkpoint


単一のデータベースのバックアップ

次の条件を満たしている場合は、ここで説明する方法を使用できます。

  • ディレクトリサーバが停止中である

  • 作成したバックアップを使って同じサーバにデータベースを復元する



     

    このバックアップ方法は、リモートサーバ上のデータベース (データベースリンクによって連鎖されたデータベース) のデータのバックアップには使用できません。またそのバックアップデータを使ってコンシューマまたはハブのレプリカを初期化することはできません。  



単一のデータベースをバックアップするには、次の手順を実行します。

  1. root としてコマンド行に次のコマンドを入力し、サーバを停止させます。

    Solaris 9 プラットフォーム

    # /usr/sbin/directoryserver stop

    その他のプラットフォーム

    # installDir/slapd-serverID/stop-slapd

  2. バックアップするデータベースが置かれたディレクトリに移動します。

    Solaris 9 プラットフォーム

    # cd /var/ds5/slapd-serverID/db

    その他のプラットフォーム

    # cd installDir/slapd-serverID/db

  3. このディレクトリ内のすべてのファイルを、作成したバックアップ用のディレクトリにコピーします。slapd-serverID/bak/ の下にディレクトリを作成しないでください。これは Directory Server Console が、このディレクトリ内のバックアップがグローバルなものであると認識してしまうためです。


dse.ldif 構成ファイルのバックアップ

Directory Server は、自動的に dse.ldif 構成ファイルをバックアップします。Directory Server を起動すると、dse.ldif ファイルのバックアップが、次のディレクトリの dse.ldif.startOKファイルに自動的に作成されます。

Solaris 9 プラットフォーム

/var/ds5/slapd-serverID/config

その他のプラットフォーム

/usr/iplanet/servers/slapd-serverID/config

dse.ldif ファイルの内容を変更する場合は、サーバが dse.ldif ファイルに変更を書き込む前に、config ディレクトリの dse.ldif.bak ファイルにバックアップされます。構成を保存する必要がある場合には、いずれかのファイルのコピーを作成してください。


すべてのデータベースの復元

次に、Directory Server Console を使って、あるいはコマンド行から、ディレクトリ内のすべてのデータベースを復元するための手順を示します。



 

データベースを復元するときは、サーバが動作している必要があります。ただし、復元中にデータベースの処理を行うことはできません。  




Console を使用したすべてのデータベースの復元

データベースが壊れた場合、Directory Server Console を使用して、以前作成されたバックアップからデータを復元できます。このプロセスでは、まずサーバを停止してから、データベースおよび関連するインデックスファイルをバックアップファイルからデータベースのディレクトリにコピーします。



警告  

データベースを復元すると、既存のデータベースファイルが上書きされます。  



以前に作成したバックアップからデータベースを復元するには、次の手順を実行します。

  1. Directory Server Console で、「タスク」タブを選択します。

  2. 「Directory Server の復元」をクリックします。

    「ディレクトリの復元」ダイアログボックスが表示されます。

  3. 「使用可能なバックアップ」リストからバックアップを選択します。あるいは、「ディレクトリ」テキストボックスに、有効なバックアップファイルの絶対パスを入力します。

    「使用可能なバックアップ」リストには、デフォルトディレクトリに置かれたすべてのバックアップが表示されます。

    Solaris 9 プラットフォーム

    /var/ds5/slapd-serverID/bak

    その他のプラットフォーム

    /usr/iplanet/servers/slapd-serverID/bak

  4. 「OK」をクリックすると、データベースが復元されます。


コマンド行からのデータベースの復元

次に示すスクリプトを使用すると、コマンド行からデータベースを復元できます。

  • bak2db コマンド (プラットフォーム上の directoryserver bak2db) を使用する。このスクリプトを使用する場合は、サーバを停止させる必要がある

  • bak2db.pl Perl スクリプト (Solaris 9 プラットフォーム上の directoryserver bak2db-task) を使用する。このスクリプトは、サーバが動作中でも実行できる


bak2db コマンド行スクリプトの使用
サーバの停止中にコマンド行からディレクトリを復元するには、次の手順を実行します。

  1. Root としてコマンド行に次のコマンドを入力し、サーバを停止させます。

    Solaris 9 プラットフォーム

    # /usr/sbin/directoryserver stop

    その他のプラットフォーム

    # installDir/slapd-serverID/stop-slapd

  2. バックアップディレクトリへの絶対パスを指定して bak2db コマンドを使用します。

    Solaris 9 プラットフォーム

    # /usr/sbin/directoryserver bak2db backupDir

    その他のプラットフォーム

    # installDir/slapd-serverID/bak2db backupDir

    このスクリプトの使い方については、『iPlanet Directory Server 構成、コマンド、およびファイルのリファレンス』を参照してください。



    警告  

    データベースを復元すると、既存のデータベースファイルが上書きされます。  



次の例では、デフォルトのバックアップディレクトリからバックアップを復元します。

# bak2db /usr/iplanet/servers/slapd-siroe/bak/2001_07_01_11_34_00


bak2db.pl Perl スクリプトの使用
サーバの実行時にコマンド行を使ってディレクトリを復元するには、次の Perl スクリプトを使用します。

Solaris 9 プラットフォーム

# /usr/sbin/directoryserver bak2db-task

Windows プラットフォーム

installDir> bin¥slapd¥admin¥bin¥perl slapd-serverID¥bak2db.pl

その他のプラットフォーム

# installDir/slapd-serverID/bak2db.pl

この Perl スクリプトの使い方については、『iPlanet Directory Server 構成、コマンド、およびファイルのリファレンス』を参照してください。



警告  

データベースを復元すると、既存のデータベースファイルが上書きされます。  



次の例では、ldif2db.pl スクリプトを使用して LDIF ファイルをインポートします。

Windows NT バッチファイル

iPlanet¥Servers¥bin¥slapd¥admin¥bin¥perl.exe
  iPlanet¥Servers¥slapd-siroe¥bak2db.pl
    -
D "cn=Directory Manager" -w password
    -a ¥iPlanet¥Servers¥slapd-siroe¥bak¥2001_07_01_1 1_34_00

UNIX シェルスクリプト

bak2db.pl -D "cn=Directory Manager" -w password \
  -a /usr/iplanet/servers/slapd-siroe/bak/checkpoint

次の表に、これらの例で使用されている bak2db.pl のオプションを示します。


表 4-5 例で使用した bak2db.pl オプションの説明

オプション

説明

-D

 

ディレクトリマネージャの DN を指定する  

-w

 

ディレクトリマネージャのパスワードを指定する  

-a

 

バックアップディレクトリの絶対パスを定義する  


単一のデータベースの復元

次の条件を満たしている場合は、ここで説明する方法を使用できます。

  • Directory Server が停止中である

  • 以前に作成した同じサーバ上の同じデータベースのバックアップからデータベースを復元する

単一のデータベースを復元するには、次の手順を実行します。

  1. root としてコマンド行に次のコマンドを入力し、サーバを停止させます。

    Solaris 9 プラットフォーム

    # /usr/sbin/directoryserver stop

    その他のプラットフォーム

    # installDir/slapd-serverID/stop-slapd

  2. 復元するバックアップが置かれたディレクトリに移動します。

  3. バックアップ内容で上書きするデータベースが置かれたディレクトリに、すべてのファイルをコピーします。データベースのディレクトリの位置は、次のとおりです。

    Solaris 9 プラットフォーム

    /var/ds5/slapd-serverID/db

    その他のプラットフォーム

    installDir/slapd-serverID/db

    たとえば、次のように入力します。

    cp backupDir/* /usr/iplanet/servers/slap-siroe/db/databaseDir


レプリケートされたエントリを含むデータベースの復元

ここでは、サプライヤサーバおよびコンシューマサーバ上のデータベースを復元させる方法、および復元後にサプライヤとコンシューマを同期させる方法について説明します。


サプライヤレプリカの復元

ほかのサーバ (サプライヤレプリカ) にデータを提供しているデータベースを復元する場合は、復元されたデータベースから更新を受け取るすべてのコンシューマレプリカ (コンシューマサーバ、ハブサーバ、マルチマスターレプリケーション環境ではほかのサプライヤサーバ) を初期化し直す必要があります。

復元されたデータベースの更新履歴ログは、復元処理中に消去されます。再初期化が必要であることを示すメッセージが、サプライヤサーバのログファイルに記録されます。

コンシューマの初期化については、第 8 章「レプリケーションの管理」を参照してください。


コンシューマレプリカの復元

サプライヤサーバ (supplier server) から受け取ったデータを含むデータベースを復元する場合、次のいずれの状況が想定されます。

  • サプライヤサーバでは、更新履歴ログのエントリの期限が切れていない

    ただし、更新履歴ログの最大維持期間属性で設定された値よりも短い期間内にバックアップが作成された場合に限られます。この属性は nsslapd-changelogmaxage という名前で、cn=changelog5,cn=config エントリ内に置かれます。このオプションについては、『iPlanet Directory Server 構成、コマンド、およびファイルのリファレンス』を参照してください。

    ローカル コンシューマ (consumer) を復元して通常の操作を続けることができます。ただし、コンシューマレプリカを復元中は、コンシューマサーバを停止する必要があります。コンシューマレプリカの復元中にレプリケーションが行われると、レプリケーションプロセスで多くのエラーが発生します。

  • ローカルバックアップ後のサプライヤサーバでは、更新履歴ログのエントリの期限が過ぎている

    コンシューマの初期化をやり直す必要があります。コンシューマの再初期化については、「コンシューマの初期化」を参照してください。

レプリケーション管理については、第 8 章「レプリケーションの管理」を参照してください。


dse.ldif 構成ファイルの復元

dse.ldif 構成ファイルを復元するには、サーバを停止してから、「単一のデータベースの復元」の手順に従って、自分のディレクトリ内に dse.ldif ファイルのバックアップコピーを作成します。データのコピーが完了したら、サーバを再起動します。

次のディレクトリ内に、dse.ldif ファイルのバックアップコピーが 2 つ作成されます。

Solaris 9 プラットフォーム

/var/ds5/slapd-serverID/config

その他のプラットフォーム

installDir/slapd-serverID/config

dse.ldif.startOK ファイルには、サーバ起動時に dse.ldif ファイルのコピーが記録されます。dse.ldif.bak ファイルは、dse.ldif ファイルに加えられた最新の変更内容のバックアップが含まれます。最新の変更内容を含むファイルを自分のディレクトリにコピーします。


前へ     目次     索引     DocHome     次へ     
Copyright © 2001 Sun Microsystems, Inc. Some preexisting portions Copyright © 2000 Netscape Communications Corp. All rights reserved.

Last Updated February 26, 2002