SQL Server2014 SP2新增的数据库克隆功能

时间:2022-08-05 17:51:38

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 输出了错误信息,请与系统管理员联系。

创建成功之后,克隆库是只读状态的,并且库里所有表都没有数据

SQL Server2014 SP2新增的数据库克隆功能

SQL Server2014 SP2新增的数据库克隆功能

存储过程也会克隆过来,在克隆库打开存储过程定义

SQL Server2014 SP2新增的数据库克隆功能

克隆库也会在数据目录下创建mdf和ldf文件

SQL Server2014 SP2新增的数据库克隆功能

SQL Server2014 SP2新增的数据库克隆功能

可以看到,克隆库其实跟源库没有太大差别,只是克隆库里面没有业务数据

利用克隆库诊断数据库问题,把克隆库进行数据库备份或分离数据库然后发给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

SQL Server2014 SP2新增的数据库克隆功能

只要对方还原你的数据库就可以对你的数据库问题进行诊断了

如有不对的地方,欢迎大家拍砖o(∩_∩)o 

本文版权归作者所有,未经作者同意不得转载。