最近一直在忙SharePoint2007升级到2010的问题。
大致的情况是这样的,原来的服务器场是两个服务器的场,一个前端一个数据库。具体环境如下:
服务 |
版本 |
|
操作系统 |
软件 |
|
SharePoint前端应用服务器 |
Microsoft Windows Server 2003 R2 Enterprise x86 Edition SP2 |
SharePoint:Microsoft Office SharePoint Server 2007 x86 v12.0.0.6421 WSS 3.0 or MOSS 20071 SP2 (KB953338 + KB953334) |
SharePoint内容数据库服务器 |
Microsoft Windows Server 2003 R2 Enterprise x64 Edition SP2 |
Microsoft SQL Server 2008 R2 Enterprise x64 Edition |
要求呢,是把这样的一个2007的场,升级到2010的场,扩展到五台服务器(两前端两应用一DB)的场,还要打满SP1补丁。
然后呢,我被提供了这样的一个由虚拟机构成的三台服务器的初始场环境(一前端以应用一DB)的测试环境,并且和我说明,数据库服务器不变,环境不变,还用原来的sqlserver 2008 Enterprise x64 r2.当前环境下,一台SharePoint环境的机器和这个DB服务器已经在一个场里。具体环境如下:
服务器 |
版本 |
|
操作系统 |
软件 |
|
SharePoint应用服务器 |
Microsoft
Windows Server 2008 R2 Enterprise x64 Edition SP2 |
SharePoint:Microsoft Office
SharePoint Server 2010 enterprise x64 |
SharePoint内容数据库服务器 |
Microsoft
Windows Server 2003 R2 Enterprise x64 Edition SP2 |
Microsoft
SQL Server 2008 R2 Enterprise x64 Edition |
SharePoint前端服务器 |
Microsoft
Windows Server 2008 R2 Enterprise x64 Edition SP2 |
暂无 |
当然,我的参照物还有一个,另一台虚机与这个DB服务器构成的原服务器场。
要求我在当前测试环境环境下,完成2007升级到2010的问题。
我尽量说的更好理解一点,因为我也觉得这事摆在我面前的时候乱极了。
我理了一下思路,初步决定按照如下的步骤执行:
1,先把场搭起来,当前状态的服务器场是由一个SharePoint环境的服务器和指定的DB服务器构成,索性就把这个当应用服务器了,只需要再加个前端进来。
2,把SharePoint环境打满最终SP1的补丁,这样起码有个干干净净的目标场结构了。
3,在这样一个干干净净的场里,做附加数据库,完成“升级”的过程。
有了上述的思路并不容易,其中我走了很多弯路,但是由于时间比较急,没有做过一些必要的记录或截图,这事发生的比较近,我试着把我经历的重要的环节都写下来。
a,上面第一步时候就废了很大的功夫,找了很久的原因,发现初始化状态的测试环境并不是干净的,具体表现在我把另一台服务器安装上Sharepoint Server 2010 Enterprise x64 r2以后,配置过程中无论如何也不能把它搞到场里去。最后在管理中心的“查看产品和修补程序的安装状态”中查看了服务的版本号,都是没打补丁以前的(具体是啥我忘记了,当时没截图,反正是比较低的),又在“服务器场中得服务器”上查看了配置数据库的版本号,是打过sp1以后的(这个我知道,是14.0.6029.1000)。大概知道了原因,由于是虚拟机搭的测试环境,之前的场前端还原到原始快照了,而DB服务器的虚机没有还原回去,导致配置服务器版本上去了。
我的解决办法是:应用服务器(被还原回上一快照,原本就在场里的那个服务器)打满补丁,然后把我自己装的那个sharepoint前端服务器(想加到场里加不进去的)打满补丁。然后再在应用服务器上执行一遍配置向导,最后在前端服务器执行配置向导的时候,把前端加到现有场里。
这里先要推荐两篇博文
kaneboy的《关于SharePoint 2010 SP1》。
英年早肥的《SharePoint Server 2010 RC 安装图解》。
kaneboy的博文有两点使我受益匪浅,第一点呢,他说了打在一台前端Or应用服务器上sp1包的步骤,我归纳一下(不侵权吧)就是在刚装完(除此啥也没装)sharepoint server 2010 Enterprise x64 r2 的机器上,先装中文语言包(后面说的语言包都是它的补丁,当然要先打)。然后打 Foundation 2010 SP1(KB2460085)和对应的语言包(KB2460059)。然后打sharepoint server 2010 SP1(KB2460045)和对应的语言包(KB2460056)。接下来什么office web apps、project等等就没什么顺序可言了,你需要什么就装什么,再打sp1补丁就是了(当然,要先安装了程序,才能成功打上程序补丁)。第二点呢,Kaneboy提到了在一个场里打SP1补丁的顺序,我继续无耻地归纳一下(真不侵权吧),在一个复杂的场结构里,先打管理中心的(术语叫“宿主”,当然要先打),然后打应用服务器的(应用比起只需要做NLB负载均衡的前端,当然优先级高一些,我就这么理解的),最后打前端的。然后还按照这个顺序依次执行配置向导。实际上这第二点没有直接帮到我,根据我之前所叙述的,我是先打的补丁然后才把前端搞到场里去。所以Kaneboy的第二点隐含的意义是,如果你有场了,要打SP1,那么按照那个步骤打;如果你场没搭完呢,想把SharePoint应用或者前端搞到场里面去,那么你要保证版本一致,否则你执行配置向导绝对搞不进去。(补丁地址去Kaneboy博文中去找)
肥肥的博文呢,很详细的描述了安装sharepoint2010的步骤,对我这样的2010新手很有帮助,我之所以找到他的这篇博文,是因为,我在前端服务器上执行配置向导,试图把它搞到场里的过程中,看见了一个叫做“服务器场安全密码”的东东,我当时懵了。然后找到了这篇博文,果然,2010新加的东西,果断给搭测试环境的人打电话要密码。
以上过程最终的结果就像我之前思路的前两部一样,我有了一个目标版本的场环境。好吧,接下来是升级的过程。
一样的,对这个事一头雾水,还是做了一些准备工作,推荐博文:
kaneboy的《TechED 2010 上的课程》(里面有关于moss升级的PDF,自己找)
实际上老早以前(我最开始的思路就是根据这个定下来的)我就看到这个博文,果断选择所谓“附加升级”方式,感觉这个过程更像迁移,不像升级。
具体步骤呢,首先,搞到db的备份,然后在管理中心里新建一个80端口的应用程序(如果建过了,就不用再建了),然后管理中心里,80端口应用程序的内容数据库干掉(下拉框脱机、复选框删除全选上)。然后呢用第一步做的db备份覆盖还原到80端口应用程序舍弃的内容数据库,当然覆盖原有库、还原过程中中断数据库连接(好像是这么写的,我自己的本子还没环境)都选上。然后管理中心服务器上启动PowerShell(这个玩意不是新玩意,但是是微软推广的用来替换掉stsadm工具的新东东)我还没琢磨透,确实是v2.0版本,不知道为什么不像网上说的可以自动注册SP的命令,知道的大侠可以留言告诉我。还是手动注册了一下,用一下命令:
$ver = $host | select version
if ($ver.Version.Major -gt 1) {$Host.Runspace.ThreadOptions = "ReuseThread"}
Add-PsSnapin Microsoft.SharePoint.PowerShell
Set-location $home
注册上了以后,命令行的开头都是以“PS ”开头的,貌似说明注册成功了。然后用以下命令附加内容库。
Mount-SPContentDatabase -Name <DatabaseName> -DatabaseServer <ServerName> -WebApplication <URL> [-Updateuserexperience]
命令都是死的,语法规则一看就明白。和stsadm偏离不远。
执行以后会走百分比。然后提示我附加完成,但是有错,还有个错误日志。我看了一下日志,大概意思都是ID什么的什么怎么着了(具体什么样忘了反正都有ID)。感觉有错的原因是之前07网站上有些自定义的内容,这些内容经过x86到x64的过程,果断有错。这些是我猜的,呃。
有错没关系,看网站。自定义的内容(需要引用自定义dll的开发的内容)在升级后都有错,这个事是正常的现象,需要重新部署。再在管理中心上开启了必要的服务,服务应用程序上加了office web apps相关的服务,检查网站看一下word、excel、ppt是否可以在IE浏览器打开(那个silverlight窗口确实很不错)都没问题。在网站集功能和网站功能激活必要功能,sharepoint自带的工作流(非designer定制)也可用,没问题了。自定义dll再部署的事暂时先搁置,原07环境SSP没有什么内容(moss2010没有ssp概念了,要是ssp有内容的话是用新的“服务应用程序”重新配出来吗?!或者通过附加ssp服务器的方式可以吗?!欢迎大家留言指导),宣布升级成功。
升级后,如我所说,sharepoint自带的工作流是可用的,但是spd定制的内容和需要引用自定义dll的自定义内容是有问题的。据我所知(查了一些资料),前者没办法搞,后者需要重新部署。
以上是我这次升级的全部过程,欢迎大家讨论,如有细节描述有误,欢迎大家指正。