如何使用 DBCC CLONEDATABASE 來產生 SQL Server 2014 SP2 中的使用者資料庫的結構描述和統計資料唯一複本

請注意--重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,且可能由 Microsoft Community 利用 Community Translation Framework技術或人工進行事後編修。翻譯過程並無專業譯者參與。Microsoft 同時提供使用者人為翻譯、機器翻譯及社群編修後的機器翻譯三種版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,所有翻譯文章都可能不盡完美,內容都可能出現詞彙、語意或文法上的錯誤。就翻譯內容之不正確或錯誤,或客戶因使用翻譯內容所產生的任何損害,微軟不負擔任何責任。Microsoft將依合理的商業努力不斷地更新機器翻譯軟體和工具,以期能為使用者提供更好的服務。

按一下這裡查看此文章的英文版本:3177838
結論
這個更新,引進新的管理命令DBCC CLONEDATABASE (考慮改用 SQL) 中 Microsoft SQL Server 2014 Service Pack 2.這個命令會建立新的資料庫包含的所有物件和指定的來源資料庫中的統計資料的結構描述。

有關 SQL Server 的服務套件
Service pack 是累計的。每個新的 service pack 包含了所有的修正程式,先前的 service pack,加上任何新的修正程式中。我們建議以套用最新的 service pack 和該服務套件最新的累積更新。您沒有安裝先前的 service pack,才能安裝最新的 service pack。使用下列文件中的 [表格 1],尋找最新 service pack 及最新的累積更新的相關資訊。

關於 DBCC CLONEDATABASE
Microsoft 客戶支援服務可能會要求您使用DBCC CLONEDATABASE ,若要調查效能問題相關的查詢最佳化器產生的資料庫複本。

附註新產生的資料庫,產生從DBCC CLONEDATABASE来做為實際執行資料庫不支援,且主要是針對疑難排解及診斷的目的。我們建議您在建立資料庫之後,請卸離複製的資料庫。

來源資料庫的複製,是由下列作業來執行︰
  • 建立新的目的資料庫與 model 資料庫使用相同的檔案配置為來源,但預設檔案大小。
  • 建立內部的快照集的來源資料庫。
  • 將系統中繼資料從來源複製到目的資料庫中。
  • 將所有物件的所有結構描述從來源複製到目的資料庫中。
  • 複本從來源到目的資料庫的所有索引的統計。
語法
DBCC CLONEDATABASE (source_database_name, target_database_name)
引數
  • source_database_name

    此引數是其結構描述和統計資料需要複製的資料庫名稱。
  • target_database_name

    此引數是其結構描述和來源資料庫中的統計資料會複製到資料庫的名稱。此資料庫所建立的 DBCC CLONEDATABASE 不應已存在。
何時使用 DBCC CLONEDATABASE?
DBCC CLONEDATABASE應該用來建立結構描述和統計資料的實際執行資料庫只有一個複本中,若要調查的查詢效能問題。請注意下列限制和支援的物件︰
  • 限制

    下列的驗證執行DBCC CLONEDATABASE的。如果驗證失敗,則指令將會失敗。
    • 來源資料庫必須是使用者資料庫。不允許複製的系統資料庫 (主、 模型、 msdb,tempdb、 散發資料庫等等)。
    • 線上或可讀取,則必須是來源資料庫。
    • 為複製品資料庫使用相同名稱的資料庫必須已經存在。
    • 指令無法在使用者交易中。


    如果所有驗證都成功, DBCC CLONEDATABASE會執行下列作業︰
    • 建立主要資料檔和記錄檔
    • 加入第二個 dataspaces
    • 新增第二個檔案

    附註目標資料庫中的所有檔案會都繼承 model 資料庫的大小和成長的設定。檔案名稱慣例︰ 目的資料庫的檔案名稱會遵循source_file_name _underscore_random 編號慣例。如果產生的檔案名稱已經存在的目的資料夾中,將會失敗DBCC CLONEDATABASE
  • 內部資料庫快照集

    DBCC CLONEDATABASE會使用來源資料庫的內部資料庫快照集交易的一致性所需來進行複製。如此可避免封鎖和並行處理問題時執行這些命令。如果無法建立快照集, DBCC CLONEDATABASE將會失敗。

    資料庫層級鎖定期間之後的複製程序的步驟執行︰
    • 驗證來源資料庫
    • 來源資料庫中取得 S 鎖定
    • 建立來源資料庫的快照集
    • 建立複製品資料庫 (這是空的資料庫繼承自模型)
    • 複製資料庫取得 X 鎖定
    • 複製到複製資料庫的中繼資料
    • 釋放所有的 DB 鎖定

    命令已完成執行,因為內部的快照集被卸除。在複製資料庫, TRUSTWORTHYDB_CHAINING選項已關閉。
支援的物件
僅下列物件的結構描述會被複製到目的資料庫。不會在下一節中列出的任何物件不被複製︰
  • 應用程式角色
  • 可用性群組
  • COLUMNSTORE 索引
  • CDB
  • CDC
  • 資料庫屬性
  • 預設值
  • 檔案與檔案群組
  • 函式
  • 索引
  • 登入
  • 資料分割函數
  • 資料分割配置
  • 程序
    附註 T SQL 程序只。將不會複製原本就已編譯的預存程序和 CLR 程序。
  • 角色
  • 規則
  • 結構描述
  • 序列
  • 空間索引
  • 統計資料
  • 同義資料表
  • 資料表
    附註 只有 「 使用者 」 和 「 filestream 資料表複製。將不會複製最佳化記憶體的資料表和檔案的資料表。
  • 觸發程序
  • 型別
  • 升級的資料庫
  • 使用者
  • 檢視
  • XML 索引
  • XML 結構描述集合

權限
您必須擁有在sysadmin固定伺服器角色的成員資格。
錯誤記錄檔訊息
錯誤記錄檔中記錄下列訊息時複製程序︰

時間戳記> spid53 資料庫複製 'sourcedb' 已經以目標為 'sourcedb_clone' 啟動的。

時間戳記> spid53 啟動資料庫 'sourcedb_clone'。

時間戳記> spid53 設定資料庫選項的資料庫 'sourcedb_clone' TRUSTWORTHY 為 OFF。

時間戳記> spid53 設定資料庫選項的資料庫 'sourcedb_clone' DB_CHAINING 為 OFF。

時間戳記> spid53 啟動資料庫 'sourcedb_clone'。

時間戳記> spid53 資料庫 'sourcedb_clone' 是否為複製的資料庫。複製的資料庫應針對診斷之用,並不適用於實際執行環境中。

時間戳記> spid53 資料庫複製,為 'sourcedb' 已完成。'Sourcedb_clone' 為複製的資料庫。
資料庫屬性
會新增新的資料庫屬性IsClone 。如果在產生資料庫使用DBCC CLONEDATABASEDATABASEPROPERTYEX (' dbname 引數','IsClone')會傳回1
範例-建立複製品 AdventureWorks 資料庫
下列範例會執行DBCC CLONEDATABSEAdventureWorks資料庫。

Transact-SQL -- Generate the clone of AdventureWorks database.    DBCC CLONEDATABASE (AdventureWorks, AdventureWorks_Clone);    GO   

参考
深入了解 術語 ,Microsoft 會用其來描述軟體更新。

警告:本文為自動翻譯

內容

文章識別碼:3177838 - 最後檢閱時間:07/11/2016 17:26:00 - 修訂: 1.0

Microsoft SQL Server 2014 Business Intelligence, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Enterprise Core, Microsoft SQL Server 2014 Express, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Web

  • kbqfe kbfix kbsurveynew kbexpertiseadvanced kbmt KB3177838 KbMtzh
意見反應