Help Center > > User Guide> Working with RDS for SQL Server> Usage of Stored Procedures> Replicating Databases

Replicating Databases

Updated at: Jan 14, 2020 GMT+08:00

Scenarios

You can use a stored procedure to back up a database and restore it to a new database.

Prerequisites

  • An RDS Microsoft SQL Server DB instance has been connected. For details about how to connect to a DB instance, see Connecting to a DB Instance Through a Public Network.
  • 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';

  • If the database version is Microsoft 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 Microsoft 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 Microsoft SQL Server 2017 Enterprise Edition, use the stored procedure msdb.dbo.rds_copy_database_2017 to back up the database.

Did you find this page helpful?

Submit successfully!

Thank you for your feedback. Your feedback helps make our documentation better.

Failed to submit the feedback. Please try again later.

Which of the following issues have you encountered?







Please complete at least one feedback item.

Content most length 200 character

Content is empty.

OK Cancel