将服务应用程序升级到 SharePoint Server 订阅版

适用于:no-img-132013 no-img-162016 no-img-192019 yes-img-seSubscription Edition no-img-sopSharePoint in Microsoft 365

从 SharePoint Server 2019 或 SharePoint Server 2016 升级到 SharePoint Server 订阅版时,必须使用数据库附加升级,这意味着仅升级环境的内容,而不升级配置设置。 配置 SharePoint Server Subscription Edition 环境并复制内容和服务应用程序数据库后,可以将服务应用程序升级到 SharePoint Server 订阅版。 本文包含升级服务应用程序要执行的步骤。

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

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

Phases 说明
123 steps 这是将 SharePoint Server 2019 和 SharePoint Server 2016 数据和网站升级到 SharePoint Server 订阅版的过程中的第三个阶段。 此过程包括下列必须按顺序完成的阶段:
创建 SharePoint Server 订阅版场以执行数据库附加升级
将数据库复制到新服务器场以升级到 SharePoint Server 订阅版
服务应用程序升级到 SharePoint Server Subscription Edition (此阶段)
将内容数据库升级到 SharePoint Server 订阅版

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

开始之前

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

  • 确保用于执行本文中步骤的帐户是管理中心网站中服务器场管理员组的成员。

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

提示

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

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

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

注意

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

重要

[!重要说明] 以下步骤仅适用于自定义的服务器角色类型。 有关服务器角色类型的详细信息,请参阅 在 SharePoint Server 2016 和 SharePoint Server 2019 中规划 MinRole 服务器部署

  1. 启动服务实例。

    第一步是启动可升级的四个服务应用程序的服务实例:业务数据连接服务、托管元数据 Web 服务、安全存储服务和搜索服务。 可从管理中心启动这些服务实例中的大多数实例。 但是,必须使用 PowerShell 才能启动 SharePoint Server Search Service 实例。

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

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

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

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

    • Managed Metadata Service 应用程序

    • Search Service 应用程序

    • Secure Store Service 应用程序

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

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

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

启动服务实例

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

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

  1. 启动 SharePoint 2019 管理中心。

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

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

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

  5. 在“Secure Store Service”的旁边,单击“启动”。

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

提示

使用 MinRoles 时, Start 可能不可用,因为它由服务器场管理。 创建关联的服务应用程序后,它会自动启动服务实例。

使用 PowerShell 启动搜索服务实例

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

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

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

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

      管理员可以使用 Add-SPShellAdmin cmdlet 授予使用 SharePoint Server Subscription Edition cmdlet 的权限。

      注意

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

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

  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-SPEnterpriseSearchServiceInstanceStart-SPServiceInstance

升级 Secure Store 服务应用程序

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

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

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

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

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

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

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

      注意

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

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

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

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

    其中:

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

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

  4. 若要升级 Secure Store 服务应用程序,请在 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 2019 或 SharePoint Server 2016 cmdlet 的权限。

      注意

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

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

  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 2019 或 SharePoint Server 2016 cmdlet 的权限。

      注意

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

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

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

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

    其中:

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

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

  4. 若要升级托管元数据服务应用程序,请在 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. 在 PowerShell 命令提示符处,键入以下命令,为托管元数据服务应用程序创建代理:

    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

升级 User Profile Service 应用程序

在升级 User Profile 服务应用程序之前,请升级托管元数据服务应用程序。

若要升级用户配置文件服务应用程序,请将 SharePoint Server 2019 或 SharePoint Server 2016 场中的配置文件和社交数据库复制到 SharePoint Server Subscription Edition 场,并从 SharePoint Server 订阅版场中的 SharePoint Server 2019 或 SharePoint Server 2016 场创建新的用户配置文件服务应用程序。 还原会触发 SharePoint Server Subscription Edition 在 SharePoint Server Subscription Edition 场中创建新的用户配置文件服务应用程序,并将其指向复制的用户配置文件数据库。 若要完成 User Profile 服务应用程序的升级,请创建一个代理并将其添加到默认代理组。

使用 PowerShell 升级用户配置文件服务应用程序

  1. 按照以下步骤将 SharePoint Server 2019 或 SharePoint Server 2016 场中的配置文件和社交数据库复制到 SharePoint Server Subscription Edition 场:

    重要

    在 SharePoint Server 2019 和 SharePoint Server 2016 环境中执行这些步骤。

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

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

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

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

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

      注意

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

    • 启动 SharePoint 命令行管理程序。

    • 将用户配置文件数据库设置为只读。 在将 SharePoint Server 2019 或 SharePoint Server 2016 数据和网站升级到 SharePoint Server 订阅版的过程的第二阶段中,将所有其他数据库设置为只读。

    • 将 SharePoint Server 2019 或 SharePoint Server 2016 场中的配置文件和社交数据库复制到 SharePoint Server Subscription Edition 场,按照 将数据库复制到新场以升级到 SharePoint Server 订阅版中的过程进行操作。

      重要

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

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

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

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

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

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

    注意

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

  3. 启动 SharePoint 订阅版命令行管理程序。

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

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

    其中:

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

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

  5. 若要还原用户配置文件服务应用程序并升级配置文件和社交数据库,请在 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 是新同步数据库的名称。

  6. 通过完成以下操作,创建用户配置文件服务应用程序代理并将其添加到默认代理组:

    • 键入以下命令以获取 User Profile 服务应用程序的 ID 并将其存储为变量:

      $sa = Get-SPServiceApplication | ?{$_.TypeName -eq 'User Profile Service Application'}
      

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

    • 键入以下命令创建 User Profile Service 应用程序的代理:

      New-SPProfileServiceApplicationProxy -Name 'User Profile Service Application Proxy' -ServiceApplication $sa
      

      其中:

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

      • $sa是前面为标识新的用户配置文件服务应用程序的变量而设置的变量。

        提示

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

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

    • 键入以下命令以获取刚刚创建的代理的 User Profile 服务应用程序代理 ID,并将其设置为变量$proxy:

      $proxy = Get-SPServiceApplicationProxy | ?{$_.TypeName -eq 'User Profile Service Application Proxy'}
      

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

    • 键入以下命令,将 User Profile 服务应用程序代理添加到默认代理组:

      Add-SPServiceApplicationProxyGroupMember -member $proxy -identity ""
      

      其中:

      • $proxy是前面设置的变量,用于标识刚刚为用户配置文件服务应用程序创建的代理的 ID。

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

      • 使用空 的 Identity 参数 (“”) 将其添加到默认组。

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

升级 Search Service 应用程序

升级 User Profile Service 应用程序和 Managed Metadata Service 应用程序,然后再升级 Search Service 应用程序。

若要升级搜索服务应用程序,请将 SharePoint Server 2019 或 SharePoint Server 2016 场中的搜索管理数据库复制到 SharePoint Server Subscription Edition 场,并从 SharePoint Server 2019 或 SharePoint Server 2016 场还原搜索服务应用程序。 还原会触发 SharePoint Server Subscription Edition 在 SharePoint Server Subscription Edition 场中创建新的搜索服务应用程序,并将其指向复制的搜索管理数据库。 若要完成搜索服务应用程序的升级,请创建一个代理并将其添加到默认代理组,并确保新链接数据库和新的搜索拓扑的配置方式与 SharePoint Server 2019 或 SharePoint Server 2016 场的配置方式相同。

SharePoint Server 订阅版在创建新的搜索服务应用程序时,通常会使用所有搜索组件和数据库创建新的搜索拓扑。 在 还原 搜索服务应用程序期间,SharePoint Server 订阅版本会创建新的搜索拓扑,但会升级还原的搜索管理数据库,而不是创建新的搜索管理数据库。 升级后的搜索管理数据库保留对 SharePoint Server 2019 或 SharePoint Server 2016 场中的搜索架构、结果源和查询规则所做的任何添加或修改。

注意

在此升级期间,搜索不会对 SharePoint Server 2019 或 SharePoint Server 2016 中的内容进行爬网。 如果搜索结果的新鲜度很重要,则开始升级前先熟悉这些步骤,以达到节省时间的目的。

重要

由于 SharePoint Server Subscription Edition 场中的搜索拓扑是新的,因此索引为空。 在将 SharePoint Server 2019 和 SharePoint Server 2016 数据和网站升级到 SharePoint Server Subscription Edition) 的过程中, (升级 所有内容源 后,您必须对整个索引的文档库执行完全爬网。

使用 PowerShell 升级 Search Service 应用程序

  1. 将 SharePoint Server 2019 或 SharePoint Server 2016 场中的搜索管理数据库复制到 SharePoint Server Subscription Edition 场,然后执行以下步骤:

    注意

    在升级到 SharePoint Server 订阅版的早期步骤中,您复制了 SharePoint Server 2019 或 SharePoint Server 2016 环境中的所有其他内容和服务数据库。 建议在此稍后阶段复制搜索管理数据库,因为在复制搜索管理数据库时,必须在 SharePoint Server 2019 或 SharePoint Server 2016 环境中暂停搜索服务应用程序。

    重要

    在 SharePoint Server 2019 或 SharePoint Server 2016 环境中执行这些步骤。

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

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

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

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

        管理员可以使用 Add-SPShellAdmin cmdlet 授予使用 SharePoint Server Subscription Edition cmdlet 的权限。

        注意

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

    • 启动 SharePoint 2019 或 SharePoint 2016 命令行管理程序。

    • 暂停 Search Service 应用程序。 在 PowerShell 命令提示符处,键入以下命令:

        $ssa = Get-SPEnterpriseSearchServiceApplication <SearchServiceApplicationName>
        Suspend-SPEnterpriseSearchServiceApplication -Identity $ssa
      

      其中:

      SearchServiceApplicationName 是你想要暂停的 Search Service 应用程序的名称。

      注意

      当搜索服务应用程序暂停时,SharePoint Server 2019 或 SharePoint Server 2016 环境中的索引不会更新。 这意味着,在升级到 SharePoint Server 订阅版期间,搜索结果可能不太新鲜。

    • 将搜索管理数据库设置为只读。 在将 SharePoint Server 2019 或 SharePoint Server 2016 数据和网站升级到 SharePoint Server 订阅版的过程的第二阶段中,将所有其他数据库设置为只读。 现在 按照搜索管理数据库的相同说明进行操作

    • 将 SharePoint Server 2019 或 SharePoint Server 2016 场中的搜索管理数据库复制到 SharePoint Server Subscription Edition 场,按照将数据库复制到新场中的过程,以便仅针对搜索管理数据库 升级到 SharePoint Server 订阅版

      重要

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

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

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

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

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

    管理员可以使用 Add-SPShellAdmin cmdlet 授予使用 SharePoint Server Subscription Edition cmdlet 的权限。

    注意

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

  3. 启动 SharePoint 订阅版命令行管理程序。

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

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

    其中:

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

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

  5. 若要还原搜索服务应用程序并升级搜索管理数据库,请在 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 应用程序重复本文中的以下过程:

      • 键入 命令以在 PowerShell 命令提示符下再次升级搜索服务应用程序。

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

  6. 通过完成以下操作,创建搜索服务应用程序代理并将其添加到默认代理组:

    • 键入以下命令获取 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

  7. 如果 SharePoint Server 2019 或 SharePoint Server 2016 场使用已分区的链接数据库,请以相同的方式对 SharePoint Server 订阅版场中的 Links 数据库进行分区。 若要了解具体操作方法,请参阅 Move-SPEnterpriseSearchLinksDatabases

  8. (可选) 保留 SharePoint Server 2019 或 SharePoint Server 2016 场中的搜索相关性设置。 由于升级后的搜索服务应用程序具有新的空索引,因此无法完全保留来自 SharePoint Server 2019 或 SharePoint Server 2016 场的搜索分析数据。 从 SharePoint Server 2019 或 SharePoint Server 2016 场复制 Analytics Reporting 数据库,并将其附加到 SharePoint Server Subscription Edition 场中的新搜索服务应用程序:

    • 在 SharePoint Server 2019 或 SharePoint Server 2016 场中, 备份 Analytics Reporting 数据库。

    • 在 SharePoint Server Subscription Edition 场中, 将备份的数据库还原 到新的数据库服务器。

    • 在 SharePoint Server Subscription Edition 场中, 将还原的数据库附加到 新的搜索服务应用程序。

  9. 验证新 SharePoint Server Subscription Edition 场上的搜索拓扑是否与 SharePoint Server 2019 或 SharePoint Server 2016 场的搜索拓扑相似。 如果搜索要求已更改,现在是横向扩展新 SharePoint Server 订阅版场的搜索拓扑的好时机。

  10. 在 SharePoint Server 环境中恢复搜索服务应用程序。

    在 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 2019 或 SharePoint Server 2016 cmdlet 的权限。

    注意

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

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

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

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

    其中:

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

    • 使用空 的 Identity 参数 (“”) 指定默认代理组。

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

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

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

Phases 说明
123 steps 这是将 SharePoint Server 2019 和 SharePoint Server 2016 数据和网站升级到 SharePoint Server 订阅版的过程中的第三个阶段。
有关整个过程的概述,请参阅 升级到 SharePoint Server 订阅版的过程概述

下一阶段: 将内容数据库升级到 SharePoint Server 订阅版

另请参阅

概念

创建 SharePoint Server 订阅版场以执行数据库附加升级

将数据库复制到新服务器场以升级到 SharePoint Server 订阅版

将内容数据库升级到 SharePoint Server 订阅版

SharePoint Server 订阅版的服务升级概述