Dynamics CRM 2011 : Update Rollup 適用時にデータベースの更新を後から行う方法

みなさん、こんにちは。

今日は北米プレミアフィールドエンジニアチームのブログより、Microsoft
Dynamics CRM 2011 Update Rollup 適用時の Tips をお届けします。

情報元: Defer Database Updates Installing CRM 2011 Update Rollups

===================================================================

Microsoft Dynamics CRM 2011 Update Rollup のパッケージは、適用時に
各種アセンブリの更新だけでなく、全ての組織のデータベースに対する
更新も実行します。通常は問題ありませんが、非常に多くの組織をホスト
する環境では、アセンブリの更新とデータベースの更新を個別に行いたい
場合があるでしょう。

どちらの更新も最終的には一連の作業として完了する必要はありますが、
重要な組織から更新を適用するなど、コントロールが可能になります。
また特定の組織で発生するエラーによって、全体がロールバックされる
心配も減少します。

AutomaticallyInstallDatabaseUpdates Deployment 設定

AutomaticallyInstallDatabaseUpdates の値は既定値が True です。この場合
Update Rollup の適用時に組織データベースも同時に更新されます。

値を False に書き換えることにより、Update Rollup の適用時にはアセンブリ
の更新だけを行い、組織データベースの更新は行いません。後ほど管理者
によって、各組織データベースの更新を行うことになります。
組織データベース更新の方法は、展開マネージャーより組織の一覧を表示
し、更新が必要な組織を右クリックすることで更新を適用することが出来ます。
この更新によりユーザー定義関数やストアドプロシージャ、スキーマの変更
やインデックスの変更など Update Rollup に含まれるすべてのデータベース
の更新が実行されます。

この間組織に対するアクセスは行えません。

値の確認/変更方法

AutomaticallyInstallDatabaseUpdates の値の確認や変更は PowerShell で
行えます。

1. 展開サービスがインストールされているサーバーで PowerShell を起動。

2. 以下のコマンドを実行します。

>Add-PSSnapin Microsoft.Crm.PowerShell
> (get-CrmAdvancedSetting -ConfigurationEntityName "Deployment" -Setting "AutomaticallyInstallDatabaseUpdates").Attributes

また以下のコマンドで値を変更できます。

Add-PSSnapin Microsoft.Crm.PowerShell
$setting= New-Object "Microsoft.Xrm.Sdk.Deployment.ConfigurationEntity"
$setting.LogicalName = "Deployment"
$setting.Attributes = New-Object "Microsoft.Xrm.Sdk.Deployment.AttributeCollection"
$keypair = New-Object "System.Collections.Generic.KeyValuePair[String, Object]" ("AutomaticallyInstallDatabaseUpdates", $false)
$setting.Attributes.Add($keypair)
Set-CrmAdvancedSetting -Entity $setting

※ 設定を変えた場合、展開マネージャーにて各組織に手動で
更新を適用する必要があります。

設定を変えても、組織データベースに更新を適用する必要がある点は
変わりませんが、多くの組織をホストしている場合に、どの組織から
更新を行うかを選べる点や、Update Rollup の適用をアセンブリの更新と
データベースの更新に分けれる点は重要です。

===================================================================

まとめ

組織が数個程度の環境の場合、全ての更新を一度に行える方が効率
よく作業できますが、大規模環境では上記 Tips を活用いただき、運用
面で役に立つかご検討ください。

- Dynamics CRM サポート 中村 憲一郎