久しぶりですね。。。
なのに自分的メモを書いたりしてごめんなさい。
今日は Exchange Server 2010 SP1 で機械を壊してしまったとき、データベースのバックアップをどのようにして新しい機械に移すかという、つまり自分的なメモです。
1.故障した機械のデータベースフォルダへ移動、ESEUTIL を実行しデータベースをコミットする。
ESEUTIL /R E01
成功しない場合は以下の修復を行う。
Eseutil /MH "XXXXXXX.edb"
Eseutil /R E01 /I /d
それでも解決しない場合は
Eseutil /p XXXXXXX.edb
何度か組み合わせを変えて実行したりすると、直ったりします。
2.新しい機械でデータベースを作成する。
例えば、SDC_MAILBOX というDBを C:\DataBase\SDC_MAILBOX フォルダに作ります。
New-MailboxDatabase -Name SDC_MAILBOX -Server SDC32 -EdbFilePath C:\DataBase\SDC_MAILBOX\SDC_MAILBOX.edb -LogFolderPath C:\DataBase\SDC_MAILBOX
3.作成した新しいデータベースをリストア可能な属性にセットする。
Set-MailboxDatabase SDC_MAILBOX -AllowFileRestore:$true
4.作成した新しいデータベースのフォルダに、edbやlog、カタログ等をすべてコピーする。
このとき、.edbファイルの名称を古いデータベースの名称から新しいデータベースの名称に変えるのを忘れずに。
5.新しいデータベースをマウントする。
Mount-Database SDC_MAILBOX
マウントに成功すれば終わったも同然です。
6.ユーザーアカウントのパスを新しいデータベースへ変更する。
古いメールボックスデータベースは "Mailbox Database" とします。
データベースが既に存在しなくともパスのみを変更しますので、元の実体DBがなくとも大丈夫です。
Get-Mailbox -Database "Mailbox Database" |where {$_.ObjectClass -NotMatch '(SystemAttendantMailbox|ExOleDbSystemMailbox)'}| Set-Mailbox -Database SDC_MAILBOX
これで完了です。
壊れたという事は、間違いなくデータベースはクリーンシャットダウンしていませんので、最初に ESEUTIL が必要になります。
ESEUTIL /R E01 などは必ず修復するターゲットの edb があるフォルダに移動して行ってください。E01 はデータベースの数に応じて、E01、E02・・・と番号が増えていますので適切に変えてください。
以上、自分的メモでした。
まあ、それにしても Exchange 2010 SP1 になって、やっとある程度安心して使えるようになった気がします。
データベースのコピーを複数の Server が持つ事もできますし、以前よりずっと信頼感が増しました。
うちの部下の信頼感もバージョンアップしてほ(ry