移動 SharePoint Server 中的所有資料庫

 

**適用版本:**SharePoint Foundation 2013, SharePoint Server 2013, SharePoint Server 2016

**上次修改主題的時間:**2017-09-14

**摘要:**了解如何將所有與 SharePoint Server 2016 和 SharePoint 2013 相關聯的資料庫移至新資料庫伺服器。

您可使用 SharePoint 管理中心網站 或 SQL Server 工具將所有與 SharePoint Server 相關聯的資料庫移至新資料庫伺服器。

開始之前

本文中的程序說明如何移動下列架設在單一資料庫伺服器的資料庫種類:

  • 設定資料庫

  • 管理中心 內容資料庫

  • 內容資料庫

  • 服務應用程式資料庫

重要

若要在同一個 SQL Server 執行個體內移動資料庫檔案,建議您使用 ALTER DATABASE 陳述式的 FILENAME 子句。如需詳細資訊,請參閱移動使用者資料庫
若要將資料庫移至另一個 SQL Server 執行個體或移至另一個伺服器,建議您使用資料庫卸離與附加 (SQL Server)SQL Server 資料庫的備份與還原中所找到的程序。

下列是執行此程序的基本必要權限:

  • 您必須是「SharePoint 伺服器陣列管理員」群組的成員。

  • 在執行 SharePoint 管理中心網站的電腦上,您必須是「管理員」群組的成員。

  • 在進行資料庫移動的來源資料庫伺服器上,您必須是下列身分的成員:

    • 管理員群組

    • db_backupoperator 固定資料庫角色

  • 在資料庫所移至的目的地資料庫伺服器上,您必須是下列身分的成員:

    • 管理員群組

    • db_owner 固定資料庫角色

在某些環境中,您必須與資料庫管理員協調移動程序。請務必遵循所有適用於管理資料庫的原則和準則。

重要

移動資料庫時,使用者將無法使用所有伺服器陣列網站及資產。請在正常上班時間外完成此作業。

移動所有資料庫

若要將某個資料庫伺服器的所有資料庫移至其他資料庫伺服器,您必須在 SharePoint Server 與 SQL Server 中作業。

開始這項作業之前,請先檢閱此程序的各個步驟:

  1. 準備新資料庫伺服器。

  2. 關閉所有開啟的 SharePoint 管理命令介面 視窗。

  3. 關閉所有與 SharePoint Server 和 Internet Information Services (IIS) 相關的服務。

  4. 將資料庫從目前的 SQL Server 執行個體卸離。

  5. 將所有與資料庫 (.mdf, .ndf, and .ldf) 相關聯的檔案,複製或移動到執行 SQL Server 的新目的地伺服器。

  6. 確認所有 SQL Server 登入資料、固定伺服器角色、固定資料庫角色與資料庫權限都已在新目的地資料庫伺服器正確設定。

    注意

    作為資料庫移動目的地的伺服器所擁有的資料庫資訊,務必要與目前的 SQL Server 執行個體所擁有的資料庫資訊相同。如需有關如何達成這一點的詳細資訊,請參閱如何在 SQL Server 的執行個體之間傳送登入和密碼。如需詳細資訊,請參閱伺服器層級角色資料庫層級角色

  7. 將資料庫附加到執行 SQL Server 的新目的地伺服器。

  8. 使用 SQL Server 連線別名指向新資料庫伺服器,並更新所有應用程式伺服器。

    如果您不要使用 SQL Server 連線別名,請使用下列其中一個程序來更新 SharePoint Server 伺服器陣列的資料庫連線。

    • 案例 1:如果您使用 SharePoint Server 和 SQL Server AlwaysOn 可用性群組來提高可用性或做為災害復原用途,請使用此程序來更新資料庫連接。

    • 案例 2:如果您必須使用手動步驟,或者,如果您將資料庫從 SharePoint Server 單一伺服器陣列角色安裝移至新的單一伺服器陣列角色安裝,請使用此程序。

  9. 重新啟動您在步驟 3 中停止的所有服務。

準備新的資料庫伺服器

  • 依照<設定 SharePoint Server 的 SQL Server 安全性>中的程序設定新資料庫伺服器。

    注意

    新資料庫伺服器執行的 Windows Server 和 SQL Server 版本,必須與現有的資料庫伺服器相同,或為下列其中一個版本:
    若為 SharePoint Server 2016:

    • Windows Server 2012 R2

    • Windows Server 2016

    • SQL Server 2014 Service Pack 1 (SP1)

    • SQL Server 2016

    若為 SharePoint 2013:
    • Windows Server 2008 R2

    • Windows Server 2008 R2 Service Pack 1 (SP1)

    • Windows Server 2012

    • SQL Server 2008

    • SQL Server 2012

    • SQL Server 2014

    現有 SharePoint Server 和 Windows Server 的版本也必須支援 DB 要移往的新 SQL Server 的版本。如需詳細資訊,請參閱<SharePoint Server 2016 的硬體及軟體需求>和<SharePoint 2013 的硬體及軟體需求>。

關閉所有開啟的 SharePoint 管理命令介面工作階段

  1. 關閉所有開啟的 SharePoint 管理命令介面 視窗,然後所有開啟的命令提示字元視窗。

停止伺服器陣列

  1. 在執行 管理中心的伺服器上,停止下列服務:

    • SharePoint Administration

    • SharePoint 計時器

    • SharePoint Tracing

    • SharePoint User Code Host

    • SharePoint VSS Writer

    • World Wide Web Publishing 服務

    • SharePoint Server Search 16

  2. 在執行 管理中心的伺服器上的命令提示字元中,輸入 iisreset /stop

卸離資料庫

  1. 在 SQL Server Management Studio 的原始資料庫伺服器上,將要移動的資料庫從所在的執行個體加以卸離。如果您執行許多資料庫,可能需要執行 Transact-SQL 指令碼來卸離資料庫。

    注意

    如果有下列一項情況,就無法卸離資料庫:

    • 資料庫正被鏡像。

    • 資料庫上有資料庫快照集。

    如需詳細資訊,請參閱:

將資料庫檔案移至新伺服器

  1. 確認執行此程序的使用者帳戶是下列項目的成員:

    • 在進行資料庫移動的來源資料庫伺服器上,您必須是下列身分的成員:

      • 管理員群組

      • db_backupoperator 固定資料庫角色

    • 在資料庫所移至的目的地資料庫伺服器上,您必須是下列身分的成員:

      • 管理員群組

      • db_owner 固定資料庫角色

  2. 使用 [Windows 檔案總管] 找出與每一個移動之資料庫相關聯的 .mdf, .ldf 與 .ndf 檔案。

  3. 將檔案複製或移動到執行 SQL Server 之新電腦上的目的地目錄。

在新伺服器上設定權限

  1. 確認執行此程序的使用者帳戶是下列項目的成員:

    • 管理員群組

    • db_owner 固定資料庫角色

  2. 在目的地資料庫伺服器上,啟動 Management Studio,將登入認證及權限從原始執行個體傳送至目的地執行個體。建議您以執行指令碼的方式來傳送權限。如何在 SQL Server 的執行個體之間傳送登入和密碼中有提供範例指令碼。

    如需在執行個體之間傳送 SQL Server 中繼資料的詳細資訊,請參閱在另一個伺服器執行個體上提供可用的資料庫時,管理中繼資料

將資料庫附加到 SQL Server 的新執行個體

  1. 確認執行此程序的使用者帳戶是下列項目的成員:

    • 管理員群組

    • db_owner 固定資料庫角色

  2. 在目的地資料庫伺服器上,將資料庫附加至新的執行個體。如需詳細資訊,請參閱<附加資料庫>和<sp_attach_db (Transact-SQL)>。

下列程序提供方法來連接新的 SQL Server 執行個體,或更新資料庫連接。請使用最適合您的 SharePoint Server 伺服器陣列環境的程序。

設定 SQL Server 連線別名,將 Web 應用程式指向新的資料庫伺服器

  1. 在 SharePoint Server 伺服器陣列的所有伺服器上,都必須執行此程序,而這些伺服器連線至主控資料庫的 SQL Server 執行個體。

  2. 確認執行此程序的使用者帳戶是下列項目的成員:

    • 管理員群組

    • db_owner 固定資料庫角色

  3. 啟動 SQL Server 組態管理員。

  4. 展開 [SQL Server Native Client 組態],以滑鼠右鍵按一下 [別名],然後按一下 [新增別名]。

  5. 在 [別名] 方塊中,輸入您所要建立的新別名。

  6. 在 [連接埠號碼] 方塊中,輸入新別名會用來連線至 SQL Server 的連接埠號碼。

  7. 在 [通訊協定] 中按一下下拉式箭頭,然後選取 [TCP/IP]。新別名會使用這個通訊協定來連線至 SQL Server。

  8. 在 [伺服器] 方塊中,輸入目前 SQL Server 執行個體的名稱。

  9. 在連線至 SQL Server 的新執行個體的伺服器陣列中,對所有伺服器重複執行步驟 3 至 8。如需詳細資訊,請參閱建立或刪除用戶端使用的伺服器別名 (SQL Server 組態管理員)

  10. (選用) 如果您的環境仰賴 System Center 2012 - Data Protection Manager (DPM) 或是使用磁碟區陰影複製服務架構的協力廠商應用程式來執行備份及復原,則必須在每一部網頁伺服器及應用程式伺服器上執行 SQL Server 安裝程式,來安裝 SQL Server 連線元件。如需詳細資訊,請參閱從安裝精靈安裝 SQL Server 2014 (安裝程式)Windows Server 安裝與升級

注意

您可以使用這些 Microsoft PowerShell Cmdlet,在具有 SharePoint Server 的 SQL Server 中部署、管理、移除可用性群組:

  • Add-DatabaseToAvailabilityGroup

  • Remove-DatabaseFromAvailabilityGroup

  • Get-AvailabilityGroupStatus

如果您使用 SharePoint Server 和 SQL Server AlwaysOn 可用性群組來提高可用性或做為災害復原用途,請使用下列程序來更新資料庫連接。

案例 1:使用 PowerShell 來更新資料庫連接

  1. 確認您具備下列成員資格:

    • SQL Server 執行個體上的 securityadmin 固定伺服器角色。

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

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

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

    注意

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

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

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

    Add-DatabaseToAvailabilityGroup -AGName "<AGGroupName>" -DatabaseName "<DatabaseName>" [-FileShare "<\\server\share>"]
    

    其中:

    • <AGGroupName> 是可用性群組的名稱。

    • <DatabaseName> 是您加入至可用性群組的資料庫名稱

    • 如果使用選用 -FileShare 參數,則 <\\server\share> 是所使用伺服器和共用的名稱。

  4. 對於您移動的所有資料庫,包括設定資料庫與管理中心內容資料庫,重複這些步驟。

在下列情況下,請使用下一個程序:

  • 如果您必須使用手動步驟

  • 如果您將資料庫從 SharePoint Server 2016 單一伺服器陣列角色類型移至新的單一伺服器陣列角色類型,或從 SharePoint 2013 單一伺服器安裝移至新的單一伺服器安裝。

    注意

    單一伺服器陣列角色會取代舊版 SharePoint Server 所提供的獨立安裝模式。如需詳細資訊,請參閱<SharePoint Server 2016 的 MinRole 伺服器角色概觀>。

  • 如果您使用可用性群組,則必須手動將資料庫加入至適當的可用性群組,以提供高可用性/災害復原支援。如需詳細資訊,請參閱<將資料庫加入至可用性群組 (SQL Server)

  • 如果您使用 SQL 鏡像,請確定鏡像設定正確。如需詳細資訊,請參閱<設定資料庫鏡像 (SQL Server)>和<資料庫鏡像 (SQL Server)>。

案例 2:使用 Microsoft PowerShell 來更新資料庫連接

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

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

    $db = get-spdatabase -identity <guid>
    

    其中:

    • <GUID> 是您所移動的資料庫識別碼。

    注意

    使用未含任何參數的 Get-spdatabase,以查看所有具有 GUID 之資料庫的清單。

    $db.ChangeDatabaseInstance("<DBServerName>")
    

    其中:

    • <DBServerName> 是新 SQL Server 的名稱或別名,或是 AlwaysOn 可用性群組接聽程式 DNS 名稱。

    • $db.Update()
      
  3. 如果您使用 SQL Server 資料庫鏡像,請記得在 SharePoint 資料庫上填入 FailoverServiceInstance 屬性。

    $db.failoverserviceinstance("<DBServerName>")
    

    其中:

    • <DBServerName> 是鏡像的 SQL Server 的名稱或別名。

      $db.update()
      
  4. 對於您移動的所有資料庫,包括設定資料庫與管理中心內容資料庫,重複這些步驟。

重新啟動伺服器陣列中的服務

  1. 確認執行此程序的使用者帳戶為 SharePoint 伺服器陣列管理員群組的成員。

  2. 在執行 SharePoint 管理中心網站的伺服器上的命令提示字元中,輸入 iisreset /start

  3. 在 Microsoft Management Console [服務] 嵌入式管理單元中,啟動所有與 SharePoint Server 及 IIS 相關的服務。這包括下列服務:

    • SharePoint Administration

    • SharePoint 計時器

    • SharePoint Tracing

    • SharePoint User Code Host

    • SharePoint VSS Writer

    • World Wide Web Publishing 服務

    • SharePoint Server 搜尋

See also

SharePoint Server 中的資料庫類型和描述

在 SharePoint 2013 中新增資料庫伺服器至現有的伺服器陣列
快速參考指南:SharePoint Server 2016 資料庫
支援 SharePoint 2013 的資料庫