移動內容資料庫 (SharePoint Server 2010)

 

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

上次修改主題的時間: 2016-11-30

本文說明如何在執行 Microsoft SQL Server 的伺服器之間、SQL Server 執行個體之間移動內容資料庫,或是從某個 Microsoft SharePoint Server 2010 Web 應用程式將內容資料庫移到另一個 Web 應用程式。您可以移動內容資料庫,以平衡資料庫伺服器或 Web 應用程式的負載。

重要

本文僅說明如何移動內容資料庫。如需如何移動與 SharePoint Server 2010 關聯之其他種類資料庫的詳細資訊,請參閱<重新命名或移除服務應用程式資料庫 (SharePoint Server 2010)>及<移動所有資料庫 (SharePoint Server 2010)>。

移動內容資料庫概觀

移動內容資料庫時,您必須同時使用 SharePoint Server 2010 工具與 SQL Server 工具。您可以使用 SharePoint Server 管理中心網站或 Windows PowerShell 2.0。下列清單摘要如何移動內容資料庫:

  1. 記錄內容資料庫的名稱及其相關聯的 Web 應用程式。如需詳細資訊,請參閱<記錄哪些內容資料庫與每個 Web 應用程式關聯。

  2. 暫停任何可能針對資料庫嘗試執行的服務應用程式與服務,包括計時器工作與搜尋編目。如需詳細資訊,請參閱<使用 Windows PowerShell 暫停計時器工作 (選項 1)>或是<使用管理中心暫停計時器工作 (選項 2)>。

  3. 在 SharePoint Server 中,從 Web 應用程式移除內容資料庫。您可以使用管理中心或 Windows PowerShell 2.0 以執行這個動作。一般而言,如果您只使用多個資料庫,寫入 Windows PowerShell 2.0 指令碼的速度較快。如需詳細資訊,請參閱<使用管理中心從 Web 應用程式卸離內容資料庫 (選項 1)>或是<使用 Windows PowerShell 從 Web 應用程式卸離內容資料庫 (選項 2)>。

  4. 在 SQL Server 中,將資料庫從目前的執行個體卸離。如需詳細資訊,請參閱<從 SQL Server 卸離內容資料庫>。

  5. 使用 Windows 檔案總管,將與資料庫關聯的 .mdf, .ndf, 與 .ldf 檔案從來源位置複製到或移至目的地位置。如需詳細資訊,請參閱<將內容資料庫移至新位置>。

    注意

    您也可以備份和還原資料庫以移動它們。不過,本文沒有說明備份與復原功能。如需詳細資訊,請參閱<備份及復原 (SharePoint Server 2010)>。

  6. 在<SQL Server>中,將資料庫附加至新執行個體,如需詳細資訊,請參閱<將內容資料庫附加至 SQL Server 的新執行個體>。

  7. 在 SharePoint Server 中,將內容資料庫新增至目的地 Web 應用程式。請務必確定在重新附加內容資料庫時使用完全相同的名稱。否則,SharePoint Server 會建立新的內容資料庫。您可以使用管理中心或 Windows PowerShell 2.0 來執行這個動作。如需詳細資訊,請參閱<使用管理中心將內容資料庫附加至 Web 應用程式 (選項 1)>或是<使用 Windows PowerShell 將內容資料庫附加至 Web 應用程式 (選項 2)。

  8. 重新啟動任何應該針對資料庫執行的服務應用程式與服務,包括計時器工作與搜尋編目。如需詳細資訊,請參閱<使用 Windows PowerShell 重新啟動計時器工作 (選項 1)>或是<使用管理中心重新啟動計時器工作 (選項 2)>。

移動內容資料庫

注意

需要本機電腦系統管理員群組的成員資格,才能完成下列程序。如果您是在最低權限環境中執行 SharePoint Server 2010,並且從管理中心執行程序,請確定您在 SQL Server 中具有下列角色:

  • 在來源伺服器上設定資料庫及內容資料庫的 dbowner 固定資料庫角色,以便卸離內容資料庫。

  • 目的地伺服器上的 dbcreatorsecurityadmin 固定伺服器角色,以便附加資料庫和設定 SQL Server 登入。

注意

如果您要將內容資料庫移到不同的伺服器陣列,必須在還原過程中將伺服器陣列帳戶設成資料庫伺服器上管理員群組的成員。這允許帳戶複製資料庫的安全性設定。這個存取權層次可以在移動內容資料庫後移除。如需詳細資訊,請參閱<帳戶權限與安全性設定 (SharePoint Server 2010)>。
目的地伺服器陣列必須執行與來源伺服器陣列執行之 SharePoint Server 2010 相同的版本,或是更新的版本。

記錄哪些內容資料庫與每個 Web 應用程式關聯

  1. 確認符合下列基本需求:請參閱<Add-SPShellAdmin>。

  2. 在 [開始] 功能表上,按一下 [所有程式]。

  3. 按一下 [Microsoft SharePoint 2010 產品]。

  4. 按一下 [SharePoint 2010 管理命令介面]。

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

    Get-SPContentDatabase -WebApplication <http://SiteName>
    

    其中 <http://網站名稱> 是 Web 應用程式的 URL。

  6. 為每個 Web 應用程式重複此動作。

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

注意

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

使用 Windows PowerShell 暫停計時器工作 (選項 1)

  1. 確認符合下列基本需求:請參閱<Add-SPShellAdmin>。

  2. 在 [開始] 功能表上,按一下 [所有程式]。

  3. 按一下 [Microsoft SharePoint 2010 產品]。

  4. 按一下 [SharePoint 2010 管理命令介面]。

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

    Get-SPTimerJob -webapplication <http://WebApplicationURL> | select name | Out-File <c:\timerjobfile.txt> -Append -Encoding ascii
    
    ForEach($tmrjob in (Get-Content <c:\timerjobfile.txt>)) { Get-SPTimerJob -Identity $tmrjob | Disable-SPTimerjob }
    

    其中:

    • <http://WebApplicationURL> 是與您要移動之內容資料庫關聯的 Web 應用程式。

    • <c:\timerjobfile.txt> 是您要建立含有與 Web 應用程式關聯之所有計時器工作的檔案位置。

如需詳細資訊,請參閱<Get-SPTimerJob>、Out-FileForEach-ObjectGet-Content 及<Disable-SPTimerJob>。

注意

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

使用管理中心暫停計時器工作 (選項 2)

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

  2. 在管理中心的 [監視] 區段中,按一下 [檢查工作狀態]。

  3. 對於每個針對您要移動的內容資料庫所執行的排程工作,按一下該工作以開啟 [編輯計時器工作] 頁面,按一下 [停用],然後按一下 [確定]。

  4. 如果您要執行 Search Service 應用程式,並編目內容資料庫,請遵循<啟動、暫停、繼續或停止編目 (SharePoint Server 2010)>一文中的步驟,以暫停編目。

使用管理中心從 Web 應用程式卸離內容資料庫 (選項 1)

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

  2. 按一下管理中心 [應用程式管理] 區段中的 [管理內容資料庫]。

  3. 在 [管理內容資料庫] 頁面上,按一下您要移動的內容資料庫。

    [管理內容資料庫設定] 頁面隨即開啟。

    注意

    如果在清單中未顯示內容資料庫,表示它可能與其他的 Web 應用程式相關聯。若要選取其他 Web 應用程式,請按一下 [Web 應用程式] 功能表上的 [變更 Web 應用程式]。

  4. 在 [管理內容資料庫設定] 頁面上的 [移除內容資料庫] 區段中,選取 [移除內容資料庫] 核取方塊,然後按一下 [確定]。

    注意

    移除內容資料庫不會刪除該資料庫,只會移除資料庫與 Web 應用程式相關聯的部分。

  5. 對每一個要移動的內容資料庫重複步驟 3 和 4。

使用 Windows PowerShell 從 Web 應用程式卸離內容資料庫 (選項 2)

  1. 確認符合下列基本需求:請參閱<Add-SPShellAdmin>。

  2. 在 [開始] 功能表上,按一下 [所有程式]。

  3. 按一下 [Microsoft SharePoint 2010 產品]。

  4. 按一下 [SharePoint 2010 管理命令介面]。

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

    Dismount-SPContentDatabase "<ContentDB>" 
    

    其中 <ContentDB> 是內容資料庫的名稱。

    注意

    如果有多個內容資料庫具有相同的名稱,在此命令中就必須使用內容資料庫 GUID,而非使用內容資料庫名稱。若要擷取內容資料庫的 GUID,請執行 Get-SPContentDatabase cmdlet,並且不加任何引數。

如需詳細資訊,請參閱<Dismount-SPContentDatabase>及<Get-SPContentDatabase>。

注意

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

從 SQL Server 卸離內容資料庫

  1. 確認執行此程序的使用者帳戶是儲存各資料庫之資料庫伺服器上的 db_owner 固定資料庫角色成員。

  2. 在 SQL Server Management Studio 中,開啟來源 SQL Server 執行個體,然後展開 [資料庫] 節點。

  3. 以滑鼠右鍵按一下內容資料庫,指向 [工作],然後按一下 [卸離]。請對每個要移動的內容資料庫重複此步驟。

    注意

    只能使用此程序移動內容資料庫。請勿卸離其他種類的資料庫。

將內容資料庫移至新位置

  1. 確認執行此程序的使用者帳戶具有來源及目的地資料夾的寫入權限。

  2. 使用 [Windows 檔案總管] 找出內容資料庫的 .mdf, .ldf 和 .ndf 檔案。

  3. 選取要移動之資料庫的 .mdf, .ldf 和 .ndf 檔案,然後將其複製或移往目的地目錄。

將內容資料庫附加至新的 SQL Server 執行個體

  1. 確認執行此程序的使用者帳戶是儲存各資料庫之資料庫伺服器上的 dbcreator 固定伺服器角色成員。

  2. 在 Management Studio 中,開啟目的地 SQL Server 執行個體。

  3. 以滑鼠右鍵按一下 [資料庫] 節點,指向 [工作],然後按一下 [附加]。

  4. 在 [附加資料庫] 對話方塊中,瀏覽至您要轉移 .mdf, .ldf 和 .ndf 檔案的目的位置,針對要附加的資料庫選取 .mdf 檔案,然後按一下 [確定]。

  5. 對每個您要移動的內容資料庫重複此步驟。

使用管理中心將內容資料庫附加至 Web 應用程式 (選項 1)

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

  2. 按一下管理中心 [應用程式管理] 區段中的 [管理內容資料庫]。

  3. 在 [管理內容資料庫] 頁面上,按一下 [新增內容資料庫]。

  4. 在 [新增內容資料庫] 頁面上,確認 [Web 應用程式] 功能表顯示正確的 Web 應用程式。

  5. 在 [伺服器] 方塊中,指定主控資料庫的資料庫伺服器。

  6. 在 [資料庫名稱] 方塊中,輸入轉移的內容資料庫完全相同的名稱。

    注意

    請確認名稱是否正確。如果不正確,將會建立新資料庫。

  7. 請指定資料庫的驗證方法,然後按一下 [確定]。

  8. 對您要新增的每個資料庫重複這些步驟。請確定您為每個資料庫從 [Web 應用程式] 功能表選取正確的 Web 應用程式。

使用 Windows PowerShell 將內容資料庫附加至 Web 應用程式 (選項 2)

  1. 確認符合下列基本需求:請參閱<Add-SPShellAdmin>。

  2. 在 [開始] 功能表上,按一下 [所有程式]。

  3. 按一下 [Microsoft SharePoint 2010 產品]。

  4. 按一下 [SharePoint 2010 管理命令介面]。

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

    Mount-SPContentDatabase "<ContentDB>" -DatabaseServer "<DBServer>" -WebApplication <http://SiteName>
    

    其中:

    • <ContentDB> 是要附加的內容資料庫。

    • <DBServer> 是資料庫伺服器的名稱。

    • <http://網站名稱> 是要附加內容資料庫之 Web 應用程式的 URL。

如需詳細資訊,請參閱<Mount-SPContentDatabase>。

注意

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

使用 Windows PowerShell 重新啟動計時器工作 (選項 1)

  1. 確認符合下列基本需求:請參閱<Add-SPShellAdmin>。

  2. 在 [開始] 功能表上,按一下 [所有程式]。

  3. 按一下 [Microsoft SharePoint 2010 產品]。

  4. 按一下 [SharePoint 2010 管理命令介面]。

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

    ForEach($tmrjob in (Get-Content <c:\timerjobfile.txt>)) {Get-SPTimerJob -Identity $tmrjob | Enable-SPTimerjob}
    

    其中:

    • <c:\timerjobfile.txt> 是您要建立含有與 Web 應用程式關聯的所有計時器工作的檔案位置。

如需詳細資訊,請參閱<Get-SPTimerJob>、ForEach-ObjectGet-Content 及<Enable-SPTimerJob>。

注意

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

使用管理中心重新啟動計時器工作 (選項 2)

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

  2. 在管理中心的 [監視] 區段中,按一下 [檢查工作狀態]。

  3. 對於每個之前停用的排程工作,按一下該工作以開啟 [編輯計時器工作] 頁面,按一下 [啟用],然後按一下 [確定]。

  4. 如果您要執行 Search Service 應用程式,並編目內容資料庫,請遵循<啟動、暫停、繼續或停止編目 (SharePoint Server 2010)>一文中的步驟,以繼續編目。您必須執行內容資料庫的完整編目。