文章出處

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 

本文版權歸作者所有,未經作者同意不得轉載。


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 AutoPoster 的頭像
    AutoPoster

    互聯網 - 大數據

    AutoPoster 發表在 痞客邦 留言(0) 人氣()