在 SharePoint Server 中移动或重命名服务应用程序数据库

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

了解如何在 SharePoint Server 中移动或重命名服务应用程序数据库。

将服务应用程序数据库移动到另一个场数据库服务器的主要原因是对场进行负载均衡。 或者,可能需要将其移动到较新的硬件。

使用 SharePoint 产品配置向导和 SharePoint Server 产品配置向导在场中创建服务应用程序数据库后,通常会重命名服务应用程序数据库以从数据库名称中删除 GUID。 可能还需要使数据库名称与组织的命名标准保持一致。

移动和重命名服务应用程序数据库都遵循相同的基本流程,但在移动服务应用程序数据库时有几个额外的步骤。

  1. 使用 Microsoft SQL Server Management Studio 或 Microsoft PowerShell 移动或重命名 SharePoint Server 服务应用程序数据库。

  2. 使用 SharePoint 管理中心网站或 PowerShell 将 SharePoint 服务应用程序指向已移动或重命名的数据库。

    根据移动或重命名的服务应用程序数据库数量,将服务应用程序指向数据库可能比较复杂。 不同的服务应用程序需要不同的方法来指向移动或重命名的数据库。

这些服务应用程序数据库使用以下步骤:

  • App Management Service

  • Managed Metadata Service

  • PerformancePoint Service

  • Secure Store Service

  • SharePoint Translation Service

  • State Service

  • 订阅设置服务

  • Word Automation Services

  1. 停止或禁用服务应用程序。

  2. 分离数据库。

  3. 移动或重命名数据库。

  4. 附加数据库。

  5. 将服务应用程序指向已移动或重命名的数据库。

  6. 重启服务应用程序。

Business Data Connectivity Service 和 User Profile Service 应用程序数据库需要以下步骤来移动或重命名数据库:

  1. 停止或禁用服务应用程序。

  2. 分离数据库。

  3. 移动或重命名数据库。

  4. 附加数据库。

  5. 将服务应用程序指向已移动或重命名的数据库。

  6. 删除服务应用程序。

  7. 重新创建服务应用程序。

  8. 重启服务应用程序。

Search Service 应用程序数据库需要执行以下步骤:

  1. 暂停服务应用程序。

  2. 将 Search service 应用程序设置为“只读”。

  3. 备份服务应用程序。

  4. 在托管 SQL Server 的新服务器中将最大并行度设置为 1。

  5. 将 Search service 应用程序还原到新的数据库服务器。

  6. 将 Search Service 应用程序设置为“读/写”。

  7. 启动服务应用程序。

  8. 将 Search Service 应用程序指向已移动或重命名的数据库。

使用 SQL Server 移动或重命名服务应用程序数据库的常规步骤

若要移动服务应用程序数据库,必须使用 SQL Server。 若要重命名服务应用程序数据库,必须使用 SQL Server 和 文件资源管理器。

警告

请勿在一个过程中尝试移动和重命名数据库。 应移动数据库或重命名数据库,而不是同时执行这两个操作。

移动或重命名服务应用程序数据库时,第一步是停止要更改的数据库的服务应用程序。 可以使用管理中心或 PowerShell 停止或启动服务。

步骤 1:使用管理中心停止服务应用程序

  1. 使用属于“Farm Administrators SharePoint”组成员的帐户。

  2. 在管理中心中,单击“系统设置”。

  3. 在“系统设置”页上的“服务器”部分,单击“管理服务器上的服务”

  4. 找到你要停止的服务应用程序,在服务的“操作”列中,单击“停止”或“禁用”,然后单击“确定”。

使用 PowerShell 停止服务的具体步骤

  1. 使用具有以下成员身份的帐户:

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

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

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

    注意

    若要详细了解 Microsoft PowerShell 权限,请参阅权限

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

  3. 下一步需要知道服务 GUID。 使用 Get-SPServiceInstance cmdlet 检索场中所有服务及其 GUID 的列表。

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

    Stop-SPServiceInstance -Identity <ServiceGUID>
    

    其中 <,ServiceGUID> 是服务的 GUID。

    有关详细信息,请参阅 Stop-SPServiceInstance

使用 SQL Server Management Studio 和文件资源管理器移动数据库

移动数据库需要先从 SQL Server 分离数据库,使用文件资源管理器将文件移动到新的位置,然后将数据库附加到 SQL Server 的新实例。

步骤 2:从 SQL Server 分离数据库

  1. 对于要移动的所有数据库,请使用具有 db_owner 固定数据库角色的帐户。

  2. 在 SQL Server Management Studio 中,连接到服务应用程序数据库附加到的 SQL Server 实例上,然后展开“数据库”节点。

  3. 右键单击数据库,指向"任务",然后单击"分离"。 针对要移动的每个数据库,重复此步骤。

步骤 3:使用资源管理器将数据库文件移到新位置

  1. 使用对源位置具有读取权限且对目标位置具有写入权限的帐户。

  2. 在文件资源管理器中,找到服务应用程序数据库的 .mdf、.ndf 和 .ldf 文件,然后选择要移动的文件。 数据库文件通常在此处找到, C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLServer\MSSQL\Data

  3. 将数据库文件复制或移动到新位置。

步骤 4:将数据库附加到 SQL Server 的新实例

  1. 对于要移动的所有数据库,请使用具有 db_owner 固定数据库角色的帐户。

  2. 在 SQL Server Management Studio 中,打开目标 SQL Server 实例。

  3. 右键单击“数据库”节点,指向“任务”,再单击“附加”。

  4. 在“ 附加数据库 ”对话框中,浏览到移动 .mdf、.ndf 和 .ldf 文件的位置,选择要附加的数据库的 .mdf 文件,然后单击“ 确定”。 对要移动的每个数据库重复此步骤。

使用 SQL Server Management Studio 重命名数据库

重命名服务应用程序数据库是一个两步过程,首先停止服务,就像要移动数据库一样。 然后,使用 SQL Server Management Studio 重命名数据库。

步骤 3:使用 SQL Server 重命名数据库

  1. 在 SQL Server Management Studio 中,连接到源 SQL Server 实例,然后展开“数据库”节点。

  2. 右键单击要重命名的数据库,单击“重命名”,然后键入新名称。 对要重命名的每个数据库重复此步骤。

将 SharePoint Server 服务应用程序指向已移动或重命名的数据库

下一步是指向已移动或重命名的数据库。 可以使用管理中心或 PowerShell 执行此操作。 对于大多数 SharePoint Server 服务应用程序,使用管理中心将服务应用程序指向移动或重命名的数据库是相同的。 使用 PowerShell 将服务应用程序指向移动或重命名的数据库因每个服务应用程序而异。 本部分提供有关每个服务应用程序和数据库的指南。

步骤 5:使用管理中心将服务应用程序指向已移动或重命名的数据库

  1. 使用属于“Farm Administrators SharePoint”组成员的帐户。

  2. 在管理中心中的“应用程序管理”下,单击“管理服务应用程序”。

  3. 在“管理服务应用程序”页上,单击服务应用程序名称旁边的行中的空白区域。 功能区变为活动状态,单击“ 属性 ”,此时会显示 “编辑服务应用程序 ”对话框。

  4. 更改数据库服务器或数据库名称,然后单击“确定”。

使用 PowerShell 将 Managed Metadata Service 应用程序指向已移动或重命名的数据库

  1. 使用具有以下成员身份的帐户:

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

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

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

    注意

    若要详细了解 Microsoft PowerShell 权限,请参阅权限

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

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

    $app = Get-SPServiceApplication -Name "<ServiceApplicationName>"
    Set-SPMetadataServiceApplication -Identity "<Name/GUID of service application>" $app -DatabaseName "<DatabaseName>" -DatabaseCredentials PSCredential object>
    

    其中:

    • <ServiceApplicationName> 是 Managed Metadata Service 应用程序的名称。

    • <DatabaseName> 是已重命名数据库的名称。

使用 PowerShell 将 PerformancePoint Service 应用程序指已向重命名或已移动的数据库

  1. 使用具有以下成员身份的帐户:

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

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

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

    注意

    若要详细了解 Microsoft PowerShell 权限,请参阅权限

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

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

    Set-SPPerformancePointServiceApplication -Identity "<ServiceApplicationName>" -SettingsDatabase "<DatabaseServerName\DatabaseName>"
    

    其中:

    • <ServiceApplicationName> 是 PerformancePoint Service 应用程序的名称。

    • <DatabaseServerName\DatabaseName> 是已重命名或移动的数据库的位置和名称。 如果您只是重命名数据库,则不包括位置。

State Service 数据库用于存储临时状态信息数据。 可以通过执行以下过程之一,使用 PowerShell 将状态服务服务应用程序指向已移动的数据库:

使用 PowerShell 将新数据库添加到 State Service 服务应用程序并删除旧数据库

  1. 使用具有以下成员身份的帐户:

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

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

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

    注意

    若要详细了解 Microsoft PowerShell 权限,请参阅权限

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

  3. 在 PowerShell 命令提示符处,键入以下命令以创建新的数据库:

    New-SPStateServiceDatabase -Name "<NewDatabaseName>"
    

    然后,键入以下命令以删除旧的数据库:

    Remove-SPStateServiceDatabase -Name "<OldDatabaseName>"
    

    其中:

    • <NewDatabaseName> 是要创建的新数据库的名称。

    • <OldDatabaseName> 是要与 State Service 取消关联并从 SQL Server 分离的旧数据库的名称。

使用 PowerShell 将 State Service 服务应用程序指向已移动的数据库

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

  2. 在 PowerShell 命令提示符处,键入以下命令以卸除数据库:

    Dismount-SPStateServiceDatabase -Identity <DatabaseID>
    

    其中 <DatabaseID> 是要从服务应用程序中删除的状态服务数据库。 键入的值必须是 12345678-90ab-cdef-1234-567890bcdefgh 形式的有效 GUID、State 数据库的有效名称或有效 SPStateServiceDatabase 对象的实例。

    有关详细信息,请参阅 Dismount-SPStateServiceDatabase

  3. 移动数据库。 有关详细信息,请参阅使用SQL Server Management Studio移动数据库和文件资源管理器

  4. 在 PowerShell 命令提示符处,键入以下命令,以装载已重命名或移动的数据库:

    Mount-SPStateServiceDatabase -Name "<DatabaseName>" -DatabaseServer "<ServerName>"
    

    其中:

    • <DatabaseName> 是要与 State Service 关联的数据库的名称。

    • <ServerName> 是托管 State Service 数据库的 SQL Server 的名称。

使用 PowerShell 将 Usage and Health Data Collection 服务应用程序指向已移动的数据库

  1. 使用具有以下成员身份的帐户:

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

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

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

    注意

    若要详细了解 Microsoft PowerShell 权限,请参阅权限

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

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

    Set-SPUsageApplication -Identity "<ServiceApplicationName>" -DatabaseName "<DbName>" -DatabaseServer "<SQLServerName>"
    

    其中:

    • <ServiceApplicationName> 是 Usage and Health Data Collection 服务应用程序的名称。

    • <DatabaseName> 是数据库的名称。

    • <SQLServerName> 是数据库服务器的名称。

使用 PowerShell 将 Word Automation 服务应用程序指向已重命名或移动的数据库

  1. 使用具有以下成员身份的帐户:

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

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

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

    注意

    若要详细了解 Microsoft PowerShell 权限,请参阅权限

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

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

    $app = Get-SPServiceApplication -Name "<ServiceApplicationName>"
    Set-SPWordConversionServiceApplication -Identity $app -DatabaseName "<DatabaseName>" -DatabaseServer "<DatabaseServer>"
    

    其中:

    • <ServiceApplicationName> 是 Word Automation Service 应用程序的名称。

    • <DatabaseName> 是重命名或移动的数据库的名称。

    • <DatabaseServer> 是重命名或移动的数据库的位置。 如果要指向同一位置的重命名的数据库,则不包括此参数。

使用 PowerShell 将 Subscription Settings Services 服务应用程序指向已移动的数据库

  1. 使用具有以下成员身份的帐户:

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

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

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

    注意

    若要详细了解 Microsoft PowerShell 权限,请参阅权限

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

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

    Set-SPSubscriptionSettingsServiceApplication -Identity "<ServiceApplicationName>" -DatabaseName "<DatabaseName>" -DatabaseServer "<DatabaseServer>"
    

    其中:

    • <ServiceApplicationName> 是 Subscription Settings Service 应用程序的名称。

    • <DatabaseName> 是重命名的数据库的名称。

    • <DatabaseServer> 是已重命名数据库的名称。

步骤 6:使用管理中心启动服务应用程序

  1. 使用属于“Farm Administrators SharePoint”组成员的帐户。

  2. 在管理中心中,单击“系统设置”。

  3. 在“系统设置”页上的“服务器”部分,单击“管理服务器上的服务”

  4. 找到所需的服务应用程序,单击服务“操作”列中的“启动”,然后单击“确定”。

移动或重命名 Business Data Connectivity Service 和 User Profile Service 应用程序数据库的步骤

移动或重命名业务数据连接服务应用程序和用户配置文件服务应用程序数据库时,需要执行额外的步骤。 这两个服务应用程序数据库所需的额外步骤是,在移动或重命名数据库后,建议删除服务应用程序,然后重新创建它。

以下过程演示如何移动或删除业务数据连接服务应用程序。

停止 Business Data Connectivity service 应用程序。

  1. 使用属于“Farm Administrators SharePoint”组成员的帐户。

  2. 在管理中心中,单击“系统设置”。

  3. 在“系统设置”页上的“服务器”部分,单击“管理服务器上的服务”

  4. 找到你要停止的服务应用程序,在服务的“操作”列中,单击“停止”或“禁用”,然后单击“确定”。

使用 PowerShell 停止服务的具体步骤

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

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

    Stop-SPServiceInstance -Identity <ServiceGUID>
    

    其中 <,ServiceGUID> 是服务的 GUID。 如果不知道服务 GUID,可以使用 Get-SPServiceInstance cmdlet 检索服务器场中所有服务及其 GUID 的列表。

    有关详细信息,请参阅 Stop-SPServiceInstanceGet-SPServiceInstance

步骤 2:从 SQL Server 分离数据库

  1. 对于要移动的所有数据库,请使用具有 db_owner 固定数据库角色的帐户。

  2. 在 SQL Server Management Studio 中,连接到源 SQL Server 实例,然后展开“数据库”节点。

  3. 右键单击数据库,指向"任务",然后单击"分离"。 针对要移动的每个数据库,重复此步骤。

第 3 步:使用文件资源管理器或 Windows 资源管理器将数据库文件移到新位置的具体步骤

  1. 使用对源位置具有读取权限且对目标位置具有写入权限的帐户。

  2. 在文件资源管理器中,找到服务应用程序数据库的 .mdf、.ndf 和 .ldf 文件,然后选择要移动的文件。 数据库文件通常在此处找到, C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLServer\MSSQL\Data

  3. 将数据库文件复制或移动到新位置。

步骤 4:将数据库附加到 SQL Server 的新实例

  1. 对于要移动的所有数据库,请使用具有 db_owner 固定数据库角色的帐户。

  2. 在 SQL Server Management Studio 中,打开目标 SQL Server 实例。

  3. 右键单击“数据库”节点,指向“任务”,再单击“附加”。

  4. 在“ 附加数据库 ”对话框中,浏览到移动 .mdf、.ndf 和 .ldf 文件的位置,选择要附加的数据库的 .mdf 文件,然后单击“ 确定”。 对要移动的每个数据库重复此步骤。

将 Business Data Connectivity service 应用程序指向已移动的数据库

适用于大多数服务应用程序的将服务应用程序指向移动的数据库的一般方法为:先删除服务应用程序,然后再重新创建服务应用程序。 重新创建服务应用程序时,请使用新的名称或新的位置。

记录服务应用程序设置

在删除并重新创建服务应用程序之前,需存档服务应用程序的设置。 为此,请使用 SharePoint Server 中的文档服务器场配置设置一文中所述的建议 PowerShell cmdlet。

使用管理中心删除服务应用程序

  1. 使用属于“Farm Administrators SharePoint”组成员的帐户。

  2. 在管理中心中,单击“应用程序管理”,然后单击“管理服务应用程序”。

  3. 在"服务应用程序"页上,将光标置于 Business Data Connectivity Service的旁边,然后单击空行。

    功能区将变为活动状态。

  4. 在功能区上,单击"删除"。

  5. 在“删除服务应用程序”对话框中,如果要删除服务应用程序数据库,请选中“ 删除与服务应用程序关联的数据 ”旁边的复选框。 如果要保留此数据库,请清除该复选框。

  6. 单击"确定"删除服务应用程序,或单击"取消"停止操作。

创建服务应用程序

若要创建 Business Data Connectivity Service 应用程序,请按照在 SharePoint Server 中创建 Business Data Connectivity Service 应用程序中的过程操作。

启动服务应用程序

  1. 若要启动服务应用程序,请参阅在 SharePoint Server 中启动或停止服务

在 SharePoint Server 2013 和 SharePoint Server 2016 中移动或重命名 Search Service 应用程序数据库的步骤

若要移动搜索服务应用程序数据库,必须使用SQL Server、SQL Server Management Studio和 Windows 资源管理器。 若要指向移动的数据库,必须使用 PowerShell。 请按列出的顺序完成以下步骤。

重要说明:

用于执行操作的帐户必须具有以下成员身份和权限:

  • SharePoint 组“Farm Administrators”的成员。

  • 本地服务器上 Administrators 组的成员。

  • 对源位置的读取权限和对目标位置的写入权限。

  • 要移动的所有数据库的 db_owner 固定数据库角色。

  • 要移动的所有数据库的 db_creatorsecurityadmin 角色。

Search Service 帐户必须具有以下角色:

  • 管理数据库、链接数据库和爬网数据库上的 db_owner 固定数据库角色。

  • 分析报告数据库上的 SPSearchDBAdmin 数据库角色。

在有些环境中,您必须与数据库管理员配合执行重命名和移动过程。 请务必遵循适用的策略和准则来管理数据库。

使用 PowerShell 暂停 Search Service 应用程序

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

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

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

    其中<,SearchServiceApplicationName> 是与数据库移动关联的搜索服务应用程序的名称。

更改 Search Service 应用程序数据库的只读模式

  1. 使用属于内容数据库的 db_owner 固定数据库角色的成员帐户。

  2. 打开 SQL Server Management Studio 并连接到数据库服务器。

  3. 在对象资源管理器中,展开“数据库”。

  4. 将下列数据库设置为只读模式:

    • 搜索管理

    • 分析报告

    • 爬网

    • 链接

    • 右键单击要设置为读/写或只读的数据库,然后单击“属性”。

    • 在“ 数据库属性 ”对话框的“ 选项 属性”页上的“ 状态 ”部分,在“数据库只读”旁边的列表中选择 “True ”或“ False ”,然后单击“ 确定”。

    • 单击“是”

备份 Search Service 应用程序数据库

  1. 使用是存储每个数据库的数据库服务器上 SQL Server db_backupoperator 固定数据库角色的成员帐户。

  2. 启动 SQL Server Management Studio 并连接到存储 Search Service 应用程序数据库的数据库服务器。

  3. 在对象资源管理器中,展开“数据库”。

  4. 右键单击要备份的数据库,指向“任务”,然后单击“备份”

  5. 在“ 备份数据库 ”对话框的“ ”区域中,从“备份类型”列表中选择要执行的 备份类型

    有关要使用的备份类型的详细信息,请参阅恢复模式 (SQL Server)

  6. 在“备份组件”区域中,单击“数据库”。

  7. 在“名称”框中,为备份集使用默认名称或指定一个名称。

  8. 指定备份集的到期日期。

    此日期确定备份集何时可被同名的后续备份覆盖。 默认情况下,备份集设置为永不过期(0 天)。

  9. 在“目标”区域中指定要将备份存储的位置。

  10. 单击“确定”以备份数据库。

  11. 对以下数据库重复步骤 1-10:

    • 搜索管理

    • 分析报告

    • 爬网

    • 链接

在托管 SQL Server 的新服务器中将最大并行度值设置为 1

  1. 启动 SQL Server Management Studio,并连接到托管 SQL Server 的新服务器,你将在其中移动 Search Service 应用程序数据库。

  2. 在“对象资源管理器”中,右键单击数据库服务器,然后单击“属性”。

  3. 单击“高级”。

  4. 在“最大并行度”框中,选择“1”,以限制并行计划执行中要使用的处理器的数量。

    有关详细信息,请参阅配置“最大并行度”服务器配置选项

将 Search Service 应用程序数据库还原到新的数据库服务器

  1. 使用存储每个数据库的数据库服务器上的 SQL Server sysadmin 固定服务器角色的成员帐户。

  2. 启动 SQL Server Management Studio 并连接到数据库服务器。

  3. 在“对象资源管理器”中,展开“数据库”。

  4. 右键单击要还原的数据库,指向“任务”,再指向“还原”,然后单击“数据库”

  5. 在“ 还原数据库 ”对话框的“ 常规 ”页上,从“ 到数据库 ”列表中选择要还原到的数据库。

  6. 从“源数据库”列表中选择还原源。

  7. 在“选择要还原的备份集”区域,选中数据库旁边的复选框。

  8. 在“选项”选项卡上,从“恢复状态”部分选择恢复状态。

    有关要使用的恢复类型的详细信息,请参阅 SQL Server 联机丛书中的恢复模式 (SQL Server)

  9. 单击“确定”以还原数据库。

  10. 对与该服务应用程序关联的每个数据库重复步骤 1-9。

将 Search Service 应用程序数据库设置为读/写

  1. 按照更改 Search Service 应用程序数据库的只读模式中的步骤操作。

使用 PowerShell 将 Search Service 应用程序指向已移动的数据库

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

  2. 将 Search Service 应用程序数据库指向新位置。 在 PowerShell 命令提示符处,键入以下命令:

    $ssa = Get-SPEnterpriseSearchServiceApplication <SearchServiceApplicationName>
    $ssa | Set-SPEnterpriseSearchServiceApplication [-DatabaseName "<NewDbName>"] -DatabaseServer "<NewServerName>"
    

    其中:

    • <NewDbName> 是数据库的名称。

    • <NewServerName> 是新的数据库位置。

  3. 将分析报告数据库指向新位置。 在 PowerShell 命令提示符处,键入以下命令:

    Add-SPServerScaleOutDatabase -ServiceApplication $ssa -DatabaseServer <OriginalServerName> [-DatabaseName <NewDbName>]
    $temp = Get-SPServerScaleOutDatabase -ServiceApplication $ssa
    Remove-SPServerScaleOutDatabase -Database $temp[0] -ServiceApplication $ssa
    

    其中:

    • <OriginalServerName> 是原始 SQL 服务器的名称。
  4. 将 CrawlStore 数据库指向新位置。 在 PowerShell 命令提示符处,键入以下命令:

    $CrawlDatabase0 = ([array]($ssa | Get-SPEnterpriseSearchCrawlDatabase))[0]
    $CrawlDatabase0 | Set-SPEnterpriseSearchCrawlDatabase [-DatabaseName "<NewDbName>"] -DatabaseServer "<NewServerName>"
    
  5. 将 LinkStore 数据库指向新位置。 在 PowerShell 命令提示符处,键入以下命令:

    $LinksDatabase0 = ([array]($ssa | Get-SPEnterpriseSearchLinksDatabase))[0]
    $LinksDatabase0 | Set-SPEnterpriseSearchLinksDatabase [-DatabaseName "<NewDbName>"] -DatabaseServer "<NewServerName>"
    
  6. 将所有 Search Service 实例设置为联机。 对服务器场中的每个 Search Service 运行以下命令,直到 Search Service 实例报告为联机。 在 PowerShell 命令提示符处,键入以下命令:

    Get-SPEnterpriseSearchServiceInstance -Identity <Search Server> Do {write-host -NoNewline .;Sleep 10; $searchInstance = Get-SPEnterpriseSearchServiceInstance -Identity <Search Server>} while ($searchInstance.Status -ne "Online")
    

    其中 <,搜索服务器> 是托管搜索组件的服务器的名称。

  7. 恢复 Search Service 应用程序。 在 PowerShell 命令提示符处,键入以下命令:

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

    其中<,SearchServiceApplicationName> 是与数据库移动关联的搜索服务应用程序的名称。

  8. 重新启动托管搜索组件的每台服务器。

在 SharePoint Server 2019 中移动或重命名 Search Service 应用程序数据库的步骤

若要移动搜索服务应用程序数据库,必须使用SQL Server、SQL Server Management Studio和 Windows 资源管理器。 若要指向移动的数据库,必须使用 PowerShell。 请按列出的顺序完成以下步骤。

重要说明:

用于执行操作的帐户必须具有以下成员身份和权限:

  • SharePoint 组“Farm Administrators”的成员。

  • 本地服务器上 Administrators 组的成员。

  • 对源位置的读取权限和对目标位置的写入权限。

  • 要移动的所有数据库的 db_owner 固定数据库角色。

  • 要移动的所有数据库的 db_creatorsecurityadmin 角色。

Search Service 帐户必须具有以下角色:

  • 管理数据库、链接数据库和爬网数据库上的 db_owner 固定数据库角色。

  • 分析报告数据库上的 SPSearchDBAdmin 数据库角色。

在有些环境中,您必须与数据库管理员配合执行重命名和移动过程。 请务必遵循适用的策略和准则来管理数据库。

使用 PowerShell 暂停 Search Service 应用程序

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

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

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

    其中<,SearchServiceApplicationName> 是与数据库移动关联的搜索服务应用程序的名称。

更改 Search Service 应用程序数据库的只读模式

  1. 使用属于内容数据库的 db_owner 固定数据库角色的成员帐户。

  2. 打开 SQL Server Management Studio 并连接到数据库服务器。

  3. 在对象资源管理器中,展开“数据库”。

  4. 将下列数据库设置为只读模式:

    • 搜索管理

    • 分析报告

    • 爬网

    • 链接

    • 右键单击要设置为读/写或只读的数据库,然后单击“属性”。

    • 在“ 数据库属性 ”对话框的“ 选项 属性”页上的“ 状态 ”部分,在“数据库只读”旁边的列表中选择 “True ”或“ False ”,然后单击“ 确定”。

    • 单击“是”

备份 Search Service 应用程序数据库

  1. 使用是存储每个数据库的数据库服务器上 SQL Server db_backupoperator 固定数据库角色的成员帐户。

  2. 启动 SQL Server Management Studio 并连接到存储 Search Service 应用程序数据库的数据库服务器。

  3. 在对象资源管理器中,展开“数据库”。

  4. 右键单击要备份的数据库,指向“任务”,然后单击“备份”

  5. 在“ 备份数据库 ”对话框的“ ”区域中,从“备份类型”列表中选择要执行的 备份类型

    有关要使用的备份类型的详细信息,请参阅恢复模式 (SQL Server)

  6. 在“备份组件”区域中,单击“数据库”。

  7. 在“名称”框中,为备份集使用默认名称或指定一个名称。

  8. 指定备份集的到期日期。

    此日期确定备份集何时可被同名的后续备份覆盖。 默认情况下,备份集设置为永不过期(0 天)。

  9. 在“目标”区域中指定要将备份存储的位置。

  10. 单击“确定”以备份数据库。

  11. 对以下数据库重复步骤 1-10:

    • 搜索管理

    • 分析报告

    • 爬网

    • 链接

在托管 SQL Server 的新服务器中将最大并行度值设置为 1

  1. 启动 SQL Server Management Studio,并连接到托管 SQL Server 的新服务器,你将在其中移动 Search Service 应用程序数据库。

  2. 在“对象资源管理器”中,右键单击数据库服务器,然后单击“属性”。

  3. 单击“高级”。

  4. 在“最大并行度”框中,选择“1”,以限制并行计划执行中要使用的处理器的数量。

    有关详细信息,请参阅配置“最大并行度”服务器配置选项

将 Search Service 应用程序数据库还原到新的数据库服务器

  1. 使用存储每个数据库的数据库服务器上的 SQL Server sysadmin 固定服务器角色的成员帐户。

  2. 启动 SQL Server Management Studio 并连接到数据库服务器。

  3. 在“对象资源管理器”中,展开“数据库”。

  4. 右键单击要还原的数据库,指向“任务”,再指向“还原”,然后单击“数据库”

  5. 在“ 还原数据库 ”对话框的“ 常规 ”页上,从“ 到数据库 ”列表中选择要还原到的数据库。

  6. 从“源数据库”列表中选择还原源。

  7. 在“选择要还原的备份集”区域,选中数据库旁边的复选框。

  8. 在“选项”选项卡上,从“恢复状态”部分选择恢复状态。

    有关要使用的恢复类型的详细信息,请参阅 SQL Server 联机丛书中的恢复模式 (SQL Server)

  9. 单击“确定”以还原数据库。

  10. 对与该服务应用程序关联的每个数据库重复步骤 1-9。

将 Search Service 应用程序数据库设置为读/写

  1. 按照更改 Search Service 应用程序数据库的只读模式中的步骤操作。

使用 PowerShell 将 Search Service 应用程序指向已移动的数据库

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

    注意

    这些说明假定你将对所有命令使用相同的 PowerShell 会话。

  2. 在 PowerShell 命令提示符处,键入以下命令,将搜索管理数据库与搜索服务相关联。

     $ssa = Get-SPEnterpriseSearchServiceApplication <SearchServiceApplication>
     $ssa | Set-SPEnterpriseSearchServiceApplication -DatabaseName <SearchAdministrationServiceDatabase> -DatabaseServer <SearchServiceDatabaseServer>
    

    其中:

    • <SearchServiceApplication> 是与数据库关联的搜索服务应用程序的名称。

    • <SearchAdministrationServiceDatabase> 是搜索服务应用程序管理数据库的名称。

    • <SearchServiceDatabaseServer> 是托管搜索服务应用程序数据库的新 databse 服务器的名称。

  3. 在 PowerShell 命令提示符处,键入以下命令,将搜索分析数据库与搜索服务相关联。

    Add-SPServerScaleOutDatabase -ServiceApplication $ssa -DatabaseServer <SearchServiceDatabaseServer> -DatabaseName <SearchServiceAnalyticsDatabase>
    $temp = Get-SPServerScaleOutDatabase -ServiceApplication $ssa
    Remove-SPServerScaleOutDatabase -ServiceApplication $ssa -Database $temp[0]
    

    其中:

    • <SearchServiceAnalyticsDatabase> 是搜索服务应用程序分析数据库的名称。

    • <SearchServiceDatabaseServer> 是托管搜索服务应用程序数据库的新 databse 服务器的名称。

  4. 在 PowerShell 命令提示符处,键入以下命令,将搜索爬网数据库与 搜索服务相关联。

    New-SPEnterpriseSearchCrawlDatabase -SearchApplication $ssa -DatabaseName <SearchServiceCrawlDatabase> -DatabaseServer <SearchServiceDatabaseServer>
    $crawlDBToDelete = $ssa | Get-SPEnterpriseSearchCrawlDatabase -Identity "<OldCrawlStoreDatabase>"
    Remove-SPEnterpriseSearchCrawlDatabase -Identity $crawlDBToDelete
    

    其中:

    • <SearchServiceCrawlDatabase> 是搜索服务应用程序爬网数据库的名称。

    • <SearchServiceDatabaseServer> 是托管搜索服务应用程序数据库的新 databse 服务器的名称。

    • <OldCrawlStoreDatabase> 是旧搜索服务应用程序爬网数据库的名称。

  5. 在 PowerShell 命令提示符处,键入以下命令,将搜索链接数据库与搜索服务相关联。

    New-SPEnterpriseSearchLinksDatabase -DatabaseName <SearchServiceLinksDatabase> -SearchApplication $ssa -DatabaseServer <SearchServiceDatabaseServer>
    $oldLinksStoreDB = ([array]($ssa | Get-SPEnterpriseSearchLinksDatabase))[0]
    $newLinksStoreDB = ([array]($ssa | Get-SPEnterpriseSearchLinksDatabase))[1]
    Move-SPEnterpriseSearchLinksDatabases -SearchApplication $ssa -TargetStores @($newLinksStoreDB) -Confirm:$false
    

    其中:

    • <SearchServiceLinksDatabase> 是搜索服务应用程序链接数据库的名称。

    • <SearchServiceDatabaseServer> 是托管搜索服务应用程序数据库的新数据库服务器的名称。

  6. 在 PowerShell 命令提示符处,键入以下命令以恢复搜索服务应用程序。

    Resume-SPEnterpriseSearchServiceApplication -Identity $ssa
    
  7. 在 PowerShell 命令提示符处,键入以下命令以从 搜索服务中删除旧的搜索链接数据库。

    Remove-SPEnterpriseSearchLinksDatabase -Identity $oldLinksStoreDB -SearchApplication $ssa -Confirm:$false
    

    其中:

    • $oldLinksStoreDB 是步骤 5 中的变量。

另请参阅

概念

移动 SharePoint Server 中的所有数据库