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

跨AWS服务器恢复RDS数据库遇阻,SCP拷贝备份文件失败求解决方案

解决AWS跨服务器RDS备份恢复问题

先修正你的SCP命令错误

你用的SCP参数格式完全不对:

  • SCP没有-U参数,也不支持用-P传密码(-P是用来指定SSH端口的)
  • Windows路径在SSH会话里直接写/D:/xxx没问题,但命令顺序要调整

正确的SCP拷贝方式

1. 用SSH密钥认证(推荐,安全高效)

确保本地有原服务器的SSH私钥文件,执行命令:

scp -i "C:/本地私钥路径/id_rsa" <username>@<服务器IP>:/D:/rdsdbdata/BACKUP/filename.bak "D:/"

2. 用sshpass传密码(仅测试环境用,不安全)

先装sshpass工具,再执行:

sshpass -p "你的服务器密码" scp <username>@<服务器IP>:/D:/rdsdbdata/BACKUP/filename.bak "D:/"

更适合AWS场景的高效方案

方案1:S3中转备份(比SCP拷贝本地再上传快很多)

  1. 原服务器上传备份到S3:
    aws s3 cp /D:/rdsdbdata/BACKUP/filename.bak s3://你的S3桶名/rds-backups/
    
    (确保服务器有S3访问权限,比如给EC2实例绑定带S3读写权限的IAM角色)
  2. 目标服务器从S3下载:
    aws s3 cp s3://你的S3桶名/rds-backups/filename.bak /D:/目标存储路径/
    
  3. 最后在目标服务器执行数据库恢复操作。

方案2:RDS原生跨实例恢复(最省心)

如果两台服务器的RDS是同一AWS账号下的实例:

  • 要是原RDS开了自动备份,直接去目标区域的RDS控制台,选「恢复到新实例」,选原备份和目标实例配置就行。
  • 要是手动备份,先把备份文件传到S3,再通过RDS控制台的「导入备份」功能,把S3里的备份恢复到目标RDS实例。

方案3:修复备份文件权限

如果是备份文件权限导致无法拷贝,先在原服务器改权限:

chmod 644 /D:/rdsdbdata/BACKUP/filename.bak

或者把文件所有者改成你的SSH登录用户:

chown <username>:<username> /D:/rdsdbdata/BACKUP/filename.bak

改完再用SCP拷贝。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 09:30:10