top

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

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 

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

posted @   桦仔  阅读(2314)  评论(2编辑  收藏  举报
编辑推荐:
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
阅读排行:
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)
点击右上角即可分享
微信分享提示