将服务应用程序升级到 SharePoint Server 2016

 

**上一次修改主题:**2018-03-15

**摘要:**将服务应用程序(Business Connectivity Services、Managed Metadata、Secure Store、Search)升级到 SharePoint Server 2016。

当您从 SharePoint Server 2013 Service Pack 1 (SP1)升级到 SharePoint Server 2016 时,必须使用数据库附加升级,这意味着只升级环境内容而不升级配置设置。配置 SharePoint Server 2016 环境并复制内容和服务应用程序数据库之后,您可将服务应用程序升级到 SharePoint Server 2016。本文包含升级服务应用程序要执行的步骤。

升级过程的第 3 阶段:升级服务应用程序

Phase 3 of the upgrade process: Upgrade service applications

123 steps

这是将 SharePoint Server 2013 Service Pack 1 (SP1)数据和站点升级到 SharePoint Server 2016 的过程的第 3 阶段。此过程包括下列必须按顺序完成的阶段:

  1. 创建 SharePoint Server 2016 服务器场以进行数据库连接升级

  2. 将数据库复制到新服务器场以升级到 SharePoint Server 2016

  3. 将服务应用程序升级到 SharePoint Server 2016(本阶段)

  4. 将内容数据库升级到 SharePoint Server 2016

有关整个过程的概述,请参阅SharePoint Server 2016 的升级过程概述

开始之前

升级服务应用程序前,请阅读以下信息并执行所有建议的操作。

  • 确保用于执行本文中的步骤的帐户是管理中心的 Farm administrators 组的成员。

  • 确定要用于已升级服务应用程序的服务应用程序池。下列过程对服务应用程序使用默认的应用程序池(“SharePoint Web Services 默认值”)。您可在 PowerShell 中使用 Get-SPServiceApplicationPool 查看可用服务应用程序池的列表。或者也可以使用 New-SPServiceApplicationPool cmdlet 创建服务应用程序池。有关详细信息,请参阅 Get-SPServiceApplicationPoolNew-SPServiceApplicationPool

提示

为了节省时间和减少工作量,本文在所有 PowerShell cmdlet 中使用变量(如 $applicationPool、$sss、$upa 等)。如果您不想,则不必使用这些变量。但是,如果您不使用这些变量,则必须在指定 identity 参数时对服务应用程序和服务应用程序代理使用 ID。每个过程都包含有关使用的变量的信息,或要用于查找所需的任何 ID 的备用 cmdlet。
此外,本文中的许多过程都包含设置 $applicationPool 变量的步骤。如果您要在同一 PowerShell 会话中执行所有这些过程,并希望对所有服务应用程序使用相同的应用程序池,则不必在每个过程中重复此步骤。相反,您只需在一开始设置此变量一次,然后就可以在本文的所有过程中使用它。

备注

对于 SharePoint 2013 架构中的任何 SPWebURL 托管属性,应在开始过程前对其进行重命名(即,将 SPWebURL 重命名为 SPWebURL1)。在升级到 SharePoint Server 2016 后,SPWebURL1 托管属性名称可更改回原始名称(即 SPWebURL)。

关于升级服务应用程序数据库

若要升级服务应用程序数据库,您可以创建一个新的服务应用程序并提供要用于该新服务应用程序的现有数据库的名称。在创建服务应用程序时,将升级数据库。此过程包含多个步骤。

备注

无法升级 Word Automation Services 和机器翻译服务。需要创建新的服务实例。

重要

以下步骤仅适用于自定义的服务器角色类型。有关服务器角色类型的详细信息,请参阅SharePoint Server 2016 中的 MinRole 服务器部署规划

  1. 启动服务实例

    第一步是启动可升级的五个服务应用程序的服务实例:Business Data Connectivity Service、Managed Metadata Web Service、PerformancePoint Services Service、Secure Store Service 和 Search Service。可从管理中心启动这些服务实例中的大多数实例。但是,必须使用 PowerShell 才能启动 SharePoint Server Search Service 实例。

  2. 创建服务应用程序并升级数据库

    启动服务实例之后,下一步是创建服务应用程序并升级数据库。您必须使用 PowerShell 还原服务应用程序数据库。

  3. 创建服务应用程序的代理

    升级服务应用程序数据库后,创建服务应用程序的代理并将这些代理添加到默认代理组。您必须创建以下服务应用程序的代理:

    • Managed Metadata Service 应用程序

    • Search Service 应用程序

    • Secure Store Service 应用程序

    • PerformancePoint Services Service 应用程序

    在创建服务应用程序时,Business Data Connectivity Service 应用程序会自动创建代理并将其分配给默认代理组。

  4. 确认代理位于默认组中

以下各节提供了完成这些步骤的过程。

启动服务实例

以下过程将启动服务实例。

从管理中心启动服务应用程序实例

  1. 启动 SharePoint 2016 管理中心。

    • 对于 Windows Server 2012 R2:

      • 在“开始”菜单上,单击“SharePoint 2016 管理中心”。

        如果“SharePoint 2016 管理中心”不在“开始”屏幕上:

      • 右键单击“计算机”,单击“所有应用程序”,然后单击“SharePoint 2016 管理中心”。

    有关如何与 Windows Server 2012 R2 进行交互的详细信息,请参阅 Windows Server 2012 中的常见管理任务和导航

  2. 在 SharePoint 2016 管理中心的“应用程序管理”页上,在“服务应用程序”部分单击“管理服务器上的服务”。

  3. 在“Business Data Connectivity Service”的旁边,单击“启动”。

  4. 在“Managed Metadata Web Service”的旁边,单击“启动”。

  5. 在“PerformancePoint Services Service”的旁边,单击“启动”。

  6. 在“Secure Store服务”的旁边,单击“启动”。

必须使用 PowerShell 启动搜索服务实例,因为除非 Search Service 应用程序已存在,否则无法从管理中心启动该实例。

使用 PowerShell 启动搜索服务实例

  1. 确认您具有以下成员身份:

    • SQL Server 实例上的 securityadmin 固定服务器角色。

    • 要更新的所有数据库上的 db_owner 固定数据库角色。

    • 运行 PowerShell cmdlet 的服务器上的 Administrators 组。

    管理员可使用 Add-SPShellAdmin cmdlet 来授予使用 SharePoint Server 2016 cmdlet 的权限。

    备注

    如果您不具有这些权限,请联系您的安装管理员或 SQL Server 管理员来请求权限。有关 PowerShell 权限的其他信息,请参阅 Add-SPShellAdmin

  2. 启动 SharePoint 2016 命令行管理程序。

    • 对于 Windows Server 2012 R2:

      • 在“开始”菜单上,单击“SharePoint 2016 命令行管理程序”。

        如果“SharePoint 2016 命令行管理程序”不在“开始”屏幕上:

      • 右键单击“计算机”,单击“所有应用程序”,然后单击“SharePoint 2016 命令行管理程序”。

    有关如何与 Windows Server 2012 R2 进行交互的详细信息,请参阅 Windows Server 2012 中的常见管理任务和导航

  3. 若要启动搜索服务实例,请在 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 and Start-SPServiceInstance。

升级 Secure Store 服务应用程序

若要升级Secure Store服务应用程序,您可以创建新的服务应用程序并升级数据库,创建代理并将其添加到默认代理组,然后还原以前的环境中的密码。

使用 PowerShell 升级 Secure Store 服务应用程序

  1. 确认您具有以下成员身份:

    • SQL Server 实例上的 securityadmin 固定服务器角色。

    • 要更新的所有数据库上的 db_owner 固定数据库角色。

    • 运行 PowerShell cmdlet 的服务器上的 Administrators 组。

    管理员可使用 Add-SPShellAdmin cmdlet 来授予使用 SharePoint Server 2016 cmdlet 的权限。

    备注

    如果您不具有这些权限,请联系您的安装管理员或 SQL Server 管理员来请求权限。有关 PowerShell 权限的其他信息,请参阅 Add-SPShellAdmin

  2. 启动 SharePoint 2016 命令行管理程序。

    • 对于 Windows Server 2012 R2:

      • 在“开始”菜单上,单击“SharePoint 2016 命令行管理程序”。

        如果“SharePoint 2016 命令行管理程序”不在“开始”屏幕上:

      • 右键单击“计算机”,单击“所有应用程序”,然后单击“SharePoint 2016 命令行管理程序”。

    有关如何与 Windows Server 2012 R2Windows Server 2012 进行交互的详细信息,请参阅 Windows Server 2012 中的常见管理任务和导航

  3. 若要将要使用的应用程序池作为此服务应用程序的变量存储,请在 Microsoft PowerShell 命令提示符处,键入以下命令:

    $applicationPool = Get-SPServiceApplicationPool -Identity 'SharePoint Web Services default'
    

    其中:

    • SharePoint Web Services default 是将包含新的服务应用程序的服务应用程序池的名称。这是默认的服务应用程序池。您可指定其他服务应用程序池。

    此 cmdlet 将服务应用程序池设置为可在后面的 cmdlet 中重新使用的变量。如果您具有多个应用程序池且必须为特定的服务应用程序使用不同的应用程序池,请重复此过程步骤以创建每个服务应用程序来使用适当的应用程序池。

  4. 若要升级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

  5. 键入以下命令创建 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服务应用程序和代理后,您必须刷新加密密钥。有关如何刷新加密密钥的信息,请参阅刷新加密密钥

  6. 键入以下命令还原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 Service 应用程序

  1. 确认您具有以下成员身份:

    • SQL Server 实例上的 securityadmin 固定服务器角色。

    • 要更新的所有数据库上的 db_owner 固定数据库角色。

    • 运行 PowerShell cmdlet 的服务器上的 Administrators 组。

    管理员可使用 Add-SPShellAdmin cmdlet 来授予使用 SharePoint Server 2016 cmdlet 的权限。

    备注

    如果您不具有这些权限,请联系您的安装管理员或 SQL Server 管理员来请求权限。有关 PowerShell 权限的其他信息,请参阅 Add-SPShellAdmin

  2. 启动 SharePoint 2016 命令行管理程序。

    • 对于 Windows Server 2012 R2:

      • 在“开始”菜单上,单击“SharePoint 2016 命令行管理程序”。

        如果“SharePoint 2016 命令行管理程序”不在“开始”屏幕上:

      • 右键单击“计算机”,单击“所有应用程序”,然后单击“SharePoint 2016 命令行管理程序”。

    有关如何与 Windows Server 2012 R2 进行交互的详细信息,请参阅 Windows Server 2012 中的常见管理任务和导航

  3. 若要将要使用的应用程序池作为此服务应用程序的变量存储,请在 Microsoft PowerShell 命令提示符处,键入以下命令:

    $applicationPool = Get-SPServiceApplicationPool -Identity 'SharePoint Web Services default'
    

    其中:

    • SharePoint Web Services default 是将包含新的服务应用程序的服务应用程序池的名称。

    此 cmdlet 将服务应用程序池设置为可在后面的 cmdlet 中重新使用的变量。如果您具有多个应用程序池且必须为特定的服务应用程序使用不同的应用程序池,请重复此过程步骤以创建每个服务应用程序来使用适当的应用程序池。

  4. 若要升级 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 升级 Managed Metadata Service 应用程序

  1. 确认您具有以下成员身份:

    • SQL Server 实例上的 securityadmin 固定服务器角色。

    • 要更新的所有数据库上的 db_owner 固定数据库角色。

    • 运行 PowerShell cmdlet 的服务器上的 Administrators 组。

    管理员可使用 Add-SPShellAdmin cmdlet 来授予使用 SharePoint Server 2016 cmdlet 的权限。

    备注

    如果您不具有这些权限,请联系您的安装管理员或 SQL Server 管理员来请求权限。有关 PowerShell 权限的其他信息,请参阅 Add-SPShellAdmin

  2. 启动 SharePoint 2016 命令行管理程序。

    • 对于 Windows Server 2012 R2:

      • 在“开始”菜单上,单击“SharePoint 2016 命令行管理程序”。

        如果“SharePoint 2016 命令行管理程序”不在“开始”屏幕上:

      • 右键单击“计算机”,单击“所有应用程序”,然后单击“SharePoint 2016 命令行管理程序”。

    有关如何与 Windows Server 2012 R2 进行交互的详细信息,请参阅 Windows Server 2012 中的常见管理任务和导航

  3. 若要将要使用的应用程序池作为此服务应用程序的变量存储,请在 Microsoft PowerShell 命令提示符处,键入以下命令:

    $applicationPool = Get-SPServiceApplicationPool -Identity 'SharePoint Web Services default'
    

    其中:

    • SharePoint Web Services default 是将包含新的服务应用程序的服务应用程序池的名称。

    此 cmdlet 将服务应用程序池设置为可在后面的 cmdlet 中重新使用的变量。如果您具有多个应用程序池且必须为特定的服务应用程序使用不同的应用程序池,请重复此过程步骤以创建每个服务应用程序来使用适当的应用程序池。

  4. 若要升级 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

  5. 在 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 服务应用程序

  1. 确认您具有以下成员身份:

    • SQL Server 实例上的 securityadmin 固定服务器角色。

    • 要更新的所有数据库上的 db_owner 固定数据库角色。

    • 运行 PowerShell cmdlet 的服务器上的 Administrators 组。

    管理员可使用 Add-SPShellAdmin cmdlet 来授予使用 SharePoint Server 2016 cmdlet 的权限。

    备注

    如果您不具有这些权限,请联系您的安装管理员或 SQL Server 管理员来请求权限。有关 PowerShell 权限的其他信息,请参阅 Add-SPShellAdmin

  2. 启动 SharePoint 2016 命令行管理程序。

    • 对于 Windows Server 2012 R2:

      • 在“开始”菜单上,单击“SharePoint 2016 命令行管理程序”。

        如果“SharePoint 2016 命令行管理程序”不在“开始”屏幕上:

      • 右键单击“计算机”,单击“所有应用程序”,然后单击“SharePoint 2016 命令行管理程序”。

    有关如何与 Windows Server 2012 R2 进行交互的详细信息,请参阅 Windows Server 2012 中的常见管理任务和导航

  3. 若要将要使用的应用程序池作为此服务应用程序的变量存储,请在 Microsoft PowerShell 命令提示符处,键入以下命令:

    $applicationPool = Get-SPServiceApplicationPool -Identity 'SharePoint Web Services default'
    

    其中:

    • SharePoint Web Services default 是将包含新的服务应用程序的服务应用程序池的名称。

    此 cmdlet 将服务应用程序池设置为可在后面的 cmdlet 中重新使用的变量。如果您具有多个应用程序池且必须为特定的服务应用程序使用不同的应用程序池,请重复此过程步骤以创建每个服务应用程序来使用适当的应用程序池。

  4. 若要升级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-SPProfileServiceApplication

  5. 键入以下命令创建 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

升级 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 升级 Search Service 应用程序

  1. 若要将 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) 环境中执行这些步骤。

    1. 验证您是否拥有以下成员身份:

      • SQL Server 实例上的 securityadmin 固定服务器角色。

      • 要更新的所有数据库上的 db_owner 固定数据库角色。

      • 运行 PowerShell cmdlet 的服务器上的 Administrators 组。

      管理员可使用 Add-SPShellAdmin cmdlet 来授予使用 SharePoint Server 2016 cmdlet 的权限。

      备注

      如果您不具有这些权限,请联系您的安装管理员或 SQL Server 管理员来请求权限。有关 PowerShell 权限的其他信息,请参阅 Add-SPShellAdmin

    2. 启动 SharePoint 命令行管理程序。

      • 对于 Windows Server 2012 R2:

        • 在“开始”菜单上,单击“SharePoint 命令行管理程序”。

          如果“SharePoint 命令行管理程序”不在“开始”屏幕上:

        • 右键单击“计算机”,单击“所有应用程序”,然后单击“SharePoint 命令行管理程序”。

      有关如何与 Windows Server 2012 R2 进行交互的详细信息,请参阅 Windows Server 2012 中的常见管理任务和导航

    3. 将搜索管理数据库设置为只读在将 SharePoint Server 2013 Service Pack 1 (SP1) 数据和站点升级到 SharePoint Server 2016 的过程中的第二阶段,将所有其他数据库设置为只读。按照现在用于搜索管理数据库的 the same instructions(同一说明)操作。

    4. 暂停 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 期间,搜索结果的新鲜度可能不是很高。

    5. 将 SharePoint Server 2013 Service Pack 1 (SP1) 场中的搜索管理数据库复制到 SharePoint Server 2016 场,遵循 将数据库复制到新服务器场以升级到 SharePoint Server 2016 中的步骤(仅适用于搜索管理数据库)。

    重要

    在 SharePoint Server 2016 环境中执行后续步骤。

  2. 验证您是否拥有以下成员身份:

    • SQL Server 实例上的 securityadmin 固定服务器角色。

    • 要更新的所有数据库上的 db_owner 固定数据库角色。

    • 运行 PowerShell cmdlet 的服务器上的 Administrators 组。

    管理员可使用 Add-SPShellAdmin cmdlet 来授予使用 SharePoint Server 2016 cmdlet 的权限。

    备注

    如果您不具有这些权限,请联系您的安装管理员或 SQL Server 管理员来请求权限。有关 PowerShell 权限的其他信息,请参阅 Add-SPShellAdmin

  3. 启动 SharePoint 2016 命令行管理程序。

    • 对于 Windows Server 2012 R2:

      • 在“开始”菜单上,单击“SharePoint 2016 命令行管理程序”。

        如果“SharePoint 2016 命令行管理程序”不在“开始”屏幕上:

      • 右键单击“计算机”,单击“所有应用程序”,然后单击“SharePoint 2016 命令行管理程序”。

    有关如何与 Windows Server 2012 R2 进行交互的详细信息,请参阅 Windows Server 2012 中的常见管理任务和导航

  4. 若要将要使用的应用程序池作为此服务应用程序的变量存储,请在 Microsoft PowerShell 命令提示符处,键入以下命令:

    $applicationPool = Get-SPServiceApplicationPool -Identity 'SharePoint Web Services default'
    

    其中:

    • SharePoint Web Services default 是将包含新的服务应用程序的服务应用程序池的名称。

    此 cmdlet 将服务应用程序池设置为可在后面的 cmdlet 中重新使用的变量。如果您具有多个应用程序池且必须为特定的服务应用程序使用不同的应用程序池,请重复此过程步骤以创建每个服务应用程序来使用适当的应用程序池。

  5. 若要还原 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 应用程序实例的变量。

    备注

    Search Service 应用程序升级可能会失败,例如,由于网络或 SQL Server 延迟。如果在升级期间出现错误消息,请执行以下操作:

    1. 删除尝试升级的搜索管理数据库。

    2. 通过使用为搜索管理数据库创建的备份副本,可仅对 Search Service 应用程序重复本文中的以下过程:

      1. 还原数据库的备份副本

      2. 将数据库设置为读-写

    3. 在 Microsoft PowerShell 命令提示符处再次键入此命令以升级 Search Service 应用程序。

    有关详细信息,请参阅 Restore-SPEnterpriseSearchServiceApplication

    您必须按照多个步骤操作以创建 Search Service 应用程序代理并将其添加到默认代理组。您必须完成单独的操作以查找 Search Service 应用程序的 ID,创建新代理,获取代理 ID,然后将代理添加到默认代理组。

  6. 键入以下命令获取 Search Service 应用程序的 ID,并将其作为变量存储:

    $ssa = Get-SPEnterpriseSearchServiceApplication
    

    有关详细信息,请参阅 Get-SPEnterpriseSearchServiceApplication

  7. 键入以下命令创建 Search Service 应用程序的代理:

    New-SPEnterpriseSearchServiceApplicationProxy -Name ProxyName -SearchApplication $ssa 
    

    其中:

    • ProxyName 是要使用的代理名称。

    • $ssa 是您之前设置用来标识新的 Search Service 应用程序的变量。

      提示

      如果您未使用变量 $ssa,则必须使用 ID 来标识 Search Service 应用程序而不是名称。若要查找 ID,可以运行 Get-SPServiceApplication cmdlet 返回所有服务应用程序 ID 的列表。

    有关详细信息,请参阅 New-SPEnterpriseSearchServiceApplicationProxy

  8. 键入以下命令获取刚创建的代理的 Search Service 应用程序代理 ID,并将其设置为变量 $ssap:

    $ssap = Get-SPEnterpriseSearchServiceApplicationProxy 
    

    有关详细信息,请参阅 Get-SPEnterpriseSearchServiceApplicationProxy

  9. 键入以下命令将 Search Service 应用程序代理添加到默认代理组:

    Add-SPServiceApplicationProxyGroupMember -member $ssap -identity " "
    

    其中:

    • $ssap 是您之前设置用来标识刚刚为 Search Service 应用程序创建的代理的 ID。

      提示

      如果您未使用变量 $ssap,则必须使用 ID 来标识 Search Service 应用程序代理而不是名称。若要查找 ID,可以运行 Get-SPServiceApplicationProxy cmdlet 返回所有服务应用程序代理 ID 的列表。

    • 使用空 identity 参数 (" ") 将其添加到默认组。

    有关详细信息,请参阅 Add-SPServiceApplicationProxyGroupMember

  10. 如果 SharePoint Server 2013 Service Pack 1 (SP1) 场使用已进行分区的链接数据库,则使用相同的方法对 SharePoint Server 2016 场中的链接数据库进行分区。若要了解具体操作方法,请参阅 Move-SPEnterpriseSearchLinksDatabases

  11. (可选)保留 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 应用程序。

  12. 确认新的 SharePoint Server 2016 场上的搜索拓扑是否与 SharePoint Server 2013 Service Pack 1 (SP1) 场的搜索拓扑类似。如果你的搜索要求已改变,那么现在正是扩展新的 SharePoint Server 2016 场的搜索拓扑的最佳时机。

  13. 恢复 SharePoint Server 2013 Service Pack 1 (SP1) 环境中的 Search Service 应用程序。

    在 Windows PowerShell 命令提示符处,键入以下命令:

    $ssa = Get-SPEnterpriseSearchServiceApplication <SearchServiceApplicationName>
    $ssa.ForceResume(0x02)
    

    其中:

    • SearchServiceApplicationName 是你想要恢复的 Search Service 应用程序的名称。

确认所有新代理都位于默认代理组中

使用以下过程确认创建代理并将其添加到默认代理组的步骤起作用。

使用 PowerShell 确认所有新代理都位于默认代理组中

  1. 确认您具有以下成员身份:

    • SQL Server 实例上的 securityadmin 固定服务器角色。

    • 要更新的所有数据库上的 db_owner 固定数据库角色。

    • 运行 PowerShell cmdlet 的服务器上的 Administrators 组。

    管理员可使用 Add-SPShellAdmin cmdlet 来授予使用 SharePoint Server 2016 cmdlet 的权限。

    备注

    如果您不具有这些权限,请联系您的安装管理员或 SQL Server 管理员来请求权限。有关 PowerShell 权限的其他信息,请参阅 Add-SPShellAdmin

  2. 启动 SharePoint 2016 命令行管理程序。

    • 对于 Windows Server 2012 R2:

      • 在“开始”菜单上,单击“SharePoint 2016 命令行管理程序”。

        如果“SharePoint 2016 命令行管理程序”不在“开始”屏幕上:

      • 右键单击“计算机”,单击“所有应用程序”,然后单击“SharePoint 2016 命令行管理程序”。

    有关如何与 Windows Server 2012 R2 进行交互的详细信息,请参阅 Windows Server 2012 中的常见管理任务和导航

  3. 在 PowerShell 命令提示符处,键入以下命令:

    $pg = Get-SPServiceApplicationProxyGroup -Identity " "
    $pg.Proxies
    

    其中:

    • $pg 是您设置用来表示默认代理组的变量。

    • 使用空 identity 参数 (" ") 指定默认代理组。

    这将返回默认代理组中的所有代理、其显示名称,类型名称和 ID 的列表。

有关详细信息,请参阅 Get-SPServiceApplicationProxyGroup。

现在已升级服务应用程序,您可以启动此过程以升级内容数据库。此过程中的第一步是,创建每个内容数据库所需的 Web 应用程序。

123 steps

这是将 SharePoint Server 2013 Service Pack 1 (SP1)数据和站点升级到 SharePoint Server 2016 的过程的第三阶段。

有关整个过程的概述,请参阅SharePoint Server 2016 的升级过程概述

See also

创建 SharePoint Server 2016 服务器场以进行数据库连接升级
将数据库复制到新服务器场以升级到 SharePoint Server 2016
将内容数据库升级到 SharePoint Server 2016
SharePoint Server 2016 的服务升级概述

数据库附加升级的清单 (SharePoint 2013)