在我们实际使用过程中,会遇到域服务变更、迁移或重装AD服务器等问题。因为SharePoint等微软系列产品对域环境的依赖性。当发生以上问题时,对SharePoint的影响是相当高的。 注:避免发生以上问题,是我们最值得思考的。通常,我们应该做域服务的高可用和负载均衡等架构模式,确保域服务不会宕机。
当域环境发生变化时,我们会考虑到SharePoint中的用户以及权限这两个问题。SharePoint中的同步用户配置文件会将AD中的用户信息集成到数据库中,它们之间的关联是通过AD的SID属性来实现的。
迁移步骤如下:
1、数据库服务器迁移
将数据库服务器退域并加入新的域中。然后将SQL Server的那几个服务的运行账户更改为新域下的账户,并重启数据库服务。
打开数据库管理器,在“安全性”中添加新域下的管理员账户。
2、SharePoint的FE迁移
启动“SharePoint配置向导”,选择断开现有服务器场连接。
删除数据库服务器中除wss_content数据库之外的其他SharePoint数据库。
将SharePoint服务器退域并加入新域。
重新打开“SharePoint配置向导”,创建新服务器场。
打开wss_content内容数据库,将userinfo表字段进行更改,将原账号更改为新域下的账号,还要通过Suser_Sid()函数获取SID值来更新tp_systemid字段,执行的数据库脚本如下: DECLARE @Login Varchar(40), @Systemid Varbinary(128) DECLARE Curusers CURSOR LOCAL FOR SELECT Tp_Login, Tp_Systemid FROM Userinfo Where Tp_Deleted = 0 OPEN Curusers FETCH NEXT FROM Curusers INTO @Login, @Systemid WHILE @@FETCH_STATUS = 0 BEGIN Begin Try PRINT 'Resetting Login ' + @Login + ' To New Login ' Update Userinfo Set Tp_Login=Replace(Tp_Login, '旧域名\','新域名\') WHERE CURRENT OF Curusers End Try Begin Catch PRINT 'Resetting Login ' + @Login + ' Failed! ' PRINT Error_Message() End Catch Begin Try PRINT 'Resetting SID ' + @Login + ' To New SID ' PRINT Suser_Sid(@Login) UPDATE Userinfo SET Tp_Systemid = Suser_Sid(Tp_Login) WHERE CURRENT OF Curusers End Try Begin Catch PRINT 'Resetting SID ' + @Login + ' Failed! ' PRINT Error_Message() End Catch FETCH NEXT FROM Curusers INTO @Login, @Systemid END CLOSE Curusers
进入SharePoint管理中心,在User Profile Service Application应用程序中执行完整同步。
|