我有一个托管在Amazon RDS上的数据库,我需要进行备份并从中创建新数据库。是新手,不确定如何去做。尝试从SSMS进行操作,但是没有用。
答案 0 :(得分:0)
答案 1 :(得分:0)
我想您使用SQL Server RDS。 目前尚不清楚是否要将数据库还原到同一实例。 在Amazon RDS中无法使用不同名称在同一实例上还原备份
您不能将备份文件还原到用于创建>备份文件的同一数据库实例。而是将备份文件还原到新的数据库实例。
故障排除部分
Amazon RDS中的SSMS也不支持SQL Server本机备份,因为它需要选择备份位置,但是在RDS中您无法访问操作系统资源。
选项很少:
1)从快照创建另一个实例,
2)如果数据库很多,并且您只想还原一个数据库,则需要启用SQLSERVER_BACKUP_RESTORE并使用rds_backup_database创建备份,并使用rds_restore_database还原它。
先决条件是拥有S3存储桶,并且IAM帐户有权访问S3存储桶 步骤应为:
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Appendix.SQLServer.Options.BackupRestore.html
该过程的输出为任务ID,可用于检查备份任务的状态。
exec msdb..rds_task_status @ task_id = 5
如果需要,可以从S3下载备份文件,然后将其还原到SQL Server。
3)如果想将两个数据库都放在同一个实例上,则是最长的一个,可以编写数据库脚本,使用不同的名称创建并将数据导出到新数据库中
整个过程描述为here
更新:Amazon允许在创建备份的同一实例上还原数据库。
答案 2 :(得分:0)
这是Google排名最高的搜索结果之一,但是这里有一些过时的信息。
您可以在RDS中为sql服务器启用sql本机备份/还原,将单个数据库备份到S3,然后使用新的数据库名称将该数据库还原到相同的RDS实例。
environment setup and performing the backup/restore的步骤:
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实例。
从快照还原有一定的限制,例如您无法更改数据库的大小,软件版本等。新实例将从原始数据库继承这些属性。