将服务应用程序升级到 SharePoint Server 2016
适用于:2013 2016 2019 Subscription Edition SharePoint in Microsoft 365
当您从 SharePoint Server 2013 Service Pack 1 (SP1)升级到 SharePoint Server 2016 时,必须使用数据库附加升级,这意味着只升级环境内容而不升级配置设置。 配置 SharePoint Server 2016 环境并复制内容和服务应用程序数据库之后,您可将服务应用程序升级到 SharePoint Server 2016。 本文包含升级服务应用程序要执行的步骤。
升级过程的第 3 阶段:升级服务应用程序:
阶段 | 说明 |
---|---|
这是将 SharePoint Server 2013 Service Pack 1 (SP1)数据和站点升级到 SharePoint Server 2016 的过程的第 3 阶段。 此过程包括下列必须按顺序完成的阶段: 创建 SharePoint Server 2016 场以执行数据库附加升级 将数据库复制到新场以升级到 SharePoint Server 2016 将服务应用程序升级到 SharePoint Server 2016 (本阶段) 将内容数据库升级到 SharePoint Server 2016 有关整个过程的概述,请参阅 SharePoint Server 2016 的升级过程概述。 |
开始之前
在升级服务应用程序之前,请查看以下信息并执行任何建议的操作。
确保用于执行本文中的步骤的帐户是管理中心的 Farm administrators 组的成员。
确定要用于已升级服务应用程序的服务应用程序池。 下列过程对服务应用程序使用默认的应用程序池("SharePoint Web Services 默认值")。 您可在 PowerShell 中使用 Get-SPServiceApplicationPool 查看可用服务应用程序池的列表。 或者也可以使用 New-SPServiceApplicationPool cmdlet 创建服务应用程序池。 有关详细信息,请参阅 Get-SPServiceApplicationPool 和 New-SPServiceApplicationPool。
提示
[!提示] 为了节省时间和减少工作量,本文在所有 PowerShell cmdlet 中使用变量(如 $applicationPool、$sss、$upa 等)。 如果您不想,则不必使用这些变量。 但是,如果您不使用这些变量,则必须在指定 identity 参数时对服务应用程序和服务应用程序代理使用 ID。 每个过程都包含有关所用变量的信息,或用于查找所需任何 ID 的备用 cmdlet 的信息。 此外,本文中的许多过程都包含设置 $applicationPool 变量的步骤。 如果您要在同一 PowerShell 会话中执行所有这些过程,并希望对所有服务应用程序使用相同的应用程序池,则不必在每个过程中重复此步骤。 相反,您只需在一开始设置此变量一次,然后就可以在本文的所有过程中使用它。
注意
对于 SharePoint Server 2016 架构中引入的 SharePoint 2013 架构中的任何托管属性,在升级之前,必须重命名该托管属性。 例如,如果已创建名为 SPWebURL 的托管属性,请在 SharePoint Server 2016 升级之前将其重命名为 SPWebURL1 。 可以将自定义托管属性名称更改回原始值 (即升级成功完成后将 SPWebURL1 重命名为 SPWebURL) 。 有关 SharePoint Server 2016 中引入的托管属性的列表,请参阅 SharePoint Server 2016 中添加的托管属性。
关于升级服务应用程序数据库
若要升级服务应用程序数据库,您可以创建一个新的服务应用程序并提供要用于该新服务应用程序的现有数据库的名称。 在创建服务应用程序时,将升级数据库。 此过程包含多个步骤。
注意
[!注意] 无法升级 Word Automation Services 和机器翻译服务。 需要创建新的服务实例。
重要
以下步骤概述了启动服务实例仅适用于自定义服务器角色类型。 有关服务器角色类型的详细信息,请参阅 在 SharePoint Server 2016 中规划 MinRole 服务器部署。
启动服务实例
第一步是启动可升级的五个服务应用程序的服务实例:Business Data Connectivity Service、Managed Metadata Web Service、PerformancePoint Services Service、Secure Store Service 和 Search Service。 可从管理中心启动这些服务实例中的大多数实例。 但是,必须使用 PowerShell 才能启动 SharePoint Server Search Service 实例。
创建服务应用程序并升级数据库
启动服务实例之后,下一步是创建服务应用程序并升级数据库。 您必须使用 PowerShell 还原服务应用程序数据库。
创建服务应用程序的代理
升级服务应用程序数据库后,创建服务应用程序的代理并将这些代理添加到默认代理组。 您必须创建以下服务应用程序的代理:
Managed Metadata Service 应用程序
Search Service 应用程序
Secure Store Service 应用程序
PerformancePoint Services Service 应用程序
在创建服务应用程序时,Business Data Connectivity Service 应用程序会自动创建代理并将其分配给默认代理组。
确认代理位于默认组中
以下各节提供了完成这些步骤的过程。
启动服务实例
以下过程将启动服务实例。
若要从管理中心启动服务应用程序实例,请执行以下操作:
启动 SharePoint 2016 管理中心。
对于 Windows Server 2012 R2:
在 “开始” 屏幕上,选择“ SharePoint 2016 管理中心”。
如果“SharePoint 2016 管理中心”不在“开始”屏幕上:
- 右键单击“ 计算机”,选择“ 所有应用”,然后选择“ SharePoint 2016 管理中心”。
有关如何与 Windows Server 2012 R2 交互的详细信息,请参阅 Windows Server 2012 中的常见管理任务和导航。
在 SharePoint 2016 管理中心的“ 应用程序管理 ”页上的“ 服务应用程序 ”部分,选择“ 管理服务器上的服务”。
在 “业务数据连接”服务旁边,选择“ 启动”。
在 “托管元数据 Web 服务”旁边,选择“ 启动”。
在 PerformancePoint Services 服务旁边,选择“ 启动”。
在 “安全存储服务”旁边,选择“ 启动”。
必须使用 PowerShell 启动搜索服务实例,因为除非 Search Service 应用程序已存在,否则无法从管理中心启动该实例。
若要使用 PowerShell 启动搜索服务实例,请执行以下操作:
确认您具有以下成员身份:
SQL Server 实例上的 securityadmin 固定服务器角色。
要更新的所有数据库上的 db_owner 固定数据库角色。
运行 PowerShell cmdlet 的服务器上的 Administrators 组。
管理员可使用 Add-SPShellAdmin cmdlet 来授予使用 SharePoint Server 2016 cmdlet 的权限。
注意
[!注意] 如果您不具有这些权限,请联系您的安装管理员或 SQL Server 管理员来请求权限。 有关 PowerShell 权限的其他信息,请参阅 Add-SPShellAdmin。
启动 SharePoint 2016 命令行管理程序。
对于 Windows Server 2012 R2:
在 “开始” 屏幕上,选择“ SharePoint 2016 命令行管理程序”。
如果“SharePoint 2016 命令行管理程序”不在“开始”屏幕上:
- 右键单击“ 计算机”,选择“ 所有应用”,然后选择“ SharePoint 2016 命令行管理程序”。
有关如何与 Windows Server 2012 R2 交互的详细信息,请参阅 Windows Server 2012 中的常见管理任务和导航。
若要启动搜索服务实例,请在 Microsoft PowerShell 命令提示符处,键入以下命令,并在键入每条命令后按 ENTER :
$SearchInst = Get-SPEnterpriseSearchServiceInstance # Stores the identity for the Search service instance on this server as a variable
Start-SPServiceInstance $SearchInst # Starts the service instance
有关详细信息,请参阅 Get-SPEnterpriseSearchServiceInstance 和 Start-SPServiceInstance。
升级 Secure Store 服务应用程序
若要升级Secure Store服务应用程序,您可以创建新的服务应用程序并升级数据库,创建代理并将其添加到默认代理组,然后还原以前的环境中的密码。
若要使用 PowerShell 升级 Secure Store 服务应用程序,请执行以下操作:
确认您具有以下成员身份:
SQL Server 实例上的 securityadmin 固定服务器角色。
要更新的所有数据库上的 db_owner 固定数据库角色。
运行 PowerShell cmdlet 的服务器上的 Administrators 组。
管理员可使用 Add-SPShellAdmin cmdlet 来授予使用 SharePoint Server 2016 cmdlet 的权限。
注意
[!注意] 如果您不具有这些权限,请联系您的安装管理员或 SQL Server 管理员来请求权限。 有关 PowerShell 权限的其他信息,请参阅 Add-SPShellAdmin。
启动 SharePoint 2016 命令行管理程序。
对于 Windows Server 2012 R2:
在 “开始” 屏幕上,选择“ SharePoint 2016 命令行管理程序”。
如果“SharePoint 2016 命令行管理程序”不在“开始”屏幕上:
- 右键单击“ 计算机”,选择“ 所有应用”,然后选择“ SharePoint 2016 命令行管理程序”。
有关如何与 Windows Server 2012 R2Windows Server 2012 交互的详细信息,请参阅 Windows Server 2012 中的常见管理任务和导航。
若要将要使用的应用程序池作为此服务应用程序的变量存储,请在 Microsoft PowerShell 命令提示符处,键入以下命令:
$applicationPool = Get-SPServiceApplicationPool -Identity 'SharePoint Web Services default'
其中:
- SharePoint Web Services default 是将包含新的服务应用程序的服务应用程序池的名称。 这是默认的服务应用程序池。 您可指定其他服务应用程序池。
此 cmdlet 将服务应用程序池设置为可在后面的 cmdlet 中重新使用的变量。 如果您具有多个应用程序池且必须为特定的服务应用程序使用不同的应用程序池,请重复此过程步骤以创建每个服务应用程序来使用适当的应用程序池。
若要升级Secure Store服务应用程序,请在 Microsoft PowerShell 命令提示符处,键入以下命令:
$sss = New-SPSecureStoreServiceApplication -Name 'Secure Store' -ApplicationPool $applicationPool -DatabaseName 'SecureStore_Upgrade_DB' -AuditingEnabled
其中:
SecureStore 是要为新的Secure Store服务应用程序提供的名称。
$applicationpool 是您之前设置用来标识要使用的服务应用程序池的变量。
提示
[!提示] 如果您不使用变量 $applicationPool,则必须按照格式" 应用程序池名称"指定现有服务应用程序池的名称。 若要查看服务应用程序池的列表,您可以运行 Get-SPServiceApplicationPool cmdlet。
SecureStore_Upgrade_DB 是要升级的服务应用程序数据库的名称。
此命令将设置您稍后在创建代理时使用的变量 $sss。
有关详细信息,请参阅 New-SPSecureStoreApplication。
键入以下命令创建 Secure Store 服务应用程序的代理:
$sssp = New-SPSecureStoreServiceApplicationProxy -Name ProxyName -ServiceApplication $sss -DefaultProxyGroup
其中:
ProxyName 是要使用的代理名称。
$sss 是您之前设置用来标识Secure Store服务应用程序的变量。
提示
[!提示] 如果您未使用变量 $sss,则必须使用 ID 来标识 Secure Store Service 应用程序而不是名称。 若要查找 ID,可以运行 Get-SPServiceApplication cmdlet 返回所有服务应用程序 ID 的列表。
DefaultProxyGroup 将Secure Store服务应用程序代理添加到本地服务器场的默认代理组。
此命令将为您在还原密码时使用的服务应用程序代理设置变量 $sssp。
有关详细信息,请参阅 New-SPSecureStoreServiceApplicationProxy。
创建Secure Store服务应用程序和代理后,您必须刷新加密密钥。 有关如何刷新加密密钥的信息,请参阅 刷新安全存储加密密钥。
键入以下命令还原Secure Store服务应用程序的密码:
Update-SPSecureStoreApplicationServerKey -Passphrase <Passphrase> -ServiceApplicationProxy $sssp
其中:
<Passphrase> 是之前的环境中的Secure Store服务应用程序的密码。
$sssp 是您之前设置用来标识新 Secure Store Service 应用程序代理的变量。
提示
[!提示] 如果您未使用变量 $sssp,则必须使用 ID 来标识 Secure Store Service 应用程序代理而不是名称。 若要查找 ID,可以运行 Get-SPServiceApplicationProxy cmdlet 返回所有服务应用程序代理 ID 的列表。
有关详细信息,请参阅 Update-SPSecureStoreApplicationServerKey。
升级 Business Data Connectivity Service 应用程序
若要升级 Business Data Connectivity Service 应用程序,您可以创建新的服务应用程序并升级数据库。 无需创建 Business Data Connectivity Service 应用程序的代理。 在创建服务应用程序时,Business Data Connectivity Service 应用程序会自动创建代理并将其分配给默认代理组。
若要使用 PowerShell 升级 Business Data Connectivity 服务应用程序,请执行以下操作:
确认您具有以下成员身份:
SQL Server 实例上的 securityadmin 固定服务器角色。
要更新的所有数据库上的 db_owner 固定数据库角色。
运行 PowerShell cmdlet 的服务器上的 Administrators 组。
管理员可使用 Add-SPShellAdmin cmdlet 来授予使用 SharePoint Server 2016 cmdlet 的权限。
注意
[!注意] 如果您不具有这些权限,请联系您的安装管理员或 SQL Server 管理员来请求权限。 有关 PowerShell 权限的其他信息,请参阅 Add-SPShellAdmin。
启动 SharePoint 2016 命令行管理程序。
对于 Windows Server 2012 R2:
在 “开始” 屏幕上,选择“ SharePoint 2016 命令行管理程序”。
如果“SharePoint 2016 命令行管理程序”不在“开始”屏幕上:
- 右键单击“ 计算机”,选择“ 所有应用”,然后选择“ SharePoint 2016 命令行管理程序”。
有关如何与 Windows Server 2012 R2 交互的详细信息,请参阅 Windows Server 2012 中的常见管理任务和导航。
若要将要使用的应用程序池作为此服务应用程序的变量存储,请在 Microsoft PowerShell 命令提示符处,键入以下命令:
$applicationPool = Get-SPServiceApplicationPool -Identity 'SharePoint Web Services default'
其中:
- SharePoint Web Services default 是将包含新的服务应用程序的服务应用程序池的名称。
此 cmdlet 将服务应用程序池设置为可在后面的 cmdlet 中重新使用的变量。 如果您具有多个应用程序池且必须为特定的服务应用程序使用不同的应用程序池,请重复此过程步骤以创建每个服务应用程序来使用适当的应用程序池。
若要升级 Business Data Connectivity Service 应用程序,请在 Microsoft PowerShell 命令提示符处,键入以下命令:
New-SPBusinessDataCatalogServiceApplication -Name 'BDC Service' -ApplicationPool $applicationPool -DatabaseName 'BDC_Service_DB'
其中:
BDC Service 是要为新的 Business Data Connectivity Service 应用程序提供的名称。
$applicationpool 是您之前设置用来标识要使用的服务应用程序池的变量。
提示
[!提示] 如果您不使用变量 $applicationPool,则必须按照格式" 应用程序池名称"指定现有服务应用程序池的名称。 若要查看服务应用程序池的列表,您可以运行 Get-SPServiceApplicationPool cmdlet。
BDC_Service_DB 是要升级的服务应用程序数据库的名称。
有关详细信息,请参阅 New-SPBusinessDataCatalogServiceApplication。
升级 Managed Metadata Service 应用程序
若要升级 Managed Metadata Service 应用程序,您可以创建新的服务应用程序并升级数据库,然后创建代理并将其添加到默认代理组。
若要使用 PowerShell 升级托管元数据服务应用程序,请执行以下操作:
确认您具有以下成员身份:
SQL Server 实例上的 securityadmin 固定服务器角色。
要更新的所有数据库上的 db_owner 固定数据库角色。
运行 PowerShell cmdlet 的服务器上的 Administrators 组。
管理员可使用 Add-SPShellAdmin cmdlet 来授予使用 SharePoint Server 2016 cmdlet 的权限。
注意
[!注意] 如果您不具有这些权限,请联系您的安装管理员或 SQL Server 管理员来请求权限。 有关 PowerShell 权限的其他信息,请参阅 Add-SPShellAdmin。
启动 SharePoint 2016 命令行管理程序。
对于 Windows Server 2012 R2:
在 “开始” 屏幕上,选择“ SharePoint 2016 命令行管理程序”。
如果“SharePoint 2016 命令行管理程序”不在“开始”屏幕上:
- 右键单击“ 计算机”,选择“ 所有应用”,然后选择“ SharePoint 2016 命令行管理程序”。
有关如何与 Windows Server 2012 R2 交互的详细信息,请参阅 Windows Server 2012 中的常见管理任务和导航。
若要将要使用的应用程序池作为此服务应用程序的变量存储,请在 Microsoft PowerShell 命令提示符处,键入以下命令:
$applicationPool = Get-SPServiceApplicationPool -Identity 'SharePoint Web Services default'
其中:
- SharePoint Web Services default 是将包含新的服务应用程序的服务应用程序池的名称。
此 cmdlet 将服务应用程序池设置为可在后面的 cmdlet 中重新使用的变量。 如果您具有多个应用程序池且必须为特定的服务应用程序使用不同的应用程序池,请重复此过程步骤以创建每个服务应用程序来使用适当的应用程序池。
若要升级 Managed Metadata Service 应用程序,请在 Microsoft PowerShell 命令提示符处,键入以下命令:
$mms = New-SPMetadataServiceApplication -Name 'Managed Metadata Service Application' -ApplicationPool $applicationPool -DatabaseName 'Managed Metadata Service_DB'
其中:
Managed Metadata Service Application 是要为新的 Managed Metadata Service 应用程序提供的名称。
$applicationpool 是您之前设置用来标识要使用的服务应用程序池的变量。
提示
[!提示] 如果您不使用变量 $applicationPool,则必须按照格式" 应用程序池名称"指定现有服务应用程序池的名称。 若要查看服务应用程序池的列表,您可以运行 Get-SPServiceApplicationPool cmdlet。
Managed Metadata Service_DB 是要升级的服务应用程序数据库的名称。
此命令将设置您稍后在创建代理时使用的变量 $mms。
有关详细信息,请参阅 New-SPMetadataServiceApplication。
在 Microsoft PowerShell 命令提示符处,键入以下命令创建 Managed Metadata Service 应用程序的代理:
New-SPMetadataServiceApplicationProxy -Name ProxyName -ServiceApplication $mms -DefaultProxyGroup
其中:
ProxyName 是要使用的代理名称。
$mms 是您之前设置用来标识新的 Managed Metadata Service 应用程序的变量。
提示
[!提示] 如果您未使用变量 $mms,则必须使用 ID 来标识 Managed Metadata Service 应用程序代理而不是名称。 若要查找 ID,可以运行 Get-SPServiceApplication cmdlet 返回所有服务应用程序 ID 的列表。
DefaultProxyGroup 将 Managed Metadata service 应用程序代理添加到本地服务器场的默认代理组。
有关详细信息,请参阅 New-SPMetadataServiceApplicationProxy。
升级 PerformancePoint Services 服务应用程序
若要升级 PerformancePoint Services 服务应用程序,您可以创建新的服务应用程序并升级数据库,然后创建代理并将其添加到默认代理组。
若要使用 PowerShell 升级 PerformancePoint Services 服务应用程序,请执行以下操作:
确认您具有以下成员身份:
SQL Server 实例上的 securityadmin 固定服务器角色。
要更新的所有数据库上的 db_owner 固定数据库角色。
运行 PowerShell cmdlet 的服务器上的 Administrators 组。
管理员可使用 Add-SPShellAdmin cmdlet 来授予使用 SharePoint Server 2016 cmdlet 的权限。
注意
[!注意] 如果您不具有这些权限,请联系您的安装管理员或 SQL Server 管理员来请求权限。 有关 PowerShell 权限的其他信息,请参阅 Add-SPShellAdmin。
启动 SharePoint 2016 命令行管理程序。
对于 Windows Server 2012 R2:
在 “开始” 屏幕上,选择“ SharePoint 2016 命令行管理程序”。
如果“SharePoint 2016 命令行管理程序”不在“开始”屏幕上:
- 右键单击“ 计算机”,选择“ 所有应用”,然后选择“ SharePoint 2016 命令行管理程序”。
有关如何与 Windows Server 2012 R2 交互的详细信息,请参阅 Windows Server 2012 中的常见管理任务和导航。
若要将要使用的应用程序池作为此服务应用程序的变量存储,请在 Microsoft PowerShell 命令提示符处,键入以下命令:
$applicationPool = Get-SPServiceApplicationPool -Identity 'SharePoint Web Services default'
其中:
- SharePoint Web Services default 是将包含新的服务应用程序的服务应用程序池的名称。
此 cmdlet 将服务应用程序池设置为可在后面的 cmdlet 中重新使用的变量。 如果您具有多个应用程序池且必须为特定的服务应用程序使用不同的应用程序池,请重复此过程步骤以创建每个服务应用程序来使用适当的应用程序池。
若要升级PerformancePoint Services服务应用程序,请在 Microsoft PowerShell 命令提示符处,键入以下命令:
$pps = New-SPPerformancePointServiceApplication -Name 'PerformancePoint Service' -ApplicationPool $applicationPool -DatabaseName 'PerformancePoint Service Application_DB'
其中:
PerformancePoint Service 是要为新的 PerformancePoint Services 服务应用程序提供的名称。
$applicationpool 是您之前设置用来标识要使用的服务应用程序池的变量。
提示
[!提示] 如果您不使用变量 $applicationPool,则必须按照格式" 应用程序池名称"指定现有服务应用程序池的名称。 若要查看服务应用程序池的列表,您可以运行 Get-SPServiceApplicationPool cmdlet。
PerformancePoint Service Application_DB 是要升级的 PerformancePoint Services 服务应用程序数据库的名称。
此命令将设置您稍后在创建代理时使用的变量 $pps。
有关详细信息,请参阅 New-SPPerformancePointServiceApplication。
键入以下命令创建 PerformancePoint Services 服务应用程序的代理:
New-SPPerformancePointServiceApplicationProxy -Name ProxyName -ServiceApplication $pps -Default
其中:
ProxyName 是要使用的代理名称。
$pps 是您之前设置用来标识 PerformancePoint Services 服务应用程序的变量。
提示
[!提示] 如果您未使用变量 $pps,则必须使用 ID 来标识 PerformancePoint Services 服务应用程序而不是名称。 若要查找 ID,可以运行 Get-SPServiceApplication cmdlet 返回所有服务应用程序 ID 的列表。
Default 将 PerformancePoint Services 服务应用程序代理添加到本地服务器场的默认代理组。
有关详细信息,请参阅 New-SPPerformancePointServiceApplicationProxy。
升级 User Profile Service 应用程序
在升级 User Profile 服务应用程序之前,请升级托管元数据服务应用程序。
若要升级用户配置文件服务应用程序,请将 SharePoint Server 2013 中的配置文件和社交数据库与 Service Pack 1 (SP1) 场复制到 SharePoint Server 2016 场,并在 SharePoint Server 2016 场中使用 Service Pack 1 (SP1) 场从 SharePoint Server 2013 创建新的用户配置文件服务应用程序。 还原会触发 SharePoint Server 2016 在 SharePoint Server 2016 场中创建新的用户配置文件服务应用程序,并将其指向复制的用户配置文件数据库。 若要完成 User Profile 服务应用程序的升级,请创建一个代理并将其添加到默认代理组。
注意
由于 SharePoint Server 2016 没有用户配置文件同步服务,因此请勿复制同步数据库。 相反,将创建一个具有空架构的新数据库。
若要使用 PowerShell 升级用户配置文件服务应用程序,请执行以下操作:
按照以下步骤将 SharePoint Server 2013 Service Pack 1 (SP1) 场中的配置文件和社交数据库复制到 SharePoint Server 2016 场:
重要
在 SharePoint Server 2013 Service Pack 1 (SP1) 环境中执行这些步骤。
确认您具有以下成员身份:
SQL Server 实例上的 securityadmin 固定服务器角色。
要更新的所有数据库上的 db_owner 固定数据库角色。
运行 PowerShell cmdlet 的服务器上的 Administrators 组。
管理员可使用 Add-SPShellAdmin cmdlet 来授予使用 SharePoint Server 2016 cmdlet 的权限。
注意
[!注意] 如果您不具有这些权限,请联系您的安装管理员或 SQL Server 管理员来请求权限。 有关 PowerShell 权限的其他信息,请参阅 Add-SPShellAdmin。
启动 SharePoint 命令行管理程序。
对于 Windows Server 2012 R2:在 “开始” 屏幕上,选择“ SharePoint 命令行管理程序”。
如果 SharePoint 命令行管理程序 不在 “开始” 屏幕上,请右键单击“ 计算机”,选择“ 所有应用”,然后选择“ SharePoint 命令行管理程序”。
有关如何与 Windows Server 2012 R2 交互的详细信息,请参阅 Windows Server 2012 中的常见管理任务和导航。
将用户配置文件数据库设置为只读。 在将 SharePoint Server 2013 与 Service Pack 1 (SP1) 数据和网站升级到 SharePoint Server 2016 的过程的第二阶段中,将所有其他数据库设置为只读。
将 SharePoint Server 2013 中的配置文件和社交数据库与 Service Pack 1 (SP1) 场复制到 SharePoint Server 2016 场,请遵循 将数据库复制到新服务器场中的过程,以便仅针对搜索管理数据库升级到 SharePoint Server 2016 。
重要
在 SharePoint Server 2016 环境中执行后续步骤。
确认您具有以下成员身份:
SQL Server 实例上的 securityadmin 固定服务器角色。
要更新的所有数据库上的 db_owner 固定数据库角色。
运行 PowerShell cmdlet 的服务器上的 Administrators 组。
管理员可使用 Add-SPShellAdmin cmdlet 来授予使用 SharePoint Server 2016 cmdlet 的权限。
注意
[!注意] 如果您不具有这些权限,请联系您的安装管理员或 SQL Server 管理员来请求权限。 有关 PowerShell 权限的其他信息,请参阅 Add-SPShellAdmin。
启动 SharePoint 2016 命令行管理程序。
对于 Windows Server 2012 R2:在 “开始” 屏幕上,选择“ SharePoint 命令行管理程序”。
如果 SharePoint 命令行管理程序 不在 “开始” 屏幕上,请右键单击“ 计算机”,选择“ 所有应用”,然后选择“ SharePoint 命令行管理程序”。
有关如何与 Windows Server 2012 R2 交互的详细信息,请参阅 Windows Server 2012 中的常见管理任务和导航。
若要将要使用的应用程序池作为此服务应用程序的变量存储,请在 Microsoft PowerShell 命令提示符处,键入以下命令:
$applicationPool = Get-SPServiceApplicationPool -Identity 'SharePoint Web Services default'
其中:
- SharePoint Web Services default 是将包含新的服务应用程序的服务应用程序池的名称。
此 cmdlet 将服务应用程序池设置为可在后面的 cmdlet 中重新使用的变量。 如果您具有多个应用程序池且必须为特定的服务应用程序使用不同的应用程序池,请重复此过程步骤以创建每个服务应用程序来使用适当的应用程序池。
若要还原用户配置文件服务应用程序并升级配置文件和社交数据库,请在 PowerShell 命令提示符Microsoft键入以下命令:
New-SPProfileServiceApplication -Name '<UserProfileApplicationName>' -ApplicationPool $applicationPool -ProfileDBName '<ProfileDBName>' -SocialDBName '<SocialDBName>' -ProfileSyncDBName '<SyncDBName>'
其中:
UserProfileApplicationName 是 User Profile 服务应用程序的名称。
$applicationpool 是你设置用来标识要使用的服务应用程序池的变量。
提示
[!提示] 如果您不使用变量 $applicationPool,则必须按照格式" 应用程序池名称"指定现有服务应用程序池的名称。 若要查看服务应用程序池的列表,您可以运行 Get-SPServiceApplicationPool cmdlet。
ProfileDBName 是要升级的配置文件数据库的名称。
SocialDBName 是要升级的社交数据库的名称。
SyncDBName 是要升级的新同步数据库的名称。
通过完成以下操作,创建用户配置文件服务应用程序代理并将其添加到默认代理组:
键入以下命令以获取 User Profile 服务应用程序的 ID 并将其存储为变量:
$sa = Get-SPServiceApplication | ?{$_.TypeName -eq 'User Profile Service Application'}
有关详细信息,请参阅 Get-SPServiceApplication。
键入以下命令创建 User Profile Service 应用程序的代理:
New-SPProfileServiceApplicationProxy -Name ProxyName -ServiceApplication $sa
其中:
ProxyName 是要使用的代理名称。
$sa是前面为标识新的用户配置文件服务应用程序的变量而设置的变量。
提示
如果不使用变量$sa,则必须使用 ID 来标识 User Profile 服务应用程序,而不是名称。 若要查找 ID,可以运行 Get-SPServiceApplication cmdlet,返回所有服务应用程序 ID 的列表。
有关详细信息,请参阅 New-SPProfileServiceApplicationProxy。
键入以下命令获取刚创建的代理的 Search Service 应用程序代理 ID,并将其设置为变量 $ssap:
$proxy = Get-SPServiceApplicationProxy | ?{$_.TypeName -eq 'User Profile Service Application Proxy'}
有关详细信息,请参阅 Get-SPServiceApplicationProxy。
键入以下命令,将 User Profile 服务应用程序代理添加到默认代理组:
Add-SPServiceApplicationProxyGroupMember -member $proxy -identity ""
其中:
$proxy是前面设置的变量,用于标识刚刚为用户配置文件服务应用程序创建的代理的 ID。
提示
如果不使用变量$proxy,则必须使用 ID 来标识用户配置文件服务应用程序代理,而不是名称。 若要查找 ID,可以运行 Get-SPServiceApplicationProxy cmdlet,返回所有服务应用程序代理 ID 的列表。
使用空 的 Identity 参数 (“”) 将其添加到默认组。
有关详细信息,请参阅 Add-SPServiceApplicationProxyGroupMember。
升级 Search Service 应用程序
升级 User Profile Service 应用程序和 Managed Metadata Service 应用程序,然后再升级 Search Service 应用程序。
若要升级 Search Service 应用程序,请将 SharePoint Server 2013 Service Pack 1 (SP1) 场中的搜索管理数据库复制到 SharePoint Server 2016 场中,并在 SharePoint Server 2016 场中从 SharePoint Server 2013 Service Pack 1 (SP1) 场还原 Search Service 应用程序。 还原会触发 SharePoint Server 2016 在 SharePoint Server 2016 场中新建一个 Search Service 应用程序,并将其指向已复制的搜索管理数据库。 若要完成升级 Search Service 应用程序,请创建代理并将其添加到默认代理组中,同时确保新的链接数据库和搜索拓扑的配置方式与 SharePoint Server 2013 Service Pack 1 (SP1) 场中相同。
SharePoint Server 2016 通常会在新建 Search Service 应用程序时,使用所有搜索组件和数据库新建搜索拓扑。 在 还原 Search Service 应用程序期间,SharePoint Server 2016 会新建搜索拓扑,但是升级已还原的搜索管理数据库,而不是新建一个搜索管理数据库。 升级后的搜索管理数据库保留 SharePoint Server 2013 Service Pack 1 (SP1) 场中对搜索架构、结果来源和查询规则所做的任何添加或修改。
注意
[!注意] 在该升级期间,搜索不会爬网 SharePoint Server 2013 Service Pack 1 (SP1) 中的内容。 如果搜索结果的新鲜度很重要,则开始升级前先熟悉这些步骤,以达到节省时间的目的。
重要
由于 SharePoint Server 2016 场中的搜索拓扑是新的,因此索引为空。 升级 所有内容源 后,必须对整个索引的文档库执行完全爬网, (将 SharePoint Server 2013 与 Service Pack 1 (SP1) 数据和网站升级到 SharePoint Server 2016) 的过程的第四阶段。
若要使用 PowerShell 升级搜索服务应用程序,请执行以下操作:
按照以下步骤将 SharePoint Server 2013 Service Pack 1 (SP1) 场中的搜索管理数据库复制到 SharePoint Server 2016 场:
注意
[!注意] 在升级到 SharePoint Server 2016 的过程的先前步骤中,你复制了 SharePoint Server 2013 Service Pack 1 (SP1) 环境中的所有其他内容和服务数据库。 我们建议在下一阶段复制搜索管理数据库,因为你在复制搜索管理数据库时必须暂停你的 SharePoint Server 2013 Service Pack 1 (SP1) 环境中的 Search Service 应用程序。
重要
在 SharePoint Server 2013 Service Pack 1 (SP1) 环境中执行这些步骤。
确认您具有以下成员身份:
SQL Server 实例上的 securityadmin 固定服务器角色。
要更新的所有数据库上的 db_owner 固定数据库角色。
运行 PowerShell cmdlet 的服务器上的 Administrators 组。
管理员可使用 Add-SPShellAdmin cmdlet 来授予使用 SharePoint Server 2016 cmdlet 的权限。
注意
[!注意] 如果您不具有这些权限,请联系您的安装管理员或 SQL Server 管理员来请求权限。 有关 PowerShell 权限的其他信息,请参阅 Add-SPShellAdmin。
启动 SharePoint 命令行管理程序。
对于 Windows Server 2012 R2:在 “开始” 屏幕上,选择“ SharePoint 命令行管理程序”。
如果 SharePoint 命令行管理程序 不在 “开始” 屏幕上,请右键单击“ 计算机”,选择“ 所有应用”,然后选择“ SharePoint 命令行管理程序”。
有关如何与 Windows Server 2012 R2 交互的详细信息,请参阅 Windows Server 2012 中的常见管理任务和导航。
将搜索管理数据库设置为只读。 在将 SharePoint Server 2013 与 Service Pack 1 (SP1) 数据和网站升级到 SharePoint Server 2016 的过程的第二阶段中,将所有其他数据库设置为只读。 现在 按照搜索管理数据库的相同说明进行操作 。
暂停 Search Service 应用程序。 在 Windows PowerShell 命令提示符处,键入以下命令:
$ssa = Get-SPEnterpriseSearchServiceApplication <SearchServiceApplicationName> Suspend-SPEnterpriseSearchServiceApplication -Identity $ssa
其中:
- SearchServiceApplicationName 是你想要暂停的 Search Service 应用程序的名称。
注意
[!注意] 暂停 Search Service 应用程序期间,SharePoint Server 2013 Service Pack 1 (SP1) 环境中的索引不会更新。 这表示升级到 SharePoint Server 2016 期间,搜索结果的新鲜度可能不是很高。
将 SharePoint Server 2013 Service Pack 1 (SP1) 场中的搜索管理数据库复制到 SharePoint Server 2016 场,遵循 将数据库复制到新服务器场以升级到 SharePoint Server 2016 中的步骤(仅适用于搜索管理数据库)。
重要
在 SharePoint Server 2016 环境中执行后续步骤。
确认您具有以下成员身份:
SQL Server 实例上的 securityadmin 固定服务器角色。
要更新的所有数据库上的 db_owner 固定数据库角色。
运行 PowerShell cmdlet 的服务器上的 Administrators 组。
管理员可使用 Add-SPShellAdmin cmdlet 来授予使用 SharePoint Server 2016 cmdlet 的权限。
注意
[!注意] 如果您不具有这些权限,请联系您的安装管理员或 SQL Server 管理员来请求权限。 有关 PowerShell 权限的其他信息,请参阅 Add-SPShellAdmin。
启动 SharePoint 2016 命令行管理程序。
对于 Windows Server 2012 R2:在 “开始” 屏幕上,选择“ SharePoint 命令行管理程序”。
如果 SharePoint 命令行管理程序 不在 “开始” 屏幕上,请右键单击“ 计算机”,选择“ 所有应用”,然后选择“ SharePoint 命令行管理程序”。
有关如何与 Windows Server 2012 R2 交互的详细信息,请参阅 Windows Server 2012 中的常见管理任务和导航。
若要将要使用的应用程序池作为此服务应用程序的变量存储,请在 Microsoft PowerShell 命令提示符处,键入以下命令:
$applicationPool = Get-SPServiceApplicationPool -Identity 'SharePoint Web Services default'
其中:
- SharePoint Web Services default 是将包含新的服务应用程序的服务应用程序池的名称。
此 cmdlet 将服务应用程序池设置为可在后面的 cmdlet 中重新使用的变量。 如果您具有多个应用程序池且必须为特定的服务应用程序使用不同的应用程序池,请重复此过程步骤以创建每个服务应用程序来使用适当的应用程序池。
若要还原 Search Service 应用程序并升级搜索管理数据库,请在 Microsoft PowerShell 命令提示符处,键入以下命令:
$searchInst = Get-SPEnterpriseSearchServiceInstance -local # Gets the Search service instance and sets a variable to use in the next command Restore-SPEnterpriseSearchServiceApplication -Name '<SearchServiceApplicationName>' -applicationpool $applicationPool -databasename '<SearchServiceApplicationDBName>' -databaseserver <ServerName> -AdminSearchServiceInstance $searchInst
其中:
SearchServiceApplicationName 是 Search Service 应用程序的名称。
$applicationpool 是你设置用来标识要使用的服务应用程序池的变量。
提示
[!提示] 如果您不使用变量 $applicationPool,则必须按照格式" 应用程序池名称"指定现有服务应用程序池的名称。 若要查看服务应用程序池的列表,可以运行 Get-SPServiceApplicationPool cmdlet。
SearchServiceApplicationDBName 是你想要升级的、Search Service 应用程序要使用的搜索管理数据库的名称。
$searchInst 是您设置用来标识新的 Search Service 应用程序实例的变量。
注意:搜索服务应用程序升级可能会失败,例如,由于网络或 SQL Server 延迟。 如果在升级过程中出现错误消息,请执行以下操作:
删除尝试升级的搜索管理数据库。
通过使用为搜索管理数据库创建的备份副本,可仅对 Search Service 应用程序重复本文中的以下过程:
在 Microsoft PowerShell 命令提示符处再次键入此命令以升级 Search Service 应用程序。
有关详细信息,请参阅 Restore-SPEnterpriseSearchServiceApplication。
通过完成以下操作,创建搜索服务应用程序代理并将其添加到默认代理组:
键入以下命令获取 Search Service 应用程序的 ID,并将其作为变量存储:
$ssa = Get-SPEnterpriseSearchServiceApplication
有关详细信息,请参阅 Get-SPEnterpriseSearchServiceApplication。
键入以下命令创建 Search Service 应用程序的代理:
New-SPEnterpriseSearchServiceApplicationProxy -Name ProxyName -SearchApplication $ssa
其中:
ProxyName 是要使用的代理名称。
$ssa 是您之前设置用来标识新的 Search Service 应用程序的变量。
提示 :如果未使用变量 $ssa,必须使用 ID(而不是名称)标识 Search Service 应用程序。 若要查找 ID,可以运行 Get-SPServiceApplication cmdlet,返回所有服务应用程序 ID 的列表。
有关详细信息,请参阅 New-SPEnterpriseSearchServiceApplicationProxy。
键入以下命令获取刚创建的代理的 Search Service 应用程序代理 ID,并将其设置为变量 $ssap:
$ssap = Get-SPEnterpriseSearchServiceApplicationProxy
有关详细信息,请参阅 Get-SPEnterpriseSearchServiceApplicationProxy。
键入以下命令将 Search Service 应用程序代理添加到默认代理组:
Add-SPServiceApplicationProxyGroupMember -member $ssap -identity ""
其中:
$ssap 是您之前设置用来标识刚刚为 Search Service 应用程序创建的代理的 ID。
提示 :如果未使用变量 $ssap,必须使用 ID(而不是名称)标识 Search Service 应用程序代理。 若要查找 ID,可以运行 Get-SPServiceApplicationProxy cmdlet,返回所有服务应用程序代理 ID 的列表。
使用空 的 Identity 参数 (“”) 将其添加到默认组。
有关详细信息,请参阅 Add-SPServiceApplicationProxyGroupMember。
如果 SharePoint Server 2013 Service Pack 1 (SP1) 场使用已进行分区的链接数据库,则使用相同的方法对 SharePoint Server 2016 场中的链接数据库进行分区。 若要了解具体操作方法,请参阅 Move-SPEnterpriseSearchLinksDatabases。
(可选)保留 SharePoint Server 2013 Service Pack 1 (SP1) 场中的搜索关联设置。 因为升级的 Search Service 应用程序具有新的空索引,SharePoint Server 2013 Service Pack 1 (SP1) 场中的搜索分析数据无法完全保留。 复制 SharePoint Server 2013 Service Pack 1 (SP1) 场中的分析报告数据库,然后将其附加到 SharePoint Server 2016 场中的新 Search Service 应用程序:
在 SharePoint Server 2013 Service Pack 1 (SP1) 场中,backup(备份)分析报告数据库。
在 SharePoint Server 2016 场中,restore the backed up database(将备份的数据库还原)至新的数据库服务器。
在 SharePoint Server 2016 场中,attach the restored database(将还原的数据库附加)到新的 Search Service 应用程序。
确认新的 SharePoint Server 2016 场上的搜索拓扑是否与 SharePoint Server 2013 Service Pack 1 (SP1) 场的搜索拓扑类似。 如果你的搜索要求已改变,那么现在正是扩展新的 SharePoint Server 2016 场的搜索拓扑的最佳时机。
恢复 SharePoint Server 2013 Service Pack 1 (SP1) 环境中的 Search Service 应用程序。
在 PowerShell 命令提示符处,键入以下命令:
$ssa = Get-SPEnterpriseSearchServiceApplication <SearchServiceApplicationName> $ssa.Resume()
其中:
- SearchServiceApplicationName 是你想要恢复的 Search Service 应用程序的名称。
确认所有新代理都位于默认代理组中
使用以下过程确认创建代理并将其添加到默认代理组的步骤起作用。
若要使用 PowerShell 验证所有新代理是否都位于默认代理组中,请执行以下操作:
确认您具有以下成员身份:
SQL Server 实例上的 securityadmin 固定服务器角色。
要更新的所有数据库上的 db_owner 固定数据库角色。
运行 PowerShell cmdlet 的服务器上的 Administrators 组。
管理员可使用 Add-SPShellAdmin cmdlet 来授予使用 SharePoint Server 2016 cmdlet 的权限。
注意 :如果没有这些权限,请联系安装管理员或 SQL Server 管理员,以请求获取权限。 有关 PowerShell 权限的其他信息,请参阅 Add-SPShellAdmin。
启动 SharePoint 2016 命令行管理程序。
对于 Windows Server 2012 R2:
在 “开始” 屏幕上,选择“ SharePoint 2016 命令行管理程序”。
如果 SharePoint 2016 命令行管理程序 不在 “开始” 屏幕上,请右键单击“ 计算机”,选择“ 所有应用”,然后选择“ SharePoint 2016 命令行管理程序”。
有关如何与 Windows Server 2012 R2 交互的详细信息,请参阅 Windows Server 2012 中的常见管理任务和导航。
在 PowerShell 命令提示符处,键入以下命令:
$pg = Get-SPServiceApplicationProxyGroup -Identity "" $pg.Proxies
其中:
$pg 是您设置用来表示默认代理组的变量。
使用空 的 Identity 参数 (“”) 指定默认代理组。
这将返回默认代理组中的所有代理、其显示名称,类型名称和 ID 的列表。
有关详细信息,请参阅 Get-SPServiceApplicationProxyGroup。
现在已升级服务应用程序,您可以启动此过程以升级内容数据库。 此过程中的第一步是,创建每个内容数据库所需的 Web 应用程序。
阶段 | 说明 |
---|---|
这是将 SharePoint Server 2013 Service Pack 1 (SP1)数据和站点升级到 SharePoint Server 2016 的过程的第三阶段。 若要概览整个过程,请参阅SharePoint Server 2016 的升级过程概述。 |
下一阶段:将内容数据库升级到 SharePoint Server 2016
另请参阅
概念
创建 SharePoint Server 2016 场以执行数据库附加升级
将数据库复制到新场以升级到 SharePoint Server 2016
将内容数据库升级到 SharePoint Server 2016
SharePoint Server 2016 的服务升级概述