移動 SharePoint Server 中的所有資料庫
適用於:2013 Subscription Edition SharePoint in Microsoft 365
您可使用 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 中作業。
開始這項作業之前,請先檢閱此程序的各個步驟:
準備新資料庫伺服器。
關閉所有開啟的 SharePoint 管理命令介面 視窗。
關閉所有與 SharePoint Server 和 Internet Information Services (IIS) 相關的服務。
將資料庫從目前的 SQL Server 執行個體卸離。
將所有與資料庫 (.mdf, .ndf, and .ldf) 相關聯的檔案,複製或移動到執行 SQL Server 的新目的地伺服器。
確認所有 SQL Server 登入資料、固定伺服器角色、固定資料庫角色與資料庫權限都已在新目的地資料庫伺服器正確設定。
注意事項
[!附註] 作為資料庫移動目的地的伺服器所擁有的資料庫資訊,務必要與目前的 SQL Server 執行個體所擁有的資料庫資訊相同。 如需有關如何達成這一點的詳細資訊,請參閱如何在 SQL Server 的執行個體之間傳送登入和密碼。 如需詳細資訊,請參閱伺服器層級角色和資料庫層級角色。
將資料庫附加到執行 SQL Server 的新目的地伺服器。
使用 SQL Server 連線別名指向新資料庫伺服器,並更新所有應用程式伺服器。
如果您不要使用 SQL Server 連線別名,請使用下列其中一個程序來更新 SharePoint Server 伺服器陣列的資料庫連線。
案例 1:如果您使用 SharePoint Server 和 SQL Server Always On 可用性群組進行高可用性或災害復原,請使用此程式來更新資料庫連線。
案例 2:如果您必須使用手動步驟,或者,如果您將資料庫從 SharePoint Server 單一伺服器陣列角色安裝移至新的單一伺服器陣列角色安裝,請使用此程序。
- 重新啟動您在步驟 3 中停止的所有服務。
準備新的資料庫伺服器
依照<設定 SharePoint Server 的 SQL Server 安全性>中的程序設定新資料庫伺服器。
新的資料庫伺服器必須執行與現有資料庫伺服器相同的 Windows Server 和 SQL Server 版本,或下列其中一個版本:
針對 SharePoint Server 2019:
Windows Server 2019
Windows Server 2016
SQL Server 2016
SQL Server 2017
若為 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 管理命令介面 工作階段
- 關閉所有開啟的 SharePoint 管理命令介面 視窗,然後所有開啟的命令提示字元視窗。
停止伺服器陣列
- 在伺服器陣列中的所有 SharePoint Server 上,停止下列服務:
SharePoint Administration
SharePoint 計時器
SharePoint Tracing
SharePoint User Code Host
SharePoint VSS Writer
World Wide Web Publishing 服務
SharePoint Server Search 16
- 在伺服器陣列中的所有 SharePoint Server 上,於命令提示字元中輸入 iisreset /stop。
卸離資料庫
在 SQL Server Management Studio 的原始資料庫伺服器上,將要移動的資料庫從所在的執行個體加以卸離。 如果您執行許多資料庫,可能需要執行 Transact-SQL 指令碼來卸離資料庫。
如果有下列一項情況,就無法卸離資料庫:
資料庫正被鏡像。
資料庫上有資料庫快照集。
如需詳細資訊,請參閱:資料庫中斷連結和連結 (SQL Server)、中斷資料庫連結,以及 sp_detach_db (Transact-SQL)。
將資料庫檔案移至新伺服器
確認執行此程序的使用者帳戶是下列項目的成員:
在進行資料庫移動的來源資料庫伺服器上,您必須是下列身分的成員:
管理員群組
db_backupoperator 固定資料庫角色
在資料庫所移至的目的地資料庫伺服器上,您必須是下列身分的成員:
管理員群組
db_owner 固定資料庫角色
使用 [Windows 檔案總管] 找出與每一個移動之資料庫相關聯的 .mdf、.ldf 與 .ndf 檔案。
將檔案複製或移動到執行 SQL Server 之新電腦上的目的地目錄。
在新伺服器上設定權限
- 確認執行此程序的使用者帳戶是下列項目的成員:
管理員群組
db_owner 固定資料庫角色
在目的地資料庫伺服器上,啟動Management Studio,並將登入認證和許可權從原始實例傳輸至目的地實例。 建議您以執行指令碼的方式來傳送權限。 如需範例腳本,請 參閱如何在 SQL Server 實例之間傳送登入和密碼。
如需在執行個體之間傳送 SQL Server 中繼資料的詳細資訊,請參閱在另一個伺服器執行個體上提供可用的資料庫時,管理中繼資料。
將資料庫附加到 SQL Server 的新執行個體
- 確認執行此程序的使用者帳戶是下列項目的成員:
管理員群組
db_owner 固定資料庫角色
- 在目的地資料庫伺服器上,將資料庫附加至新的執行個體。 如需詳細資訊,請參閱<附加資料庫>和<sp_attach_db (Transact-SQL)>。
下列程序提供方法來連接新的 SQL Server 執行個體,或更新資料庫連接。 請使用最適合您的 SharePoint Server 伺服器陣列環境的程序。
重要事項
如果您在移動資料庫之前使用 SharePoint Server 和 SQL Server Always On 可用性群組,您應該指向 AG Listner。 如果您要從單一伺服器陣列移至AlwayOn可用性群組,則應該使用 cliconfg.exe。
設定 SQL Server 連線別名,將 Web 應用程式指向新的資料庫伺服器
在 SharePoint Server 伺服器陣列的所有伺服器上,都必須執行此程序,而這些伺服器連線至主控資料庫的 SQL Server 執行個體。
確認執行此程序的使用者帳戶是下列項目的成員:
管理員群組
db_owner 固定資料庫角色
啟動 SQL Server 用戶端網路公用程式 (cliconfg.exe) 。 此公用程式通常位於 C:\Windows\SysWOW64 和 C:\Windows\System32 資料夾中。
在 [一般] 索引標籤上,確認已啟用 TCP/IP。
在 [ 別名] 索引 標籤上,按兩下 [ 新增]。 [新增網络連結庫設定] 視窗隨即出現。
在 [伺服器別名] 方塊中,輸入目前 SQL Server 執行個體的名稱。
在 [網路程式庫] 區域中,按一下 [TCP/IP]。
在 [ 連線參數] 區域的 [ 伺服器名稱 ] 方塊中,輸入要與別名相關聯的新伺服器名稱和實例,然後按兩下 [ 確定]。 這是裝載 SharePoint Server 資料庫的新伺服器名稱。
在連線至 SQL Server 的新執行個體的伺服器陣列中,對所有伺服器重複執行步驟 3 至 8。
選用。 如果您的環境依賴 System Center 2012 - Data Protection Manager (DPM) 或使用磁碟區陰影複製服務架構進行備份和復原的第三方應用程式,您必須執行 SQL Server 安裝程式,在每個 Web 伺服器或應用程式伺服器上安裝 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 可用性群組進行高可用性或災害復原,請使用下列程式來更新資料庫連線。
- 確認您具備下列成員身分:
SQL Server 執行個體上的 securityadmin 固定伺服器角色。
所有要更新之資料庫上的 db_owner 固定資料庫角色。
正在執行 PowerShell Cmdlet 之所在伺服器上的系統管理員群組。
系統管理員可以使用 Add-SPShellAdmin Cmdlet 授與使用 SharePoint Server Cmdlet 的權限。
注意事項
[!附註] 如果您不具備上述權限,請連絡安裝程式系統管理員或 SQL Server 系統管理員要求權限。 如需 PowerShell 權限的其他資訊,請參閱 Add-SPShellAdmin。
啟動 SharePoint 管理命令介面。
在 PowerShell 命令提示字元處,輸入下列命令:
Add-DatabaseToAvailabilityGroup -AGName "<AGGroupName>" -DatabaseName "<DatabaseName>" [-FileShare "<\\server\share>"]
其中:
<AGGroupName> 是可用性群組的名稱。
<DatabaseName> 是您加入至可用性群組的資料庫名稱
如果使用選擇性的 -FileShare 參數, <\server\share> 就是您所使用之伺服器和共用的名稱。
- 對於您移動的所有資料庫,包括設定資料庫與管理中心內容資料庫,重複這些步驟。
在下列情況下,請使用下一個程序:
如果您必須使用手動步驟
如果您將資料庫從 SharePoint Server 2016 單一伺服器陣列角色類型移至新的單一伺服器陣列角色類型,或從 SharePoint 2013 單一伺服器安裝移至新的單一伺服器安裝。
注意事項
[!附註] 單一伺服器陣列角色會取代舊版 SharePoint Server 所提供的獨立安裝模式。 如需詳細資訊,請參閱<SharePoint Server 2016 的 MinRole 伺服器角色概觀>。
如果您使用可用性群組,則必須手動將資料庫加入至適當的可用性群組,以提供高可用性/災害復原支援。 如需詳細資訊,請參閱<將資料庫加入至可用性群組 (SQL Server)>
如果您使用 SQL 鏡像,請確定鏡像設定正確。 如需詳細資訊,請參閱<設定資料庫鏡像 (SQL Server)>和<資料庫鏡像 (SQL Server)>。
案例 2:使用 Microsoft PowerShell 來更新資料庫連線
啟動 SharePoint 管理命令介面。
在 PowerShell 命令提示字元處,輸入下列命令:
$db = Get-SPDatabase -Identity <guid>
其中 <GUID> 是您移動之資料庫的識別碼。
注意事項
使用不含參數 的 Get-SPDatabase 來查看具有 GUID 的所有資料庫清單。
$db.ChangeDatabaseInstance("<DBServerName>")
其中 <DBServerName> 是新 SQL Server 的名稱或別名,或是 AlwaysOn 可用性群組接聽程式 DNS 名稱。
$db.Update()
- 如果您使用 SQL Server 資料庫鏡像,請記得在 SharePoint 資料庫上填入 FailoverServiceInstance 屬性。
$db.failoverserviceinstance("<DBServerName>")
其中 <DBServerName> 是鏡像 SQL Server 的名稱或別名。
$db.update()
- 對於您移動的所有資料庫,包括設定資料庫與管理中心內容資料庫,重複這些步驟。
重新啟動伺服器陣列中的服務
確認執行此程序的使用者帳戶為 SharePoint 伺服器陣列管理員群組的成員。
在伺服器陣列中的所有 SharePoint Server 上,於命令提示字元中輸入 iisreset /start。
在 Microsoft Management Console [服務] 嵌入式管理單元中,啟動所有與 SharePoint Server 及 IIS 相關的服務。 這包括下列服務:
SharePoint Administration
SharePoint 計時器
SharePoint Tracing
SharePoint User Code Host
SharePoint VSS Writer
World Wide Web Publishing 服務
SharePoint Server 搜尋
另請參閱
概念
其他資源
快速參考指南:SharePoint Server 2016 資料庫
Add a database server to an existing farm in SharePoint 2013