本次将详细讲解SharePoint2010向2013升级排错,2013环境的搭建排错可以参考上篇文章,即有关SharePoint2013环境搭建错误排查。
1、SharePoint2010和2013环境的准备
SharePoint2010的环境组成:Windows Server 2008 R2、SQL Server 2008、SharePoint2010、Project Server 2010以及数据库管理工具SSMS。
在SharePoint2010环境部署时,出现的问题集中出现在SharePoint的组件安装中,一些组件需要通过执行命令安装,直至预安装执行程序全部通过。
SharePoint2013的环境组成:Windows Server 2012 R2、SQL Server 2012、SharePoint2013w_SP1、Project Server 2013w_SP1以及数据库管理工具SSMS。
在SharePoint2013环境部署时,出现的问题也集中出现在SharePoint的组件安装中,一些组件需要通过执行命令安装,其他是一些补丁包的安装,这里可以参考之前有关2013环境搭建及排错的文章,详细地列出了补丁包的下载地址以及安装方式。
2、SharePoint2010数据库的备份
升级前要在SSMS的管理工具中找到数据库中的下列文件:ProjectServer_Archive、ProjectServer_Draft、ProjectServer_Published、ProjectServer_Reporting、WSS_Content五个数据库,分别右键点击数据库文件,点击任务下的备份进行数据库备份.
备份完成后,在刚才的备份路径下找到备份好的五个数据库文件,之后将这五个文件拷贝到2013环境的对应数据库路径下。
3、在管理中心以及SSMS删除内容数据库(2013环境)
进入SharePoint2013的管理中心,在应用程序管理中点击“管理内容数据库”,在点击界面中显示的数据库,在管理内容数据库的页面中,勾选“删除内容数据库”,完成后点击“确定”。
在管理中心删除内容数据库后,在SSMS数据库管理工具中,刷新数据库,如果该数据库仍存在,则需要再次手动将其删除。
4、安装Web应用程序以及服务应用程序
在管理中心,点击“管理服务应用程序”后,分别点击新建“PerfirmancePoint Service 应用程序”以及“Project Server Service Application”,之后点击“管理Web应用程序”,新建默认Web应用程序。
5、安装SQL Server Reporting Services服务应用程序
SharePoint 命令行,执行如下语句,安装服务和代理并启动服务
1、Install-SPRSService
2、install-SPRSServiceProxy
3、get-spserviceinstance -all |where {$_.TypeName –like "SQL Server Reporting*"} | Start-SPServiceInstance
新建Reporting Service的服务应用程序
6、2010数据库还原(2013环境)
还原数据库需要在SSMS数据库管理工具中,鼠标选中“数据库”,右键点击“还原数据库”,在还原数据库的选项卡中,点击“设备”,之后选择数据库存放的路径,在“选择备份设备”对话框中,点击“添加”。
之后便可在其中找到五个数据库文件,重复上述步骤,依次点击即可,之后按照提示点击“确定”,还原数据库即可,还原成功后会有提示并且会在SSMS数据库管理工具中刷新可看到。
6、执行SharePoint2010升级2013的命令
执行升级的命令需要以管理员身份运行SharePoint 2013命令行管理程序,接下来一一介绍升级命令以及对应成功的截图展示、排错等等,读者可参考微软提供的官方操作,以下是微软官方链接。
升级数据库和 Project Web App 网站集 (Project Server 2013) - Project Server | Microsoft Docs
接下来介绍SharePoint2010升级2013的命令(前提是上述步骤均已完成,包括2010环境及2013环境的搭建、在2010环境中制造测试数据并在SSMS中备份数据库文件、在2013环境将2010数据库文件在SSMS中还原成功):
第一阶段:SharePoint升级阶段
(1)、方案部署命令(如果2010环境不涉及部署,则该命令可不执行)
Add-SPSolution "wsp文件的URL"
示例:Add-SPSolution "C:\EpmWebparts.wsp"
(2)、检查SharePoint 2010数据库,以发现可能导致升级失败的错误
Test-SPContentDatabase -Name <contentdbName> -WebApplication <URL> -ServerInstance <servername>
示例:Test-SPContentDatabase -name WSS_Content2010 -webapplication http://win:80 -ServerInstance win
相关参数:
contentdbName:数据库名称(WSS_Content2010)
URL::(http://win:80)
servername:服务器名称(win)
下图是执行该命令后的提示信息,注意这里的UpgradeBlocking 标志设置为False值,如果遇到该值为True时,需要解决后再进行检查,直至UpgradeBlocking 标志设置为False。
(3)、附加和升级SharePoint内容数据库
Mount-SPContentDatabase -Name <contentdbName> -WebApplication <URL> -DatabaseServer <servername> -NoB2BSiteUpgrade
示例:Mount-SPContentDatabase -Name "WSS_Content2010" -WebApplication http://win:80 –DatabaseServer "win"-NoB2BSiteUpgrade
相关参数:
contentdbName:数据库名称(WSS_Content2010)
URL:(http://win:80)
servername:服务器名称(win)
下图是该命令执行完成后的示意图:
如果遇到上述结果图,显示当前的网站数量为10,这里我们只保留一个要升级的PWA站点,需要执行以下操作:
在“SharePoint管理中心”,找到“应用程序管理”,点击“网站集”下的“删除网站集”,选择好要删除的网站,点击“删除”,重复上述操作,直至只剩下一个要升级的PWA站点。
(4)、设置第二站点集管理员
Set-SPSite -Identity <sitecollectionName> -SecondaryOwnerAlias <account>
示例1:Set-SPSite -Identity http://win:80/pwa/ -SecondaryOwnerAlias "rdmp\epmadmin"
示例2:Get-SPSite http://win:80/pwa| Set-SPSite -SecondaryOwner " rdmp\epmadmin "
相关参数:
sitecollectionName:(http://win:80)
account:(rdmp\epmadmin)
下图是该命令执行结果:
此处报错提示“找不到带有Id or Url:http://win的SPSite对象”,注意检查该命令,该网站地址缺少PWA,所以会报错,执行正确的命令后结果如下:
(5)、更改认证方式
如果要在升级到 Project Server 2013 时将使用 Windows 经典身份验证的 Project Server 2010 用户迁移到基于声明的身份验证,则需要运行以下 Windows PowerShell cmdlet。 如果未完成此操作,则用户将无法在升级Project Web App登录。
(Get-SPWebApplication <webappURL>).migrateUsers($true)
示例:(Get-SPWebApplication http://win:80).migrateUsers($true)
相关参数:
webappURL:(http://win:80)
下图是该命令的执行结果:
(6)、检查PWA网站集
Test-SPSite -Identity <URL>
示例:Test-SPSite -Identity http://win:80/pwa
相关参数:
URL :http://win:80/pwa
该命令的执行结果如下图:
上述结果图中显示 “FailedWarningCounts”数量为1,但不显示有关失败的信息。此处需要将其进行排查并解决后才能继续升级,登陆http://win/pwa/_layouts/15/settings.aspx,这将提供指向"网站设置"页的直接链接。此时无法显示PWA,因为它尚未升级,并且仍处于SharePoint Server 2010模式,找到“网站集管理“部分,单击“网站集运行状况检查“。
在升级之前需要修复的问题如上图所示,点击右侧的“修复此问题”后,再次执行当前命令,最终结果图如下:
(7)、升级PWA站点
Upgrade-SPSite -Identity <URL> -versionupgrade
Upgrade-SPSite -Identity http://win:80/pwa –VersionUpgrade
相关参数:
URL:http://win:80/pwa
该命令的执行结果如下图:
第二阶段:ProjectServer升级阶段
(1)、将Project Server 2010数据库合并到Project Web App数据库
Convertto-SPProjectDatabase -WebApplication <URL> -Dbserver <databaseServerName> -ArchiveDbname<ArchivedbName> -DraftDbname<DraftdbName> -PublishedDbname<PublisheddbName> -ReportingDbname<ReportingdbName> -ProjectServiceDbname<ProjectWebAppdbName>
Convertto-SPProjectDatabase -WebApplication http://win:80/ -Dbserver win -ArchiveDbname ProjectServer_Archive -DraftDbname ProjectServer_Draft -PublishedDbname ProjectServer_Published -ReportingDbname ProjectServer_Reporting -ProjectServiceDbname ProjectWebApp
相关参数:
URL:(http://win:80)
databaseServerName:(win)
ArchivedbName:(ProjectServer_Archive)
DraftdbName:(ProjectServer_Draft)
PublisheddbName:(ProjectServer_Published)
ReportingdbName:(ProjectServer_Reporting)
ProjectWebAppdbName:(ProjectWebApp)
该命令的执行成功结果如下图:
(2)、将Project Services数据库附加到Web应用程序
Mount-SPProjectDatabase -Name <ProjectWebAppdbName> -WebApplication<URL> -DatabaseServer <databaseServerName>
Mount-SPProjectDatabase -Name ProjectWebApp -WebApplication http://win:80 -DatabaseServer win
相关参数:
ProjectWebAppdbName:(ProjectWebApp)
URL:(http://win:80)
databaseServerName:(win)
该命令的执行成功结果如下图:
(3)、检查Project Web App数据库是否存在会导致升级失败的错误
Test-SPProjectDatabase -Name <contentdbName> -DatabaseServer <DBServerName>
Test-SPProjectDatabase -Name ProjectWebApp -DatabaseServer win
相关参数:
contentdbName:(ProjectWebApp)
DBServerName:(win)
该命令的执行成功结果如下图:
此处要着重解决UpgradeBlocking标志设置为True值的任何错误,当然UpgradeBlocking 标志设置为False值的错误也可以解决一下,比如这里的数据库角色对架构不具有权限,可以在SQL里进行处理。
数据库新建查询命令:
CREATE ROLE [PSDataAccess] AUTHORIZATION [dbo]
GO
CREATE ROLE [PSReportingSchemaAdmin] AUTHORIZATION [dbo]
GO
GRANT INSERT ON SCHEMA :: pub TO PSDataAccess;
GRANT select ON SCHEMA :: pub TO PSDataAccess;
GRANT UPDATE ON SCHEMA :: pub TO PSDataAccess;
GRANT DELETE ON SCHEMA :: pub TO PSDataAccess;
GRANT VIEW DEFINITION ON SCHEMA :: pub TO PSDataAccess;
GRANT References ON SCHEMA :: pub TO PSDataAccess;
GRANT INSERT ON SCHEMA :: dbo TO PSDataAccess;
GRANT select ON SCHEMA :: dbo TO PSDataAccess;
GRANT UPDATE ON SCHEMA :: dbo TO PSDataAccess;
GRANT DELETE ON SCHEMA :: dbo TO PSDataAccess;
GRANT VIEW DEFINITION ON SCHEMA :: dbo TO PSDataAccess;
GRANT References ON SCHEMA :: dbo TO PSDataAccess;
GRANT INSERT ON SCHEMA :: ver TO PSDataAccess;
GRANT select ON SCHEMA :: ver TO PSDataAccess;
GRANT UPDATE ON SCHEMA :: ver TO PSDataAccess;
GRANT DELETE ON SCHEMA :: ver TO PSDataAccess;
GRANT VIEW DEFINITION ON SCHEMA :: ver TO PSDataAccess;
GRANT References ON SCHEMA :: ver TO PSDataAccess;
GRANT INSERT ON SCHEMA :: draft TO PSDataAccess;
GRANT select ON SCHEMA :: draft TO PSDataAccess;
GRANT UPDATE ON SCHEMA :: draft TO PSDataAccess;
GRANT DELETE ON SCHEMA :: draft TO PSDataAccess;
GRANT VIEW DEFINITION ON SCHEMA :: draft TO PSDataAccess;
GRANT References ON SCHEMA :: draft TO PSDataAccess;
GRANT CREATE VIEW TO PSReportingSchemaAdmin WITH GRANT OPTION
GRANT CREATE TABLE TO PSReportingSchemaAdmin WITH GRANT OPTION
GRANT Alter ON SCHEMA :: dbo TO PSReportingSchemaAdmin
以上命令可选择执行,再次运行Test命令,显示结果如下:
(4)、升级Project Web App数据库
Upgrade-SPProjectDatabase -Name <ProjectWebAppdbName> -WebApplication <URL> -DatabaseServer <databaseServerName>
Upgrade-SPProjectDatabase –Name ProjectWebApp -WebApplication http://win:80 -DatabaseServer win
相关参数:
ProjectWebAppdbName:(ProjectWebApp)
URL:(http://win:80)
databaseServerName:(win)
该命令的执行成功结果如下图:
(5)、装载Project Web App实例
Mount-SPProjectWebInstance -DatabaseName <ProjectWebAppdbName> -SiteCollection<URL> -DatabaseServer <databaseServerName>
Mount-SPProjectWebInstance -DatabaseName ProjectWebApp -SiteCollection http://win:80/pwa -DatabaseServer win
相关参数:
ProjectWebAppdbName:(ProjectWebApp)
URL:(http://win:80)
databaseServerName:(win)
该命令的执行成功结果如下图:
(6)、检查Project Web App实例是否存在会使升级失败的问题
Test-SPProjectWebInstance -Identity <URL or Site ID>
Test-SPProjectWebInstance -Identity http://win:80/pwa
相关参数:
URL or Site ID:(http://win:80/pwa)
该命令的执行结果如下图:
此处报红提示:未将对象引用设置到对象的实例,可以跳过该错误,不影响后续的升级。
(7)、升级Project Web App实例
Upgrade-SPProjectWebInstance -Identity <URL or site ID>
Upgrade-SPProjectWebInstance -Identity http://win:80/pwa
相关参数:
URL or Site ID:(http://win:80/pwa)
该命令的执行成功结果如下图:
上图的结果图中显示数据库队列失败,此处的解决办法是:找到对应位置下的日志文件,查询该错误的解决方式,最终参考以下链接,排查数据库在备份时,PWA站点中是否存在队列正在运行或者堵塞等。
确保没有这些队列问题后再次备份数据库,重新配置服务器场,删掉现有的内容数据库、Web应用程序以及服务应用程序等,再次执行以上的全部命令,最终结果图如下:
(8)、启用Project Web App功能
Enable-SPFeature -Identity pwasite -URL <ProjectSiteCollection>
Enable-SPFeature -Identity pwasite -URL http://win:80/pwa
相关参数:
ProjectSiteCollection:(http://win:80/pwa)
该命令的执行成功结果如下图:
接下来打开Project Web App URL 以查看升级后的网站和数据,保证可以看到升级后的项目,并且可以正常打开项目网站。
至此,SharePoint2010升级到SharePoint2013成功,下一篇讲解SharePoint2013升级到SharePoint2016。