移動 SharePoint 2013 中的所有資料庫

 

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

上次修改主題的時間:2016-12-16

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

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

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

  • 設定資料庫

  • 管理中心 內容資料庫

  • 內容資料庫

  • 服務應用程式資料庫

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

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

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

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

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

    • 管理員群組

    • db_backupoperator 固定資料庫角色

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

    • 管理員群組

    • db_owner 固定資料庫角色

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

重要事項重要事項:
移動資料庫時,使用者將無法使用所有伺服器陣列網站及資產。請在正常上班時間外完成此作業。
注意事項附註:
因為 SharePoint 2013 在 Internet Information Services (IIS) 中以網站形式運作,所以管理員與使用者均依賴瀏覽器提供的協助工具功能。SharePoint 2013 支援所支援瀏覽器的協助工具功能。如需詳細資訊,請參閱下列資源:

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

開始執行此作業前,請檢閱此程序的各個步驟:

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

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

  3. 關閉所有 SharePoint 2013 與 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 2013 伺服器陣列的資料庫連接。

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

    • 案例 2:如果您未使用 SharePoint Server 2013 Service Pack 1 (SP1) 且必須使用手動步驟,或如果您將資料庫從 SharePoint Server 2013 單一伺服器安裝移至新的單一伺服器安裝,請使用此程序。

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

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

    注意事項附註:
    新資料庫伺服器執行的 Windows Server 和 SQL Server 版本,必須與現有的資料庫伺服器相同,或為下列其中一個版本:
    • SQL Server 2008

    • SQL Server 2012

    • SQL Server 2014

    現有 SharePoint Server 和 Windows Server 的版本也必須支援 DB 要移往的新 SQL Server 的版本。如需詳細資訊,請參閱<SharePoint 2013 的硬體及軟體需求>。
關閉所有開啟的 SharePoint 管理命令介面 工作階段
  1. 關閉所有開啟的 SharePoint 管理命令介面 視窗,然後所有開啟的命令提示字元視窗。

停止伺服器陣列
  1. 在執行 SharePoint 管理中心網站的伺服器上,於 [服務] 嵌入式管理單元中,停止下列服務:

    • SharePoint 2013 Administration

    • SharePoint 2013 Timer

    • SharePoint 2013 Tracing

    • SharePoint 2013 User Code Host

    • SharePoint 2013 VSS 編寫器

    • World Wide Web Publishing 服務

    • SharePoint Server 搜尋

  2. 在執行 SharePoint 管理中心網站的伺服器上的命令提示字元中,輸入 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. 在目的地資料庫伺服器上,啟動 SQL Server Management Studio,將登入認證及權限從原始執行個體傳送至目的地執行個體。建議您以執行指令碼的方式來傳送權限。<知識庫文章 918992:如何在 SQL Server 2005 的執行個體之間傳送登入和密碼>中有提供範例指令碼。

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

將資料庫附加到 SQL Server 的新執行個體
  1. 確認執行此程序的使用者帳戶是下列項目的成員:

    • 管理員群組

    • db_owner 固定資料庫角色

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

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

設定 SQL Server 連線別名,將 Web 應用程式指向新的資料庫伺服器
  1. 在 SharePoint Server 2013 伺服器陣列的所有伺服器上,都必須執行此程序,而這些伺服器連線至主控資料庫的 SQL Server 執行個體。

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

    • 管理員群組

    • db_owner 固定資料庫角色

  3. 啟動 SQL Server 用戶端網路公用程式 (cliconfg.exe)。此公用程式一般位於 Windows Server 2008 R2 Service Pack 1 (SP1) 和 Windows Server 2012 的 C:\Windows\System32 資料夾中。

  4. 在 [一般] 索引標籤上,確認已啟用 TCP/IP。

  5. 在 [別名] 索引標籤上,按一下 [新增]。[新增網路程式庫組態] 對話方塊隨即出現。

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

  7. 在 [網路程式庫] 區域中,按一下 [TCP/IP]。

  8. 在 [連線參數] 區域的 [伺服器名稱] 方塊中,輸入要與別名相關聯的新伺服器名稱及執行個體,然後按一下 [確定]。這是主控 SharePoint 2013 資料庫的新伺服器名稱。

  9. 在伺服器陣列中所有連線至新 SQL Server 執行個體的伺服器上,重複步驟 3 到 8。

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

重要事項重要事項:
SharePoint Server 2013 Service Pack 1 (SP1) 中採用這些 Windows PowerShell 命令:
  • Add-DatabaseToAvailabilityGroup

  • Remove-DatabaseFromAvailabilityGroup

  • Get-AvailabilityGroupStatus

如果您使用 SharePoint Server 2013 Service Pack 1 (SP1) 和 SQL Server AlwaysOn 可用性群組來提高可用性或做為災害復原用途,請使用此程序來更新資料庫連接。

案例 1:使用 Windows PowerShell 來更新資料庫連接
  1. 確認符合下列成員資格:

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

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

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

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

    注意事項附註:
    如果您不具備上述權限,請連絡安裝程式系統管理員或 SQL Server 系統管理員要求權限。如需 Windows PowerShell 權限的其他資訊,請參閱<Add-SPShellAdmin>。
  2. 啟動 SharePoint 2013 管理命令介面。

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

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

    其中:

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

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

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

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

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

  • 如果您未使用 SharePoint Server 2013 Service Pack 1 (SP1),但必須使用手動步驟

  • 如果您將資料庫從 SharePoint Server 2013 單一伺服器安裝移至新的單一伺服器安裝

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

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

案例 2:使用 Windows PowerShell 來更新資料庫連接
  1. 啟動 SharePoint 2013 管理命令介面。

  2. 在 Windows 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 2013 及 IIS 相關的服務。這包括下列服務:

    • SharePoint 2013 Administration

    • SharePoint 2013 Timer

    • SharePoint 2013 Tracing

    • SharePoint 2013 User Code Host

    • SharePoint 2013 VSS 編寫器

    • World Wide Web Publishing 服務

    • SharePoint Server 搜尋

顯示: