共用方式為


在 SharePoint Server 的資料庫間移動網站集合

適用於:yes-img-132013 yes-img-16 2016yes-img-19 2019yes-img-seSubscription Edition no-img-sopSharePoint in Microsoft 365

在某些情況下,您可能會想要將一或多個網站集合移至不同的內容資料庫。 例如,網站集合可能會成長,大到其所在的內容資料庫無法容納,而您必須將網站集合移至較大的內容資料庫。 在 SharePoint Server 中將網站集合移到較大的資料庫時,應該先檢視此程序。

不過,若網站集合未成長至其預期容量,則將多個網站集合結合為一個內容資料庫可能會更方便使用。 在 SharePoint Server 中,此程序不會合併內容資料庫,而是改為將網站集合會移至並加入到新的資料庫。

您可以使用 Microsoft PowerShell 在 SharePoint Server 伺服器陣列的資料庫之間移動網站集合。 使用「備份與還原」程序也可以移動網站集合。 如需如何執行的相關資訊,請參閱<在 SharePoint Server 中備份網站集合>和<在 SharePoint Server 中還原網站集合>。

開始之前

開始這項作業之前,必須符合下列條件:

  • 目的地內容資料庫必須已存在。

  • 來源內容資料庫與目的地內容資料庫必須位在相同的 SQL Server 執行個體上。

  • 來源內容資料庫與目的地內容資料庫必須附加至相同的 Web 應用程式。 如需如何將內容資料庫新增至 Web 應用程式的詳細資訊,請參閱<在 SharePoint Server 中新增內容資料庫>。

決定來源網站集合的大小

將網站集合移到另一個內容資料庫時,會複製稽核資料。 稽核資料的大小會因為網路集合的事件集合設定而有所不同。 如果稽核資料很大,您可以先將資料移到另一個資料庫,然後再移動網站集合。 若要這樣做,請使用<使用 Microsoft PowerShell 封存和裁剪稽核資料>程序。

不論移動網站集合的原因為何,一律應先從決定要移動的網站集合大小開始。 接著,確定目的地硬碟可以足夠地包含網站集合內容。 請確認目的地硬碟的可用空間至少是網站集合所需空間的三倍。

提示

您可以建立網站配額與電子郵件提醒,了解網站集合所用空間的最新資訊。

使用 PowerShell 決定網站集合的大小

  1. 確認您具備下列成員身分:
  • SQL Server 執行個體上的 securityadmin 固定伺服器角色。

  • 所有要更新之資料庫上的 db_owner 固定資料庫角色。

  • 正在執行 PowerShell Cmdlet 之所在伺服器上的系統管理員群組。

    系統管理員可以使用 Add-SPShellAdmin Cmdlet 授與使用 SharePoint Server Cmdlet 的權限。

    注意事項

    [!附註] 如果您不具備上述權限,請連絡安裝程式系統管理員或 SQL Server 系統管理員要求權限。 如需 PowerShell 權限的其他資訊,請參閱 Add-SPShellAdmin

  1. 啟動 SharePoint 管理命令介面。

  2. 在 PowerShell 命令提示字元處,輸入下列命令:

$used = (Get-SPSiteAdministration -Identity <http://ServerName/Sites/SiteName>).DiskUsed
$used

其中:

  • <http://ServerName/Sites/SiteName> 是網站集合的名稱。

指定網站集合所使用的磁碟空間量會儲存在 $used 變數中,並在第二個命令執行時顯示在命令提示字元中。

注意事項

顯示的磁碟空間量並沒有包含與網路集合一起移動的稽核資料使用的磁碟空間。

如需詳細資訊,請參閱 Get-SPSiteAdministration

使用 PowerShell 封存和裁剪稽核資料

  1. 確認您具備下列成員身分:
  • SQL Server 執行個體上的 securityadmin 固定伺服器角色。

  • 所有要更新之資料庫上的 db_owner 固定資料庫角色。

  • 正在執行 PowerShell Cmdlet 之所在伺服器上的系統管理員群組。

    系統管理員可以使用 Add-SPShellAdmin Cmdlet 授與使用 SharePoint Server Cmdlet 的權限。

    注意事項

    [!附註] 如果您不具備上述權限,請連絡安裝程式系統管理員或 SQL Server 系統管理員要求權限。 如需 PowerShell 權限的其他資訊,請參閱 Add-SPShellAdmin

  1. 啟動 SharePoint 管理命令介面。

  2. 在 PowerShell 命令提示字元中,輸入下列命令:

(Get-SPSite -Identity <http://ServerName/Sites/SiteName>).Audit.TrimAuditLog(deleteEndDate)

其中:

  • <http://ServerName/Sites/SiteName> 是網站集合的名稱。

若要在未封存稽核資料前就刪除它,請輸入下列命令:

(Get-SPSite -Identity <http://ServerName/Sites/SiteName>).Audit.DeleteEntries(deleteEndDate)

如需詳細資訊,請參閱<Get-SPSite>。

注意事項

[!附註] 建議您在執行命令列管理工作時使用 Windows PowerShell。 Stsadm 命令列工具已過時,但為與舊版產品相容,仍會隨附提供。

在內容資料庫之間移動網站集合

您可以使用 PowerShell 命令 Move-SPSite ,在內容資料庫之間移動網站集合。 此處提供兩個程序。 第一個程序會將單一網站集合移至新的內容資料庫,而第二個程序會將多個網站集合移至新的內容資料庫。

移動單一網站集合

  1. 確認您具備下列成員身分:
  • SQL Server 執行個體上的 securityadmin 固定伺服器角色。

  • 所有要更新之資料庫上的 db_owner 固定資料庫角色。

  • 正在執行 PowerShell Cmdlet 之所在伺服器上的系統管理員群組。

    系統管理員可以使用 Add-SPShellAdmin Cmdlet 授與使用 SharePoint Server Cmdlet 的權限。

    注意事項

    [!附註] 如果您不具備上述權限,請連絡安裝程式系統管理員或 SQL Server 系統管理員要求權限。 如需 PowerShell 權限的其他資訊,請參閱 Add-SPShellAdmin

  1. 啟動 SharePoint 管理命令介面。

  2. 在 PowerShell 命令提示字元中,輸入下列命令:

Move-SPSite <http://ServerName/Sites/SiteName> -DestinationDatabase <DestinationContentDb>

其中:

  • <http://ServerName/Sites/SiteName> 是網站集合的名稱。

  • <DestinationContentDb> 是目的地內容資料庫的名稱。

移動多個網站集合

  1. 確認您具備下列成員身分:
  • SQL Server 執行個體上的 securityadmin 固定伺服器角色。

  • 所有要更新之資料庫上的 db_owner 固定資料庫角色。

  • 正在執行 PowerShell Cmdlet 之所在伺服器上的系統管理員群組。

    系統管理員可以使用 Add-SPShellAdmin Cmdlet 授與使用 SharePoint Server Cmdlet 的權限。

    注意事項

    [!附註] 如果您不具備上述權限,請連絡安裝程式系統管理員或 SQL Server 系統管理員要求權限。 如需 PowerShell 權限的其他資訊,請參閱 Add-SPShellAdmin

  1. 啟動 SharePoint 管理命令介面。

  2. 在 PowerShell 命令提示字元中,輸入下列命令:

Get-SPSite -ContentDatabase <SourceContentDb> | Move-SPSite -DestinationDatabase <DestinationContentDb>

其中:

  • <SourceContentDb> 是來源內容資料庫的名稱。

  • <DestinationContentDb> 是目的地內容資料庫的名稱。

此命令會將所有網站集合從來源內容資料庫移至目的地內容資料庫。

如需詳細資訊,請參閱<Move-SPSite>。

注意事項

[!附註] 建議您在執行命令列管理工作時使用 Windows PowerShell。 Stsadm 命令列工具已過時,但為與舊版產品相容,仍會隨附提供。

另請參閱

概念

在 SharePoint Server 中新增內容資料庫