原创地址:http://www.cnblogs.com/jfzhu/p/4018153.html
转载请注明出处
(一)检查Customizations
从2011升级到2013有一些legacy feature是不再支持的了:
- CRM 4.0 plugin-ins
- CRM 4.0 client-side scripting
- CRM 4.0 custom workflow activities
- 2007 web service endpoint
- ISV folder support for custom web applications
- Solution Down Level tool
微软提供了Legacy Feature Check tool来帮助检查你的系统是否使用了这些legacy feature,另外还提供了Dynamics CRM 2011 Custom Code Validation Tool来帮助你检查系统中是否有不再支持的客户端代码。
(二)检查你的软硬件件是否支持Dynamics CRM 2013
具体参见Planning Guide for Microsoft Dynamics CRM 2013
(三)其他需要了解的事情
从CRM 4.0无法直接升级到2013,2011必须是从Rollup 6到Rollup 14+才可以升级到2013。
参见《Microsoft Dynamics CRM 2013 and 2011 Update Rollups and Service Packs》
升级后的数据库结构会有改变,Base table和Extension table将会合并,所以如果在2011里你有一些直接对数据库的操作,升级后这部分工作可能会失败,但是微软也为你推迟合并的升级方式,本文后面也会介绍到。
(四)升级测试
先做一次升级测试,以来检验一下升级过程之中和之后是否会出现问题,二来对升级所需要的时间(系统停止的时间)做到心中有数。
(五)升级方法
有三种方法:
- 使用一个新的SQL实例(推荐方法):也有一些文章管它叫Side-by-Side的升级方法,这种方法需要最短的system downtime,如果升级发生问题,可以最快速的恢复到旧的环境。
- 使用原来的SQL实例
- In-place upgrade(最慢,最不安全)
下面我们演示第一种升级方法
(六)Side-by-Side升级
1. 备份CRM 2011的数据库
2. 恢复数据库
演示环境有一台CRM服务器,一台SQL Server服务器,一台Report服务器。
CRM 服务器要先安装Dynamics CRM 2013,如何安装请参考《Step by step Dynamics CRM 2013安装》。
在SQL Server上恢复数据库备份文件。
3. 在CRM服务器上使用Deployment Manager来导入组织
打开数据库发现Base table和Extension table已经合并为一张表了。
(七)升级但推迟数据库表合并
1. 停用并删除刚才升级的组织
2. 删除数据库
勾选Close existing connections
3.重新恢复2011的数据库
4. 在CRM服务器修改注册表
CRM服务器上的一个注册表键值会决定升级时是否合并Base与Extension Table。
Location: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSCRM\MergeBaseAndExtensionTables
Type: DWORD (32-bit)
Value: 0表示不合并,1表示合并
如果存在该键值,就修改它为0,否则创建一个。
5. 在CRM服务器上使用Deployment Manager来导入组织
导入成功后,在SQL Server上看一下数据库结构,发现Base table和Extension table确实没有合并。
6. 使用CrmMergeBaseAndExtensionTableTool来合并双表
先将注册表中的MergeBaseAndExtensionTables的值改为1:
然后,可以使用CRM提供的一个工具来合并这两张表
(八)总结
- 升级前检查一下系统中是否有CRM 2013不支持的定制开发
- 检查2013的环境是否满足软硬件的要求
- 默认的升级过程会合并Base table和Extension table
- 最好在测试环境先做一下升级
- 推荐使用side-by-side的升级方法
- 如果想要推迟base和extension表的合并,可以通过修改注册表来实现,微软也提供了一个工具来帮助后期单独完成合并表的工作。