SQL Server2014 SP2新增的數據庫克隆功能
創建測試庫
--創建測試數據庫 create database testtest use testtest go --創建表 create table testtest(id int ,name varchar(20)) --插入數據 insert into testtest select 1,'sdfsdf' --創建存儲過程 create proc testproc as select 1
創建克隆數據庫的命令形式
DBCC CLONEDATABASE (source_database_name, target_database_name) –– Default CLONE WITH SCHEMA, STATISTICS and QUERYSTORE metadata. DBCC CLONEDATABASE (source_database_name, target_database_name) WITH NO_STATISTICS –– SCHEMA AND QUERY STORE ONLY CLONE DBCC CLONEDATABASE (source_database_name, target_database_name) WITH NO_QUERYSTORE –– SCHEMA AND STATISTICS ONLY CLONE DBCC CLONEDATABASE (source_database_name, target_database_name) WITH NO_STATISTICS,NO_QUERYSTORE –– SCHEMA ONLY CLONE
開始創建克隆庫
DBCC CLONEDATABASE (testtest, testtestclone) 已開始對“testtest”執行數據庫克隆操作,目標為“testtestclone”。 已完成對“testtest”執行數據庫克隆操作。克隆數據庫為“testtestclone”。 數據庫“testtestclone”是克隆數據庫。克隆數據庫應僅用於診斷目的,不得用於生產環境。 DBCC 執行完畢。如果 DBCC 輸出了錯誤信息,請與系統管理員聯系。
創建成功之后,克隆庫是只讀狀態的,並且庫里所有表都沒有數據
存儲過程也會克隆過來,在克隆庫打開存儲過程定義
克隆庫也會在數據目錄下創建mdf和ldf文件
可以看到,克隆庫其實跟源庫沒有太大差別,只是克隆庫里面沒有業務數據
利用克隆庫診斷數據庫問題,把克隆庫進行數據庫備份或分離數據庫然后發給SQL Server專家就可以幫你診斷了,非常方便
--備份克隆庫 backup database [testtestclone] to disk='D:\DBBackup\testtestclone.bak' with compression,stats=5 --還原克隆庫 USE [master] RESTORE DATABASE [testtestclone] FROM DISK = N'D:\DBBackup\testtestclone.bak' WITH FILE = 1, MOVE N'testtest' TO N'D:\DataBase\testtest_843330487.mdf', MOVE N'testtest_log' TO N'D:\DataBase\testtest_log_82742540.ldf', NOUNLOAD, STATS = 5 GO --分離克隆庫 USE [master] GO EXEC master.dbo.sp_detach_db @dbname = N'testtestclone' GO
只要對方還原你的數據庫就可以對你的數據庫問題進行診斷了
如有不對的地方,歡迎大家拍磚o(∩_∩)o
本文版權歸作者所有,未經作者同意不得轉載。