Replicating Databases
Scenarios
You can use a stored procedure to back up a database and restore it to a new database.
Prerequisites
- An RDS for SQL Server DB instance has been connected. For details about how to connect to a DB instance, see .
- The stored procedure must be executed by a user who has the [CREATE ANY DATABASE] permission. If a user who does not have this permission attempts to execute the stored procedure, the system displays the following information:Database restores can only be performed by database logins with [CREATE ANY DATABASE] permissions.
- To back up a custom database, the execution account must be a member of the db_owner or db_backupoperator role group in the database. If a user who does not have the corresponding permission attempts to execute the stored procedure, the system displays the following information:Database backups can only be performed by members of db_owner or db_backupoperator roles in the source database
Constraints
- You cannot replicate the system databases. If you attempt to replicate a system database, the system displays the following information:Error DBName_Source or DBName_Target. Please can not include in ('msdb','master','model','tempdb','rdsadmin','resource') .
- The target database to be restored to cannot have the same database name as the source database. Otherwise, the system displays the following information:Database database name already exists. Cannot restore database with the same name.
Procedure
Run the following command to replicate a database:
EXEC msdb.dbo.rds_copy_database '@DBName_Source', '@DBName_Target';
- @DBName_Source: indicates the source database to be backed up.
- @DBName_Target: indicates the target database to be restored to.
For example, to replicate database testDB_1 to obtain a new database testDB_2, run the following command:
EXEC msdb.dbo.rds_copy_database 'testDB_1', 'testDB_2';
Note
- If the database version is RDS for SQL Server 2012 (Standard Edition, Enterprise Edition, or Web Edition), use the stored procedure msdb.dbo.rds_copy_database_2012 to back up the database.
- If the database version is RDS for SQL Server 2016 (Standard Edition, Enterprise Edition, or Web Edition), use the stored procedure msdb.dbo.rds_copy_database_2016 to back up the database.
- If the database version is RDS for SQL Server 2017 Enterprise Edition, use the stored procedure msdb.dbo.rds_copy_database_2017 to back up the database.
Parent topic: Usage of Stored Procedures
- Scenarios
- Prerequisites
- Constraints
- Procedure