当前环境
:创建新的服务器场,所有服务都运行在该服务器上。
OS: Windows Server 2003 SP2 (EN)
.Net Framwork 3.5 SP1
SQL Server 2008 (SP1)
SharePoint 2007 (SP2)
服务器并不在域环境中。
SharePoint - 8080 (门户网站)
SharePoint - 8181 (SSP个人网站HOST)
Sharepoint - 8180 (SSP管理站点)
目标环境 : 与原环境一致
以前迁移过一次,当时还是刚接触SharePoint的菜鸟,用的方法是sharepoint自带的备份和还原,事实证明微软自带的备份还原平时用来备份下网站集或是SSP还可以,用来迁移就不敢恭维了。服务器并不是域环境,所以用户的迁移当时成了很头疼的问题,尝试了adduser,copypwd工具没成功后只能一个一个的重新添加,而且由于SID不同步,又把所有sharepoint用户干掉重新添加分组。(鄙视我吧,无知真可怕)。
参考链接:
这次参考了直接迁移数据库的方法:
http://www.cnblogs.com/SoulStore/archive/2007/05/14/745508.html
同时也决定规划一下相应的用户。
一 准备工作
在原服务器场备份除配置数据库SharePoint_Config和管理中心数据库SharePoint_AdminContent外的所有数据库: 比如
webapplication 对应的content database, ssp service database, ssp search databse等.
二 用户规划
安装用户: 安装sharepoint的用户
管理站点配置数据库连接用户: 这个用户会被认定为system account
wss search service 服务账户
wss search content access user:
office Farm Search Service Account:
每个web application : application pool account 应用程序池标识用户,
ssp Service Credentials : Specify the credentials for the SSP Web services to use for inter-server communication
and for running SSP-scoped timer jobs
三 环境安装
OS --》 IIS --》 .Net Framework2.0 -》 .Net Framwork 3.5 --》 SQL Server 2008 (EN) --》 SQL Server 2008 SP1
--》 SharePoint 2007 --》 sharepoint 相关补丁
四 配置
1. 安装完补丁后运行配置向导完成sharepoint的配置。
2. 进入管理中心,开启Excel Caculation Service, Windows sahrepoint service help search, office sharepoint service
search服务.
3. 在SQL Server Enterprise Manager中,还原所有之前备份的SharePoint相关的数据库,除了配置数据库SharePoint_Config和管
理中心数据库SharePoint_AdminContent
4. 通过管理中心新建立web应用程序,并删除所关联的内容数据库
新建 Sharepoint -8080, Sharepoint- 8181, Sharepoint - 8180 应用程序
删除系统自动生成的关联内容数据库,附加上还原好的原内容数据库
5. 还原SSP:
这一步我按照参考链接里的步骤去做是始终会报错:
1) 开始是提示权限不够访问ssp的内容数据库,可能是因为附加过来的,所以sharepoint无法自动添加现有服务器场用户对该内容
数据库的权限。给场用户添加了数据库权限后不在提示这个错误
2) 设置好数据库权限后又会提示“未将对象引用到实例”,可能是我的个人网站HOST有问题吧,只有新建一个个人网站HOST。
设置好了,开始还原,将SSP Service database 和SSP Search database 设置为还原过来的对应数据库。
等待一会,提示成功。
五 用户的导入导出
虽然内容已经成功还原过来,但是SSP里存储的UserProfile对应的用户SID是旧服务器上的,同时原服务器上采用的是Windows验证,
已经存在几百个用户,所以这里会用到微软工具包里的一些工具
参考链接:
http://apps.hi.baidu.com/share/detail/30554350
特别注意的是
1. 这两个命令一定要在源主机上执行,不可以远程控制执行。如果只能远程控制,可以添加开机计划任务。
2. 导出的用户和组要进行筛选,比如一些系统用户,数据库用户,IIS用户等,我认为我们要导入的只是sharepoint关联的用户而已。
其他的可以删除掉
3. 导入用户时记得选择密码策略,比如说用户密码是否过期。。。
六 MigrateUser
用户及密码导入成功后,剩下的就是如何同步新服务器上用户与Sharepoint User的SID同步了,幸好Sharepoint提供了一个同步的
方 法:
STSADM -O MigrateUser -oldlogin "旧域名/用户名" -newlogin "新域名/用户名“ (这里的域名就是计算机名了)
当然了,这个命令貌似只能一次一个,用*代替似乎不可行。 于是写了个批处理,从上一步导出的用户文件里读取用户名(当然也要自己
根据情况筛选的),然后一个一个进行同步。
@echo off
set stspath="D:/Program Files/Common Files/Microsoft Shared/web server extensions/12/BIN/STSADM.EXE"
for /f "skip=1 delims=," %%i in (users.txt) do (
%stspath% -o migrateuser -oldlogin ccpswt/%%i -newlogin ccpsp/%%i.hp -ignoresidhistory
)
pause>nul
当然了,这中间碰到的问题是每次执行命令的时候,第一次总是会提示失败(但我明明到SSP中UserProfile已经改变了),然后同样的
命令执行第二遍才提示成功。所以只有把批处理执行了两遍,汗!!
搞定以后用以前的账号密码登陆,提示成功。