2009年10月16日金曜日

[ILM2007→FIM2010]データベースごと移行してみる

先日のエントリに引き続きILM2007→FIM2010への移行に関してです。


FIMは以下の3つのコンポーネントで構成されているのは以前紹介したとおりです。(CLMも含めると4つ)

(ILM部分)
・FIM Synchronization Service(ILM Synchronization Service)
・FIM Service(ILM Service)
・FIM Portal/Password Portal(ILM Portal/Password Portal)
(CLM部分)
・ILM Certificate Management Service


この中でMIIS/ILM2007の時代から存在していたのはFIM Synchronization Serviceだけなので、基本的に「移行」ということになるとこのサービスが対象となります。

先日は新規にFIM2010をセットアップしてILM2007の設定をExport→Importで移行する、という方法でしたが、今回はデータ(MetaVerse、ConnectorSpaceの中身や実行ログなど)を含めごっそり移行する方法を試してみます。


基本的な流れは下記の通りです。
1.SQL Server 2005→SQL Server 2008へのアップグレードを行う
2.アップグレードしたSQL Serverを使用してFIM2010をセットアップする


早速試してみましょう。



と言ったものの結果的に言うとFIM2010RC1ではこの方法はうまく行きません。

ILM"2"RC0の頃はフォーラムにも書かれている通りこの方法でうまく移行が出来ていました。

フォーラムにはDLLのリコンパイルやMicrosoft.metadirectoryservicesex.dllの入れ替えなども必要、とありますが少なくとも私の試した限りそのような作業はしなくてもILM2007の時と同様の動きが再現出来ました。

今更ですが簡単に流れを紹介しておきます。
1.移行対象のILM2007の使用しているSQL ServerをSQL Server 2008へアップグレードする
2.ILM Synchronization Serviceをインストールする際に1のデータベースを指すようにDBサーバとインスタンスを指定すると既存のデータベースを再利用するかどうかをインストーラが聞いてくるのでYESを指定する
3.既存データベースにアクセスするためにkeyファイルが必要、と言われるのでILM2007で作成しておいたkeyファイルをインストーラに読み込ませる
4.インストール完了!















この手順でRulesExtenstionのDLLファイルまで含め環境の再現が出来ていました。データベースの移行だけで何故か物理的なDLLファイルまで再現されるのには驚きました。
※ただ、MADATAフォルダだけは移行されないので手動でコピーしてあげる必要がありました。



と、RC0の話をこれ以上詳しくしても仕方がないのでRC1で何故この手順が失敗するのかを見ていくと、答えはFIM Synchronization Serviceが使うデータベースの名前にありました。

下の画面を見るとわかるとおりデータベースの名前が変わってしまっているため、既存で使っていたインスタンスを指定しても既存のデータベースを使わずに新規にデータベースを作成してしまっています。
















バージョン毎のデータベースの名前は下記のようになっています。

バージョンデータベース名
MIISMicrosoftIdentityIntegrationServer
ILM2007
ILM"2"RC0
FIM2010RC1FIMSynchronizationService





ということで、データベースの名前をあらかじめ変更することが必要なのか、それともFIM2010RC1のインストーラに古いデータベース名でも移行元として認識させる方法があるのか少し調べる必要がありそうです。

0 件のコメント: