Search code examples
amazon-web-servicesduplicatesamazon-rds

How to copy an AWS RDS database, NOT the entire instance


I am somewhat new to AWS RDS and their terminology. What they call a "database" seems to me to be an SQL Server instance. I have a database (as defined by SSMS--with tables, data, stored procedures, etc.) on RDS named "prod" and I want to duplicate it for testing purposes to be named "test" with all the content, and leave "prod" as-is.

All the instructions I've found by doing many, many searches seem to be related to duplicating the entire instance. Can someone help me with instructions on how to create a duplicate of just the (ssms term) database?

Thanks in advance for any help!

P.S. What does AWS/RDS call the object that is equivalent to an SSMS database?

I've found multiple posts here about duplicating an entire instance. It could be that I don't fully understand the terminology because I know this must be a common task but I am not understanding how to do it.

This is a production environment so I am proceeding very cautiously. I do have nightly snapshots made so I know I could recover but would rather do it right the first time.


Solution

  • I usually use a command like this to backup a single database to s3:

    exec msdb.dbo.rds_backup_database @source_db_name='<mydatabasename>', @S3_arn_to_backup_to='arn:aws:s3:::<mys3objectname>', @type='FULL'
    

    There is a bit of one-time configuration you need to do first, see the link below , and then its as simple as executing commands from SSMS to backup a database to S3 and then restoring it from S3 - maybe not exactly what you are looking for, but it works great.

    https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/SQLServer.Procedural.Importing.html