将内容数据库升级到 SharePoint Server 2019
适用于:2013 2016 2019 Subscription Edition SharePoint in Microsoft 365
从 SharePoint Server 2016 升级到 SharePoint Server 2019 时,必须使用数据库附加升级,这意味着仅升级环境的内容,而不升级配置设置。 配置 SharePoint Server 2016 环境、复制内容和服务应用程序数据库并升级服务应用程序后,您可以将内容数据库附加到 SharePoint Server 2019 并对其进行升级。 本文介绍将内容数据库附加和升级到 SharePoint Server 2019 所要执行的步骤。
升级过程的第 4 阶段:升级内容数据库
阶段 | 说明 |
---|---|
这是将 SharePoint Server 2016 数据和网站升级到 SharePoint Server 2019 的过程中的第四个阶段。 此过程包括下列必须按顺序完成的阶段: 创建 SharePoint Server 2019 服务器场以执行数据库附加升级 将数据库复制到新服务器场以升级到 SharePoint Server 2019 将服务应用程序升级到 SharePoint Server 2019 将内容数据库升级到 SharePoint Server 2019 (此阶段) 有关整个过程的概述,请参阅 升级到 SharePoint Server 2019 的过程概述。 |
开始之前
附加和升级内容数据库之前,请阅读以下信息并执行所有建议的操作。
确保用于附加数据库的帐户是要升级的内容数据库的 db_owner 固定数据库角色的成员。
确保用于创建 Web 应用程序的帐户是管理中心的 Farm administrators 组的成员。
创建 Web 应用程序
为 SharePoint Server 2016 环境中存在的每个 Web 应用程序创建一个 Web 应用程序。 对于每个 Web 应用程序,执行以下操作:
使用相同的 URL(包括名称、端口和主机头)并配置备用访问映射设置。
如果您使用的是其他 URL,则 Office 应用程序可能无法正确重定向到新 URL,并且所有旧 URL 的书签将不起作用。
使用相同的身份验证方法。
由于基于声明的身份验证现在是 SharePoint Server 2019 的默认选项,因此必须使用 Microsoft PowerShell 来创建使用 Windows 经典身份验证的 Web 应用程序。 .
重新创建托管路径。
重新创建配额模板。
为 Web 应用程序配置电子邮件设置。
为以前环境中使用的任何 Web 应用程序启用自助式网站创建。 重新创建任何自助式网站创建设置。
在承载"My Sites"的 Web 应用程序上创建"My Sites"(/personal) 的管理路径。 "My Sites"仅适用于 SharePoint Server。
重新创建已在之前的环境中配置的任何 Web 应用程序策略或其他 Web 应用程序设置。
重新应用自定义项
升级期间发生失败的一个常见原因是,新环境不具有自定义的功能、解决方案或其他元素。 在升级任何内容数据库之前,请确保在前端 Web 服务器上安装了 SharePoint Server 2016 环境中的所有自定义元素。
在此步骤中,手动将所有自定义项传输到新服务器场中。 确保安装了您的网站正常工作所依赖的任何组件,例如:
自定义网站定义
自定义样式表,如级联样式表和图像
自定义 Web 部件
自定义 Web 服务
自定义功能和解决方案
自定义程序集
Web.config 更改(如安全性)
确保将每个 Web 应用程序的所有唯一设置从 Web.config 文件传输到新服务器。
InfoPath 的经管理员核准的表单模板(.xsn 文件)和数据连接文件(.udcx 文件)。
您的网站依赖的任何其他组件或文件。
SharePoint Server 2019 的安装继续使用 16 作为其主版本号,包括在文件系统路径中。
验证自定义组件
若要确保已确定环境的所有自定义组件,请在 SharePoint Server 2016 环境中使用 Stsadm -o enumallwebs 操作,并使用 includefeatures 和 includewebparts 参数。 此操作可以报告模板、功能、Web 部件以及其他用于每个网站的自定义元素。 有关如何使用 enumallwebs 操作的详细信息,请参阅 Enumallwebs: Stsadm operation (Office SharePoint Server) 。
还可以在 SharePoint Server 2016 环境中使用 Get-SPWeb cmdlet 查看与每个网站关联的模板,然后验证该模板是否已安装在 SharePoint Server 2019 环境中。 有关此操作的详细信息,请参阅 Get-SPWeb。
在将内容数据库附加到 Web 应用程序之前,请使用 Test-SPContentDatabase cmdlet 验证您是否拥有该数据库必需的所有自定义组件。
使用 PowerShell 验证自定义组件是否可用的具体步骤
- 确认您具有以下成员身份:
SQL Server 实例上的 securityadmin 固定服务器角色。
要更新的所有数据库上的 db_owner 固定数据库角色。
运行 PowerShell cmdlet 的服务器上的 Administrators 组。
管理员可使用 Add-SPShellAdmin cmdlet 来授予使用 SharePoint Server 2016 cmdlet 的权限。
注意
[!注意] 如果您不具有这些权限,请联系您的安装管理员或 SQL Server 管理员来请求权限。 有关 PowerShell 权限的其他信息,请参阅 Add-SPShellAdmin。
启动 SharePoint 2019 命令行管理程序。
在 PowerShell 命令提示符处,键入以下命令:
Test-SPContentDatabase -Name DatabaseName -WebApplication URL
Where:
DatabaseName 是要测试的数据库的名称。
URL 是将承载网站的 Web 应用程序的 URL。
有关详细信息,请参阅 Test-SPContentDatabase。
将内容数据库附加到 Web 应用程序并升级该数据库
在附加内容数据库时,将升级该数据库并会将该数据库中的网站集添加到你指定的 Web 应用程序。 升级数据库后,默认自动启动网站集升级过程。
附加内容数据库时,对于跨多个内容数据库的 Web 应用程序,首先应确保附加了包含根网站集的内容数据库。 换句话说,在继续之前,请检查 SharePoint Server 2016 服务器场中 Web 应用程序的根,以确定第一个网站集。 附加包含根网站的数据库之后,可以按任意顺序为 Web 应用程序附加其他内容数据库。 在附加数据库前,不需要创建任何网站集以存储内容。 此过程附加内容数据库和该数据库中的网站集。 请确保在还原所有内容数据库之前不添加任何新网站集。
提示
[!提示] 内容数据库中的每个网站集均有一个在配置数据库中注册且与网站集关联的 GUID。 因此,您无法将相同的网站集添加到服务器场两次,即使是单独的 Web 应用程序中也是如此。 虽然您可以在此情况下成功附加数据库,但无法浏览到网站集。 > 如果同一场中必须有网站集的副本,请先将包含该网站集的数据库附加到单独的场,然后使用 Backup-SPSite 和 Restore-SPSite PowerShell cmdlet 将网站集复制到另一个场。 备份和还原过程将为网站集创建新的 GUID。 有关这些 cmdlet 的详细信息,请参阅 Backup-SPSite 和 Restore-SPSite。
对于"My Sites",请先附加包含"我的网站"宿主的内容数据库,然后再附加包含"My Sites"的数据库。
默认情况下,在新的 SharePoint Server 2019 环境中创建 Web 应用程序时,会为每个 Web 应用程序创建一个内容数据库。 在附加 SharePoint Server 2016 数据库之前,可以忽略这些默认数据库,然后可以删除默认数据库。
重要
如果跨域或跨林移动内容数据库或将其移动到其他使用不同的服务帐户的环境中,请首先确保这些服务帐户的权限仍正确,然后再附加数据库。
注意
[!注意] 升级失败的一个常见原因是环境中缺少自定义的功能、解决方案或其他元素。 在开始升级过程之前,请确保在 SharePoint Server 2019 环境中的服务器上安装了 SharePoint Server 2016 环境中的所有自定义元素。 使用 Test-SPContentDatabase cmdlet 标识您的网站可能缺少的自定义元素。
使用 PowerShell 将内容数据库附加到 Web 应用程序的具体步骤
必须使用 Mount-SPContentDatabase cmdlet 将内容数据库附加到 Web 应用程序。 在升级期间,不支持使用 SharePoint 管理中心页面附加内容数据库。
如果您想要延迟网站升级,则可以使用 Mount-SPContentDatabase cmdlet 的 SkipSiteUpgrade 参数。
注意
使用 Mount-SPContentDatabase cmdlet 附加内容数据库是用于升级 SharePoint Server 2016 中的数据库和网站集的推荐行为和选项。
确保用于附加数据库的帐户是要升级的内容数据库的 db_owner 固定数据库角色的成员。
确认您具有以下成员身份:
SQL Server 实例上的 securityadmin 固定服务器角色。
要更新的所有数据库上的 db_owner 固定数据库角色。
运行 PowerShell cmdlet 的服务器上的 Administrators 组。
管理员可以使用 Add-SPShellAdmin cmdlet 授予使用 SharePoint Server 2019 cmdlet 的权限。
注意
[!注意] 如果您不具有这些权限,请联系您的安装管理员或 SQL Server 管理员来请求权限。 有关 PowerShell 权限的其他信息,请参阅 Add-SPShellAdmin。
启动 SharePoint 2019 命令行管理程序。
在 PowerShell 命令提示符处,键入以下命令,然后按 ENTER :
Mount-SPContentDatabase -Name DatabaseName -DatabaseServer ServerName -WebApplication URL
Where:
DatabaseName 是要升级的数据库的名称。
ServerName 是在其上存储数据库的服务器。
URL 是将承载网站的 Web 应用程序的 URL。
有关详细信息,请参阅 Mount-SPContentDatabase。 升级数据库后,会自动升级网站集。 有关如何升级网站集的其他信息,请参阅 将网站集升级到 SharePoint Server 2019。
验证第一个数据库的升级
After you attach a database, you can use the Upgrade Status page in Central Administration to check the status of upgrade on your databases. After the upgrade process is complete, you can review the upgrade log file to see whether upgrade produced issues. You can use a PowerShell cmdlet to check the upgrade status for all the content databases. 有关验证升级和故障排除的详细信息,请参阅 在 SharePoint Server 2019 中验证数据库升级。
查看"升级状态"页的具体步骤
确认执行此过程的用户帐户是数据库的 db_owner 固定数据库角色的成员。
在管理中心中,单击“升级和迁移”,然后单击“检查升级状态”。
查看升级日志文件的具体步骤
升级错误日志文件和升级日志文件位于 %COMMONPROGRAMFILES%\Microsoft Shared\web server extensions\16\LOGS 中。 升级日志文件包含的信息比升级错误日志包含的信息更为详细。 请务必查看日志文件底部的摘要,以了解有关整体状态的信息和文件中的警告和错误的计数。
这些日志是以下列格式命名的文本文件:
Upgrade-YYYYMMDD-HHMMSS-SSS-error.log
Upgrade-YYYYMMDD-HHMMSS-SSS.log
其中
YYYYMMDD 是日期
HHMMSS-SSS 是时间(24 小时制的小时数,然后是分钟数、秒数和毫秒数)
升级错误日志的示例是 Upgrade-20120105-132126-374-error.log,升级日志的示例是 Upgrade-20120105-132126-374.log。
注意
[!注意] SharePoint Server 2016 的升级日志的格式基于与 ULS 相同的结构。 > 升级日志文件包括正在升级的内容数据库的名称。
使用 PowerShell 查看所有数据库的升级状态的具体步骤
- 确认您具有以下成员身份:
SQL Server 实例上的 securityadmin 固定服务器角色。
要更新的所有数据库上的 db_owner 固定数据库角色。
运行 PowerShell cmdlet 的服务器上的 Administrators 组。
管理员可以使用 Add-SPShellAdmin cmdlet 授予使用 SharePoint Server 2019 cmdlet 的权限。
注意
[!注意] 如果您不具有这些权限,请联系您的安装管理员或 SQL Server 管理员来请求权限。 有关 PowerShell 权限的其他信息,请参阅 Add-SPShellAdmin。
启动 SharePoint 2019 命令行管理程序。
在 PowerShell 命令提示符处,键入以下命令:
Get-SPContentDatabase | ft Name, NeedsUpgradeIncludeChildren
此 cmdlet 返回服务器场中数据库的表样式列表,并指示数据库是否需要升级到 SharePoint Server 2019。
附加其余的数据库
在还原第一个内容数据库并确认还原成功后,可以继续还原和升级其他数据库。 可以执行并行数据库附加升级来一次性升级多个数据库。 使用单独的 Microsoft PowerShell 命令提示符可运行多个升级。 建议你将每个新的数据库升级会话的启动时间隔开几分钟,以预防附加期间出现 Web 应用程序被临时锁定的问题。 否则,你可能会收到升级会话错误。 清除临时锁定的等待时间是可变的,具体取决于网站集数或数据库服务器硬件的运行速度。
验证其他数据库的升级
升级所有附加数据库后,查看"升级状态"页以监视进度并验证升级过程是否已完成。 查看日志文件以确定任何其他问题。
后续步骤
升级数据库后,您可能要执行附加步骤来确保您的服务器场以可供使用。 例如:
将用户帐户迁移到声明身份验证(如有必要)。
默认情况下,SharePoint Server 2019 中的新 Web 应用程序使用声明身份验证。 如果您使用的是之前的环境中的经典身份验证,则必须将用户迁移到声明身份验证。
更新在任何已升级的 InfoPath 表单模板中使用的链接。
对于数据库附加升级,当您创建新环境时,您已在环境中导出和导入所有 InfoPath 表单模板。 升级后,可通过使用 Microsoft PowerShell cmdlet 将这些已升级的表单模板中使用的链接更新为指向正确的 URL。
InfoPath 仅适用于 SharePoint Server。
执行完全爬网
有关详细信息,请参阅 Start, pause, resume, or stop a crawl in SharePoint Server。
备份服务器场
有关详细信息,请参阅 在 SharePoint Server 中备份服务器场。
阶段 | 说明 |
---|---|
这是将 SharePoint Server 2016 数据和网站升级到 SharePoint Server 2019 的过程中的第四个阶段。 有关整个过程的概述,请参阅 升级到 SharePoint Server 2019 的过程概述。 |