SQL Server 2019从EC2 Windows实例备份至S3失败,求解决方法
SQL Server 2019 备份到AWS S3的解决方案
你的脚本在SQL Server 2022能正常运行,是因为2022开始原生支持直接通过TO URL备份到S3兼容存储,但SQL Server 2019没有这个原生特性,所以需要用以下替代方案:
方案一:使用AWS官方SQL Server Backup to S3工具
这是AWS为SQL Server 2016-2019提供的专用备份插件,步骤如下:
- 在EC2实例上安装对应版本的AWS SQL Server Backup to S3插件(匹配SQL Server 2019和操作系统)
- 创建访问S3的凭证(如果不用EC2 IAM角色的话):
CREATE CREDENTIAL [AWS_S3_CRED] WITH IDENTITY = 'AWS', SECRET = '你的Access Key ID:Secret Access Key';
- 通过专用存储过程执行备份:
EXEC msdb.dbo.aws_s3_backup_database @database_name = 'DB_Name', @s3_arn_to_backup_to = 'arn:aws:s3:::bucketname/bucket/DB_Name.BAK', @aws_credential_name = 'AWS_S3_CRED', @backup_type = 'FULL', @compression = 1; -- 启用压缩
方案二:将S3挂载为EC2本地文件系统
把S3桶挂载成EC2上的本地磁盘路径,再用常规磁盘备份脚本:
- 使用
s3fs或AWS S3 File Gateway将目标S3桶挂载到EC2的某个盘符/路径(比如Z:\bucket) - 执行标准磁盘备份命令:
BACKUP DATABASE [DB_Name] TO DISK = 'Z:\bucket\DB_Name.BAK' WITH COMPRESSION;
关键注意事项
- 优先使用EC2实例关联的IAM角色授予S3访问权限,避免硬编码密钥
- 确保备份工具版本与SQL Server 2019兼容,安装前检查版本匹配要求
- 挂载S3为文件系统时,注意备份的性能和数据一致性,适合非实时的批量备份场景
内容的提问来源于stack exchange,提问作者Anurag Jha
相关产品推荐
相关产品推荐

