我EC2
已经RDS
AWS
我想做 mysqldump 来获取数据RDS
我的情况如下
RDS
仅接受来自服务器的连接EC2
。EC2
没有权力使用mysqldump
。
所以我想做的是
mysqldump
在我的运行并通过local machine
获取数据。RDS
EC2
我首先尝试错误地进行端口转发,如下所示
$ssh -f -N -L 3308:my_rds.amazonaws.com:3306 -i ~/.ssh/id_rsa ubuntu@my_ec2.amazonaws.com
$mysqldump -u root -h 127.0.0.1 -P 3308 -pXXXXXX -v mydb > mybackup.sql
但是它在服务器上执行mysqldump
命令,而不是在EC2
local machine
我想跑mysqldump
进去local machine
这不可能吗?或者有其他方法可以做到这一点?
非常感谢。
答案1
正如前面的答案中提到的,mysqldump 确实在您的系统上本地运行,但必须维护 SSH 隧道并推送 9GB 的数据(甚至更多),这会给您的 EC2 实例带来压力,以至于它耗尽了 CPU 积分并且您受到限制。
您的选择:
- 将现有的 EC2 实例调整为更高的级别或容量(可能是 M5/C5 级别)
- 启动 C5/M5 类的新临时实例,并将其作为隧道
- 旋转Fargate 任务使用 MySQL docker 镜像,以便 mysqldump 在无服务器容器上运行并将转储保存到 S3。下载后删除。你可以在我的Github