您可以使用SQL命令复制数据库,您只需要使用存储过程sp_rds_copy_database指定源数据库和目的数据库即可。复制时间与数据库大小有关。
前提条件
复制数据库前,实例剩余的空间必须大于源数据库的1.3倍。
操作步骤
执行如下命令,即可复制数据库:
USE master
GO
--database engine edtion
SELECT SERVERPROPERTY('edition')
GO
--create database
CREATE DATABASE testdb
GO
EXEC sp_rds_copy_database 'testdb','testdb_copy'
SELECT *
FROM sys.databases
WHERE name IN ('testdb','testdb_copy')
SELECT
family_guid,database_guid,*
FROM sys.database_recovery_status
WHERE
DB_NAME(database_id) IN ('testdb','testdb_copy')
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
要在SQL Server 2012及以上版本的实例中使用SQL命令复制数据库,请遵循以下步骤:
首先,连接到您的SQL Server实例,并执行以下命令以确认数据库引擎版本:
USE master;
GO
SELECT SERVERPROPERTY('edition');
GO
接下来,创建一个新的数据库作为复制的目标。例如,如果要复制的源数据库名为testdb
,则创建一个名为testdb_copy
的新数据库:
CREATE DATABASE testdb_copy;
GO
使用存储过程sp_rds_copy_database
来指定源数据库和目标数据库进行复制:
EXEC sp_rds_copy_database 'testdb', 'testdb_copy';
GO
这里,'testdb'
是源数据库名称,'testdb_copy'
是目标数据库名称。
复制操作完成后,通过查询系统表sys.databases
来验证新数据库是否成功创建:
SELECT * FROM sys.databases WHERE name IN ('testdb', 'testdb_copy');
GO
最后,查询sys.database_recovery_status
以确认数据库的恢复状态:
SELECT family_guid, database_guid, *
FROM sys.database_recovery_status
WHERE DB_NAME(database_id) IN ('testdb', 'testdb_copy');
GO
按照上述步骤操作,您就可以在满足条件的SQL Server实例上顺利完成数据库的复制任务。