使用複製資料庫精靈

「複製資料庫精靈」可讓您輕鬆地在伺服器之間移動或複製資料庫及其物件,而不需要讓伺服器停機。 您也可以將資料庫從舊版 SQL Server 升級至 SQL Server 2012。 使用此精靈可以執行下列作業:

  • 挑選來源和目的地伺服器。

  • 選取要移動、複製或升級的資料庫。

  • 為資料庫指定檔案位置。

  • 在目的地伺服器上建立登入。

  • 複製其他支援的物件、作業、使用者定義的預存程序和錯誤訊息。

  • 何時要移動或複製資料庫的排程。

除了複製資料庫以外,您還可以複製相關的中繼資料,例如,被複製之資料庫所需之 master 資料庫中的登入和物件。

本主題內容

  • 開始之前:

    限制事項

    必要條件

    建議

    安全性

  • 將複製資料庫精靈用於:

    複製、移動或升級資料庫

  • 待處理,升級之後:

    升級 SQL Server 資料庫之後

開始之前

限制事項

  • Express 版中沒有複製資料庫精靈。

  • 複製資料庫精靈無法用於複製或移動下列資料庫。

    • 系統資料庫

    • 要用於複寫的資料庫。

    • 標示為「無法存取」、「正在載入」、「離線」、「正在復原」、「有疑問」或是「緊急模式」的資料庫。

  • 資料庫升級後,無法降級至舊版。

  • 若您選取 [移動] 選項,則當移動資料庫之後,精靈會自動刪除來源資料庫。 如果您選取 [複製] 選項,「複製資料庫精靈」就不會刪除來源資料庫。

  • 如果您使用 SQL Server 管理物件方法來移動全文檢索目錄,您必須在移動之後重新擴展索引。

  • 卸離和附加方法可卸離資料庫、移動或複製資料庫 .mdf、. ndf 和 .ldf 檔案,並在新的位置中重新附加資料庫。 對於卸離和附加方法而言,為了避免資料遺失或不一致,使用中工作階段不能附加到正在移動或複製的資料庫。 如果有任何使用中工作階段存在,「複製資料庫精靈」將不會執行移動或複製作業。 對於 SQL Server 管理物件方法而言,因為資料庫絕對不會離線,所以允許使用中工作階段。

必要條件

確定目的地伺服器上已啟動 SQL Server Agent。

建議

  • 為了確保升級的資料庫能有最佳效能,請針對升級的資料庫執行 sp_updatestats (更新統計資料)。

  • 將資料庫複製到另一個伺服器執行個體時,為了提供一致的經驗給使用者和應用程式,您可能會需要在其他伺服器執行個體上為資料庫重新建立部分或所有中繼資料,例如登入和作業。 如需詳細資訊,請參閱<在另一個伺服器執行個體上提供可用的資料庫時,管理中繼資料 (SQL Server)>。

安全性

權限

您必須在來源伺服器與目的地伺服器上成為系統管理員 (sysadmin) 固定伺服器角色的成員。

搭配回到頁首連結使用的箭頭圖示[回到首頁]

複製、移動或升級資料庫

  1. 在 SQL Server Management Studio 的 [物件總管] 中,展開 [資料庫],然後以滑鼠右鍵按一下資料庫,再指向 [工作],然後按一下 [複製資料庫]

  2. [選取來源伺服器] 頁面,指定要移動或複製之資料庫所在的伺服器,以及輸入登入資訊。 在您選取驗證方法並輸入登入資訊之後,按 [下一步] 以建立與來源伺服器的連接。 在整個工作階段中,此連接會保持開啟。

    • 來源伺服器
      選取您想要移動或複製之資料庫所在的伺服器名稱,或是按一下瀏覽 (...) 按鈕,尋找您要的伺服器。 該伺服器必須至少為 SQL Server 2005。

    • 使用 Windows 驗證
      可讓使用者透過 Microsoft Windows 使用者帳戶連接。

    • 使用 SQL Server 驗證
      可讓使用者經由提供 SQL Server 驗證使用者名稱和密碼來進行連接。

    • 使用者名稱
      輸入要用來連接的使用者名稱。 這個選項只有在您選取了使用 SQL Server 驗證來連接時才可以使用。

    • 密碼
      輸入登入的密碼。 這個選項只有在您選取了使用 SQL Server 驗證來連接時才可以使用。

    • 下一頁
      連接到伺機器,並驗證使用者。 此處理序會檢查使用者是否為所選取電腦中的 [系統管理員 (sysadmin)] 固定伺服器角色成員。

  3. [選取目的地伺服器] 頁面,指定將移動或複製資料庫的伺服器。 如果您將來源和目的地伺服器設定成同一個伺服器執行個體,您就會複製一個資料庫。 在這種情況下,您必須稍後在精靈中重新命名此資料庫。 只有當目的地伺服器上沒有名稱衝突時,才可以將來源資料庫名稱用於複製或移動的資料庫。 如果有名稱衝突存在,您必須先手動解決目的地伺服器上的衝突,然後才能在這裡使用來源資料庫名稱。

    • 目的地伺服器
      選取要移動或複製資料庫的目的地伺服器名稱,或按一下瀏覽 (...) 按鈕來尋找目的地伺服器。

      [!附註]

      您可以使用屬於叢集伺服器的目的地。「複製資料庫精靈」將會確保您只能選取叢集目的地伺服器上的共用磁碟機。

    • 使用 Windows 驗證
      可讓使用者透過 Microsoft Windows 使用者帳戶連接。

    • 使用 SQL Server 驗證
      可讓使用者經由提供 SQL Server 驗證使用者名稱和密碼來進行連接。

    • 使用者名稱
      輸入要用來連接的使用者名稱。 唯有在您選取了 SQL Server 驗證之後,此選項才可以使用。

    • 密碼
      輸入登入的密碼。 唯有在您選取了 SQL Server 驗證之後,此選項才可以使用。

    • 下一頁
      連接到伺服器,並驗證使用者。 此處理序會檢查使用者在選取的電腦上是否擁有以上所列的權限。

  4. [選取傳送方法] 頁面,選取傳送方法。

    • 使用卸離和附加方法
      從來源伺服器卸離資料庫,將資料庫檔案 (.mdf、. ndf 以及 .ldf) 複製到目的地伺服器,然後在目的地伺服器端附加該資料庫。 此方法通常是比較快速的方法,因為它的主要工作是讀取來源磁碟和寫入目的地磁碟。 不需要 SQL Server 邏輯在資料庫中建立物件,或建立資料儲存結構。 不過,如果資料庫包含大量已配置但未使用的空間,此方法就會比較慢。 例如,新的且實際上幾乎是空的資料庫,在建立時若配置 100 MB,即使資料只填滿 5 MB,也會複製全部 100 MB。

      [!附註]

      此方法讓使用者在傳送期間無法使用資料庫。

    • 如果失敗,則重新附加來源資料庫
      複製資料庫時,一律會將原始資料庫檔案重新附加至來源伺服器。 無法完成資料庫移動時,使用這個方塊即可將原始檔案重新附加至來源資料庫。

    • 使用 SQL 管理物件方法
      這個方法會讀取來源資料庫上的每個資料庫物件的定義,然後在目的地資料庫中建立每個物件。 接著它會從來源資料表傳送資料到目的地資料表,重新建立索引與中繼資料。

      [!附註]

      在傳送期間,資料庫使用者可以繼續存取資料庫。

  5. [選取資料庫] 頁面,選取您要從來源伺服器,移動或複製到目的地伺服器的資料庫。 請參閱本主題中<開始之前>一節的<限制事項>。

    • 移動
      移動資料庫至目的地伺服器。

    • 複製
      複製資料庫至目的地伺服器。

    • 來源
      顯示存在於來源伺服器上的資料庫。

    • 狀態
      如果可以移動資料庫,就會顯示 [確定]。 否則就會顯示無法移動資料庫的原因。

    • 重新整理
      重新整理資料庫清單。

    • 下一步
      開始驗證處理,然後移動到下一個畫面。

  6. [設定目的地資料庫] 頁面,適當地變更資料庫名稱,以及指定資料庫檔案的位置和名稱。 每次移動或複製各個資料庫時,就會出現此頁面。

  7. [選取資料庫物件] 頁面,選取要包含在移動或複製作業中的物件。 此頁面只能在來源和目的地是不同的伺服器時使用。 若要包含物件,請按一下 [可用的相關物件] 方塊中的物件名稱,然後按一下 >> 按鈕,將物件移到 [選取的相關物件] 方塊。 若要排除物件,請按一下 [選取的相關物件] 方塊中的物件名稱,然後按一下 << 按鈕,將物件移到 [可用的相關物件] 方塊。 根據預設,屬於所選取類型的所有物件都會傳送。 若要選擇任何類型的個別物件,請按一下 [選取的相關物件] 方塊中之任何物件類型旁的省略符號按鈕。 這會開啟一個對話方塊,其中您可以選取個別物件。

    • 登入 (執行階段的所有登入)
      在移動或複製作業中加入登入。 依預設為已選取。

    • master 資料庫裡的預存程序
      master 資料庫裡的預存程序包含在移動或複製作業中。

      [!附註]

      擴充預存程序及其相關聯的 DLL 不適合自動複製。

    • SQL Server Agent 作業
      msdb 資料庫裡的作業包含在移動或複製作業中。

    • 使用者自訂錯誤訊息
      將使用者自訂錯誤訊息包含在移動或複製作業中。

    • 端點
      包含在來源資料庫中所定義的端點。

    • 全文檢索目錄
      包含來源資料庫中的全文檢索目錄。

    • SSIS 封裝
      包含在來源資料庫中所定義的 SSIS 封裝。

    • 說明
      對物件的描述。

  8. [來源資料庫檔案的位置] 頁面,指定包含來源伺服器資料庫檔案的檔案系統共用。 如果來源和目的地伺服器執行個體位於不同的電腦上,這就是必要項。

    • 資料庫
      顯示要移動的每個資料庫的名稱。

    • 資料夾位置
      指定檔案系統上之來源資料庫檔案的位置。

      例如:C:\Program Files\Microsoft SQL Server\MSSQL110.MSSQLSERVER\MSSQL\DATA

    • 來源伺服器上的檔案共用
      將來源資料庫檔案的位置指定為檔案共用的路徑。

      例如:"\\server_name\C$\Program Files\Microsoft SQL Server\MSSQL110.MSSQLSERVER\MSSQL\Data

  9. 複製資料庫精靈會建立 SSIS 封裝來傳送資料庫。請從 [設定封裝] 頁面適當地自訂封裝。

    • 封裝位置
      顯示 SSIS 封裝的寫入位置。

    • 封裝名稱
      輸入 SSIS 封裝的名稱。

    • 記錄選項
      選取是要將記錄資訊儲存在 Windows 事件記錄檔中,還是儲存在文字檔中。

    • 錯誤記錄檔路徑
      提供記錄檔位置的路徑。 只有在已選取文字檔案登入選項時,才能使用此選項。

  10. [排程封裝] 頁面,指定您要讓移動或複製作業開始的時間。 如果您不是系統管理員,您必須指定可存取 Integration Services (SSIS) 封裝執行子系統的 SQL Server Agent Proxy 帳戶。

    • 立即執行
      在您按 [下一步] 之後,開始移動或複製作業。

    • 排程
      稍後開始移動或複製作業。 目前的排程設定會出現在描述方塊中。 若要變更排程,請按一下 [變更]

    • 變更
      開啟 [新增作業排程] 對話方塊。

    • Integration Services Proxy 帳戶
      選取可用的 Proxy 帳戶。 若要排程傳送,至少必須有一個 Proxy 帳戶可供使用者使用,而且帳戶要設定為擁有 [SQL Server Integration Services 封裝執行] 子系統的權限。

      若要建立 SSIS 封裝執行的 Proxy 帳戶,請在 [物件總管] 中,展開 [SQL Server Agent]、展開 [Proxy]、以滑鼠右鍵按一下 [SSIS 封裝執行],然後按一下 [新增 Proxy]

      [系統管理員 (sysadmin)] 固定伺服器角色成員的使用者,可以選取具有必要權限的 [SQL Server Agent 服務帳戶] 來執行這個作業步驟。

  11. [完成精靈] 頁面,檢閱所選選項的摘要。 按 [上一步] 即可變更選項。 按一下 [完成] 以建立資料庫。 在傳送期間,[正在執行作業] 頁面會監視有關 [複製資料庫精靈] 執行的狀態資訊。

    • 動作
      列出每個執行的動作。

    • 狀態
      表示動作完全成功或失敗。

    • 訊息
      提供每個步驟所傳回的任何訊息。

搭配回到頁首連結使用的箭頭圖示[回到首頁]

待處理:升級 SQL Server 資料庫之後

在您使用複製資料庫精靈,將資料庫從舊版 SQL Server 升級至 SQL Server 2012 之後,資料庫就會變成立即可用並自動進行升級。 如果資料庫具有全文檢索索引,升級程序就會根據 [全文檢索目錄升級選項] 伺服器屬性的設定,匯入、重設或重建這些索引。 如果升級選項設定為 [匯入][重建],則全文檢索索引在升級期間將無法使用。 根據進行索引的資料數量而定,匯入可能需要數個小時,而重建可能需要十倍以上的時間。 此外,請注意,當升級選項設定為 [匯入] 時,如果全文檢索目錄無法使用,系統就會重建相關聯的全文檢索索引。 如需有關檢視或變更 [全文檢索目錄升級選項] 屬性設定的詳細資訊,請參閱<管理及監視伺服器執行個體的全文檢索搜尋>。

如果使用者資料庫的相容性層級在升級前為 90 或 100,則在升級後仍會保持相同。 如果升級前的相容性層級為 80 或更小,則在升級後的資料庫中,相容性層級會設定為 90 (這是 SQL Server 2012 所支援的最低相容性層級)。 如需詳細資訊,請參閱<ALTER DATABASE 相容性層級 (Transact-SQL)>。

搭配回到頁首連結使用的箭頭圖示[回到頁首]

請參閱

概念

使用卸離與附加來升級資料庫 (Transact-SQL)

建立 SQL Server Agent Proxy