华为云云数据库rds数据库复制_云淘科技

操作场景

使用存储过程,备份某个数据库,并恢复成一个新的数据库。

前提条件

成功连接RDS for SQL Server实例。关于连接华为云关系型数据库实例,请参考连接实例。
执行此存储过程的必须是拥有[CREATE ANY DATABASE]权限的用户。如果不具备此权限的用户尝试执行该存储过程,系统将会如下提示:

Database restores can only be performed by database logins with [CREATE ANY DATABASE] permissions.

对自定义数据库进行备份,执行账户必须是该数据库的“db_owner”或“db_backupoperator”角色组成员。如不具备相应权限的用户对数据库进行备份,系统将会有如下提示:

Database backups can only be performed by members of db_owner or db_backupoperator roles in the source database

约束

对于系统库,不可通过此存储过程进行复制操作。如果您试图复制系统库,系统将会如下提示:

Error DBName_Source or DBName_Target. Please can not include in ('msdb','master','model','tempdb','rdsadmin','resource') .

对于需要恢复的目标数据库,必须是不存在的,且不与源数据库同名的数据库,否则,系统将会如下提示:

Database 数据库名 already exists. Cannot restore database with the same name.

操作步骤

执行以下命令,进行数据库复制。

EXEC msdb.dbo.rds_copy_database ‘@DBName_Source’, ‘@DBName_Target’;

@ DBName_Source:源数据库,指定要备份的数据库名。
@ DBName_Target:目标数据库,指定要恢复的数据库名。

将数据库testDB_1复制出一个新的数据库testDB_2,示例如下:

EXEC msdb.dbo.rds_copy_database ‘testDB_1’, ‘testDB_2’;

数据库版本为RDS for SQL Server 2012(标准版、企业版、Web版)的用户,请使用名称为msdb.dbo.rds_copy_database_2012的存储过程进行数据库备份。
数据库版本为RDS for SQL Server 2016(标准版、企业版、Web版)的用户,请使用名称为msdb.dbo.rds_copy_database_2016的存储过程进行数据库备份。
数据库版本为RDS for SQL Server 2017企业版的用户,请使用名称为msdb.dbo.rds_copy_database_2017的存储过程进行数据库备份。

父主题: 存储过程的使用

同意关联代理商云淘科技,购买华为云产品更优惠(QQ 78315851)

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家