5.3 eDirectoryアップグレード前にドライ実行を実施する

パッケージをアップグレードする前に、ndsupgを使ってドライ実行を実施することができます。このユーティリティ単体を、サポート対象の全プラットフォーム上のコピーされたデータベースに使用できます。ドライ実行の実施中でも、eDirectoryサービスを使用できるというメリットがあります。

この場合に、-dオプションを指定すると、アップグレードユーティリティ自体がDIBのコピーを作成し、そのコピーに対してアップグレードを実行します。データベースの整合性を確保するため、データベースのコピー中は、ds.nlmをアンロードしてください。アップグレードでコピーの作成が必要になるので、データベースの2倍のサイズが必要です。

5.3.1 アップグレードプロセス中によく発生する問題

次のFAQセッションでは、eDirectoryの以前のバージョンからeDirectory 8.8にアップグレードする際に発生する一般的な問題について説明します。

質問: eDirectory 8.7.xからeDirectory 8.8にアップグレードしています。エラーが発生して、アップグレードプロセスが失敗しました。eDirectory 8.7.xのサーバが起動しなくなりました。

回答: 8.7.xからeDirectory 8.8へのアップブレード中、データベースでは2段階のアップグレードが発生します。最初の段階では、eDirectory 8.8で導入された、暗号化された属性サポートに対してキーペアが作成されます。第2段階では、リファレンス変更のDIBアップグレードが発生します。第1段階後の第2段階で障害が発生した場合、既存のバイナリ(eDirectory 8.7.x)はデータベースを開くことができなくなります。これはデータベースがすでに8.8レベルにアップグレードされていて、このアップグレードを反映するようにデータベースのバージョンが変更されているためです。eDirectory 8.8へのアップグレードを実行する前に、データベースのバックアップを作成することをお勧めします。詳細は、「セクション 7.2, オペテーティングシステムをアップグレードしないでeDirectory 8.8 SP8へマイグレーションする」を参照してください。

質問: アップグレードプロセスに時間がかかるように思われます。

回答: アップグレードではデータベース全体がスキャンされ、すべてのオブジェクトのリファレンス属性を確認します。データベース内のオブジェクト数によっては、このプロセスに時間がかかることがあります。500万個のオブジェクトがあり、そのすべてのオブジェクトにリファレンス属性が設定されているデータベースの場合、数時間かかることがあります。

質問: アップグレードプロセスで、ストレージの容量を大量に必要にするように思われます。

回答: リファレンスアップグレード全体は1つのトランザクションで実行する必要があります。また、アップグレードが失敗した場合に備えてトランザクションのロールバックが必要となるため、FLAIMはnds.dbファイルに変更したブロックを保持します。このため、アップグレードプロセス中、nds.dbのサイズが増加する場合があります。これはまったく問題ありません。nds.00v、nds.002などのファイルが生成されることもあります。アップグレードプロセスでは、アップグレードするオブジェクト数に応じて、最大2倍のディスク容量が必要になります。たとえば、15GBのDIBサイズでDIB内のすべてのオブジェクトにリファレンス属性が設定されている場合、さらに15GBの空き容量が必要になります。

質問: 間違ったパスワードや管理者ユーザを入力した場合でも、eDirectoryデータベースのアップグレードが進行します。

回答: eDirectoryパッケージのアップグレードとデータベースのアップグレードは、ファイルシステムの権限に基づいて実行されます。アップグレードにeDirectory管理者パスワードは使われません。これには、アップグレード開始後に、ログインが失敗することがあるという2次的影響があります。ndsconfig upgradeコマンドを次回実行した場合、パスワードチェックは必ず実行されます。

質問: 管理者パスワードを間違って入力しました。アップグレードが失敗したので、もう一度アップグレードを実行し、正しいパスワードを入力しました。この場合もアップグレードに長い時間(すべてのオブジェクトにリファレンス属性が設定された500万個のオブジェクトに1時間)がかかり、初期画面が表示されました。

回答: eDirectoryはデータベースの別のコンテナにリファレンス属性を保持しています。初期表示の遅延は、FLAIMが「リファレンス」属性レコードを保持しているデータベースコンテナを削除するのに時間がかかるためです。