SQLServer 2014 SP2实现克隆数据库
发布时间:2020-12-12 13:50:08 所属栏目:MsSql教程 来源:网络整理
导读:官方文档:点击打开链接 参考文档:点击打开链接?(注:DBCC CLONEDATABASE ?(source_database_name,target_database_name) WITH NO_STATISTICS,NO_QUERYSTORE 后面两个参数都用不了的, SQL Server 2016 sp1 才可以用 ) 首先看下, 是否已安装 SP2 补丁:
官方文档:点击打开链接 参考文档:点击打开链接?(注:DBCC CLONEDATABASE ?(source_database_name,target_database_name) WITH NO_STATISTICS,NO_QUERYSTORE 首先看下, 是否已安装 SP2 补丁: SELECT @@VERSION /* Microsoft SQL Server 2014 (SP2) (KB3171021) - 12.0.5000.0 (X64) Jun 17 2016 19:14:09 Copyright (c) Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (Hypervisor) */安装SP2补丁注意: 1. ?不需要先安装SP1; 2. ?安装时要先停止SQL Server服务, 关闭SSMS。 克隆数据库: DBCC CLONEDATABASE('test','test_clone') /* 已开始对“test”执行数据库克隆操作,目标为“test_clone”。 已完成对“test”执行数据库克隆操作。克隆数据库为“test_clone”。 数据库“test_clone”是克隆数据库。克隆数据库应仅用于诊断目的,不得用于生产环境。 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。 */ 很快(几秒)就能得到一个与原库一样的库了, 不同的是没有数据。 但表、索引、触发器、视图、存储过程等数据库对象一样不少。 还有一个方面就是:克隆过来的数据库是只读的,要可写还得将其改成可读写的。 USE [master] GO ALTER DATABASE [test_clone] SET READ_WRITE WITH NO_WAIT GO 不过, 看了一下表的存储, 还是不对, 因为没有数据的情况下居然还有行数…… 执行了更新表的统计信息和整个库的统计信息都没有用: --更新表统计信息 UPDATE STATISTICS tableName --更新整个库所有可用的统计信息 EXEC sys.sp_updatestats 重新生成聚集索引: --结果复制出来执行即可 SELECT 'ALTER INDEX ['+i.name+'] ON '+OBJECT_NAME(i.[object_id])+' REBUILD' AS ExecuteSQL FROM sys.indexes AS i WHERE i.type_desc='CLUSTERED' AND EXISTS(SELECT * FROM sys.tables AS t WHERE t.[object_id]=i.[object_id])这下就正常了。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |