您不仅可以使用本机 sql server 备份,还可以使用任何其他 sql server 功能进行数据迁移。我会强调以下解决您的案例的选项。
Sql server 原生备份
1.Native sql server 备份\恢复
RDS Sql Server 不支持 T-SQL CREATE DATABASE 命令。但是,您可以使用存储过程在 S3 上进行本机备份
EXEC [msdb].[dbo].[rds_backup_database]
@source_db_name = '<database name>',
@S3_arn_to_backup_to = N'arn:aws:s3:::<bucket name>/sample.backup'
要使这个存储过程正常工作,您需要做一些预先配置。更多详情可查看here
从速度的角度来看——创建本机备份将是最优化的,但这种方法使用起来不是很方便。启动时,存储过程不会直接创建备份,而是创建需要监控的“任务”。并且只有在成功完成此任务后,您才能将备份从 S3 复制到本地服务器。
要将备份文件恢复到本地服务器,请使用 SSMS:数据库 -> 右键单击 -> 恢复数据库
2。导出\导入数据层应用程序
Export\import bacpac 是一种将数据库从一台服务器迁移到另一台服务器的机制。您可以使用 SSMS 或 sqlpackage 实用程序导出/导入数据库。
导出数据层应用程序不保证事务数据的一致性。为了使导出的文件在事务上保持一致,您需要确保在数据导出过程中没有写入操作。
要将 .bacpac 文件恢复到本地服务器,请使用 SSMS:数据库 -> 右键单击 -> 导入数据层应用程序
有关这两个选项的更多详细信息可以找到here
3.生成t-sql脚本
如果您的数据库不是很大,那么您可以创建一个包含恢复数据库指令的 T-SQL 脚本。
- 打开 SSMS
- 右键单击数据库
- 任务 -> 生成脚本
- 在设置脚本选项步骤转到高级
- 将脚本的数据类型设置为“架构和数据”值
创建 t-sql 脚本是复制数据库最慢但也是最灵活的方法。在高级设置中,您可以选择多种脚本创建选项。
与导出数据层应用程序一样,需要确保在导出期间没有对数据库的写入操作。
要恢复到本地服务器,请将文件拖到 SSMS 中并按 F5。但如果文件太大,则使用sqlcmd 实用程序