Amazon RDS:备份并还原到现有数据库实例上的新数据库中

时间:2018-11-13 09:46:00

标签: amazon-web-services amazon-rds

我有一个托管在Amazon RDS上的数据库,我需要进行备份并从中创建新数据库。是新手,不确定如何去做。尝试从SSMS进行操作,但是没有用。

4 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

我想您使用SQL Server RDS。 目前尚不清楚是否要将数据库还原到同一实例。 在Amazon RDS中无法使用不同名称在同一实例上还原备份

  

您不能将备份文件还原到用于创建>备份文件的同一数据库实例。而是将备份文件还原到新的数据库实例。

故障排除部分

https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/SQLServer.Procedural.Importing.html#SQLServer.Procedural.Importing.Native.Using.Poll

Amazon RDS中的SSMS也不支持SQL Server本机备份,因为它需要选择备份位置,但是在RDS中您无法访问操作系统资源。

选项很少:

1)从快照创建另一个实例,

2)如果数据库很多,并且您只想还原一个数据库,则需要启用SQLSERVER_BACKUP_RESTORE并使用rds_backup_database创建备份,并使用rds_restore_database还原它。

先决条件是拥有S3存储桶,并且IAM帐户有权访问S3存储桶 步骤应为:

  • 在选项组中更改参数SQLSERVER_BACKUP_RESTORE。请注意,这可能需要重新启动服务器。

https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.SQLServer.Options.BackupRestore.html

  • 在msdb数据库中调用rds_backup_database。必需的参数是数据库名称和S3存储桶,如果要加密备份,覆盖S3存储桶中具有相同名称的备份以及完整或差异备份类型,则是可选参数

https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/SQLServer.Procedural.Importing.html#SQLServer.Procedural.Importing.Native.Using.Backup

该过程的输出为任务ID,可用于检查备份任务的状态。

exec msdb..rds_task_status @ task_id = 5

  • 创建备份后,登录到另一个实例并运行rds_restore_database。参数是要还原的数据库的名称以及备份所在的S3存储桶。

https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/SQLServer.Procedural.Importing.html#SQLServer.Procedural.Importing.Native.Using.Restore

如果需要,可以从S3下载备份文件,然后将其还原到SQL Server。

3)如果想将两个数据库都放在同一个实例上,则是最长的一个,可以编写数据库脚本,使用不同的名称创建并将数据导出到新数据库中

整个过程描述为here

更新:Amazon允许在创建备份的同一实例上还原数据库。

https://aws.amazon.com/about-aws/whats-new/2018/10/amazon-rds-for-sql-server-enhances-backup-and-restore-capabilities/

答案 2 :(得分:0)

这是Google排名最高的搜索结果之一,但是这里有一些过时的信息。

您可以在RDS中为sql服务器启用sql本机备份/还原,将单个数据库备份到S3,然后使用新的数据库名称将该数据库还原到相同的RDS实例。

environment setup and performing the backup/restore的步骤:

  1. 创建一个S3存储桶以存储您的本机备份。
  2. 通过为RDS实例配置新的选项组并添加“ SQLSERVER_BACKUP_RESTORE”选项来启用Sql本机备份。
  3. 在SSMS中执行一系列过程以运行备份和还原任务:

exec msdb.dbo.rds_backup_database 
@source_db_name='database_name', @s3_arn_to_backup_to='arn:aws:s3:::bucket_name/file_name_and_extension', 
@overwrite_S3_backup_file=1;

exec msdb.dbo.rds_restore_database 
@restore_db_name='database_name', 
@s3_arn_to_restore_from='arn:aws:s3:::bucket_name/file_name_and_extension';

exec msdb.dbo.rds_task_status @db_name='database_name'

注意:我找不到有关删除此先前限制的任何公告:

  

您不能将备份文件还原到用于创建备份文件的同一数据库实例。而是将备份文件还原到新的数据库实例。

但是,从今天开始,我可以确认将本机备份还原到相同的实例是否可以如您所愿。

答案 3 :(得分:0)

您也可以使用AWS控制台通过几个简单的步骤完成此操作

  • 获取RDS数据库快照。您可能已经有RDS快照。检入AWS控制台-> RDS->快照。
  • 如果没有快照,则RDS实例->选择所需的实例->单击“实例操作”->“获取快照”。

然后下一个项目是您必须从此快照创建新的RDS实例。

  • 转到快照->选择要创建实例的快照。 ->单击“快照操作”->恢复快照。
  • 在还原屏幕中,为“ 数据库实例标识符* ”输入新的RDS实例的名称。

从快照还原有一定的限制,例如您无法更改数据库的大小,软件版本等。新实例将从原始数据库继承这些属性。