You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Amazon Linux中使用SQL Server无法获取.bak备份文件的问题

解决方案:SQL Server on Amazon Linux 备份路径配置与文件取回

一、正确指定备份路径的方法

1. 直接使用Linux原生绝对路径(推荐)

SQL Server在Linux环境下支持直接识别Linux路径,但需确保mssql服务账户对目标目录有读写权限:

  • 先创建并授权目标目录:
    sudo mkdir -p /home/work/sql_backups
    sudo chown mssql:mssql /home/work/sql_backups
    sudo chmod 700 /home/work/sql_backups
    
  • 执行备份语句(绝对路径):
    BACKUP DATABASE Database TO DISK = '/home/work/sql_backups/backup.bak' WITH INIT;
    
    注:WITH INIT用于覆盖现有备份文件,按需添加。

2. 使用SQL Server模拟的Windows风格路径

SQL Server在Linux上会将Windows路径映射到实际Linux目录,默认D:\rdsdbdata\BACKUP对应Linux的/var/opt/mssql/backup,备份语句可写为:

BACKUP DATABASE Database TO DISK = 'D:\rdsdbdata\BACKUP\backup.bak';

二、取回已生成的备份文件

你提到的D:\rdsdbdata\BACKUP对应的Linux实际路径是/var/opt/mssql/backup,可通过以下方式取回文件:

1. SCP命令(本地为Linux/macOS或Windows PowerShell)

在本地终端执行:

scp ec2-user@你的EC2实例IP:/var/opt/mssql/backup/backup.bak /本地目标保存路径/

2. EC2实例控制台操作

  • 先将备份文件复制到普通用户可访问的目录:
    sudo cp /var/opt/mssql/backup/backup.bak /home/ec2-user/
    sudo chown ec2-user:ec2-user /home/ec2-user/backup.bak
    
  • 通过AWS EC2实例连接的文件下载功能,将文件拉取到本地。

注意事项

  • 访问SQL Server相关目录需使用sudo提升权限,因为mssql是服务专用账户,普通用户无直接访问权限。
  • 备份前务必确认目标目录权限配置正确,否则会触发权限错误。

内容的提问来源于stack exchange,提问作者Luis Gomez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 10:35:04