标签: amazon-rds

RDS快照可以跨AWS账户传输吗?

自回答此问题以来,AWS Tools for Powershell已经发布,我基本上遇到了同样的问题:我在一个AWS账户上有一个RDS快照,我希望将其转移到另一个账户.

到目前为止,我已经能够使用Get-RDSDBSnapshotcmdlet 选择我想要的快照,并且我想要获取该Amazon.RDS.Model.DBSnapshot对象并在其他帐户中使用它.

我一直在环顾四周,我认为Restore-RDSDBInstanceFromDBSnapshotcmdlet(映射到rds-restore-db-instance-from-db-snapshot)可能是我正在寻找的,但我不相信我理解它的行为 -是否可以使用此cmdlet从我的第一个帐户获取快照,并将其还原到第二个帐户中的实例?

我特别关注Snapshot对象中是否存在任何特定于帐户的详细信息,或者是否会阻止该数据跨帐户移动的cmdlet的处理.如果存在一个问题,我会使用比PowerShell更通用的解决方案.

powershell amazon-web-services amazon-rds

9
推荐指数
1
解决办法
1万
查看次数

在AWS RDS上间歇性无法连接到mysql(错误2003)

我们遇到了与mysql服务器超时连接的间歇性问题.我们收到的错误如下.

(2003, 'Can\'t connect to MySQL server on \'<connection>\' ((2013, "Lost connection to MySQL server during query (error(104, \'Connection reset by peer\'))"))') Callstack: File "/usr/lib64/python2.7/site-packages/pymysql/connections.py", line 818, in _connect 2003, "Can't connect to MySQL server on %r (%s)" % (self.host, e)) File "/usr/lib64/python2.7/site-packages/pymysql/connections.py", line 626, in __init__ self._connect()

更多信息:

  • 我们有一系列EC2服务器不断向后端RDS运行查询.
  • 我们平均每秒约有500个连接到RDS
  • 我们每天每次RDS有大约0到4次打嗝
  • 打嗝与我们的维护窗口不一致
  • 当我们遇到打嗝时,它会影响很多连接~50
  • 当打嗝发生时,它将中断所有服务器和端口之间的连接

错误本身看起来是从ec2上关闭的tcp连接生成的.我们的TCP保持活动时间设置为7200秒,并且当错误被触发时.

我的问题是如何找出这些打嗝发生的原因?很棒的是,它们并不经常发生,但它们发生的并不理想.

任何建议将不胜感激!

更新10/29:

我一直在运行一个服务检查,看看我是否在sql服务器上运行了任何长进程,看起来这些错误没有达到那么远.永远不会为此连接创建新进程!我仍然收到了打嗝,没有任何关联的迹象.

mysql django amazon-web-services amazon-rds pymysql

9
推荐指数
1
解决办法
1353
查看次数

Amazon RDS:无需立即备份即可恢复快照

无论如何从快照恢复Amazon RDS实例但跳过在它结束后立即发生的备份步骤?

amazon-web-services amazon-rds boto3

9
推荐指数
1
解决办法
361
查看次数

Amazon Aurora 1.8从S3加载数据 - 无法实例化S3客户端

使用最新的Aurora更新(1.8),LOAD DATA FROM S3引入了该命令.有没有人得到这个工作?升级到1.8之后,我按照设置指南在此处创建角色以允许从RDS访问S3.

重新启动服务器并尝试运行命令后

LOAD DATA FROM S3 PREFIX 's3://<bucket_name>/prefix' INTO TABLE table_name
Run Code Online (Sandbox Code Playgroud)

在SQL Workbench/J中,我得到错误:

Warnings:
S3 API returned error: Missing Credentials: Cannot instantiate S3 Client
S3 API returned error: Failed to instantiate S3 Client
Internal error: Unable to initialize S3Stream
Run Code Online (Sandbox Code Playgroud)

是否还需要其他步骤?我可以只从SDK运行吗?我没有在文件中的任何地方看到这一点

amazon-s3 amazon-web-services amazon-rds amazon-aurora aws-rds

9
推荐指数
2
解决办法
1万
查看次数

随机时间跨度后AWS RDS MySQL性能下降

问题概述 我们的AWS RDS实例在大约7-14天后开始减速,这是一个相当大的因素(特定查询集的加载时间约为400%).RDS监测没有显示出资源短缺的迹象.(有关详细问题说明,请参阅下面的问题更新)


问题更新

因此,经过一个多月的调查和AWS的一些开发人员支持,我并不完全接近解决方案.

以下是我检查列表的几个步骤,或多或少没有任何进一步的问题提示:

  • 索引/碎片(所有表都有正确的索引/键并且没有碎片)
  • MySQL统计信息更新(手动更新统计信息)
  • 线程并发(将innodb_thread_concurrency更改为各种不同的参数)
  • 查询缓存命中率不会显示问题
  • 使用索引/键来查看是否有任何SELECT实际上很慢
  • SLOW QUERY LOG(不返回任何结果,因为见下面的段落,它是一些准备好的SELECT)
  • RDS和EC2在一个VPC内

为了解释,使用过的PlayFramework(2.3.8)有BoneCP,我们使用eBeans来选择我们的数据.所以基本上我正在运行一个嵌套对象和所有这些子对象,这为所讨论的API调用产生了几百个准备好的SELECT.对于使用过的硬件,这基本上也应该没问题,这些操作都不会广泛使用CPU和RAM.

我还包括NewRelic以获得有关此问题的更多见解,并进行了一些JVM概要分析.显然,大部分时间都是由NETTY/eBeans消耗的? NewRelic JVM分析输出

NewRelic最耗时的操作

NewRelic最耗时的操作

有人能理解这个吗?


原始问题:问题大纲

我们的AWS RDS实例在大约7-14天后开始放慢一个相当大的因素(特定查询集的加载时间约为400%).RDS监测没有显示出资源短缺的迹象.

基础设施

我们为AWS EC2实例上的移动应用程序运行PlayFramework后端,连接到AWS RDS MySQL实例,一个PROD环境,一个DEV环境.通常PROD EC2实例指向PROD RDS实例,而DEV EC2指向DEV RDS(来自队长的嗨明显!); 但有时我们也会让DEV EC2指向PROD DB进行某些测试.正在使用的PlayFramework正在与BoneCP合作.

详细问题描述

在一个非常重要的同步过程中,我们的应用程序每个用户每天多次进行一次API调用.我在这个SO问题中讨论了功能的背景,感谢评论,我可以将问题归结为某种类型的MySQL问题.

简而言之,API调用正在加载一组数据,最大约为1MB的json数据,目前大约需要18s才能加载.当事情运行得非常好时,这需要大约4秒才能加载.

很奇怪,上次"解决"问题的是将RDS实例升级到另一个实例类型(从db.m3.large到db.m4.large,这只是一个非常小的步骤).现在,大约2-3周后,RDS实例再次像以前一样缓慢运行.重新启动RDS实例显示无效.同样重新启动EC2实例也没有效果.

我还检查了受影响的mySQL表的索引是否设置正确,情况就是这样.API调用本身不是急于加载任何BLOB字段或类似的,我仔细检查了这一点.在大多数情况下,RDS实例的CPU使用率低于1%,当我用100个同时API调用对其进行压力测试时,它达到了约5%,因此这不是瓶颈.内存也很好,所以我猜RDS实例没有开始交换,这可能会减慢整个过程.

提供确凿的证据,DEV环境上的(较小的)公共API调用目前需要2.30秒负载,在PROD环境中需要4.86秒.这很有趣,因为DEV环境在EC2和RDS中都有一个小得多的实例类型.所以基本上乌龟在这里赢得比赛.(如果您对此API调用感兴趣,我很乐意通过PN与您分享,但我真的不想发布API调用的链接,即使它们基本上是公开的.)

结论

最后,感觉(我有点说'感觉')就像数据库在使用x天后/在一定量的API调用之后被阻塞了.不确定这是否是特定于RDS的问题,一旦我"通过更改实例类型"重置数据库实例,事情就会快速而平稳地运行.但是,每两周从快照重新创建我的数据库实例不是一种选择,特别是如果我不明白为什么会发生这种情况.

您有什么想法可以采取哪些进一步措施来调查此事吗?

mysql database amazon-web-services amazon-rds netty

9
推荐指数
1
解决办法
1145
查看次数

克隆 AWS RDS 数据库的最有效方法?

我在名为 X 和 Y 的服务器上运行了 2 个 MySQL 数据库,它们都具有相同的内容。一整天都在运行一系列更新,这会更改 X 的内容。在一天结束时,会运行一个过程,将 X 的内容与 Y 的内容(对于各种表)进行比较,以发现新行,更新行数据等。一旦更新被处理,mysqldump用于转储 X,然后用转储覆盖 Y。X 和 Y 现在再次相同,并且整个过程重复。

我正在研究将这些数据库迁移到 Amazon RDS。完成上述过程的最有效方法是什么?

我知道我可以拍摄数据库的快照并恢复它,但我认为这仅在实例级别?这意味着我必须运行 2 个实例,这似乎没有必要。我在同一个实例上运行两个数据库没有问题(我不想不必要地为多个实例付费)。

我只是做我现在正在做的事情,即mysqldumpX 并将其恢复到 Y,还是 RDS 提供了其他一些方法/快捷方式?

mysql amazon-web-services amazon-rds

9
推荐指数
2
解决办法
1万
查看次数

RDS的三个指标之间的关系是什么:可用内存,活动内存和可用内存?

AWS RDS的三个指标是什么:可用内存(增强监控),活动内存(增强监控)和可用内存(CloudWatch监控)?

他们之间有什么关系?

看看这两张照片.

三个指标的价值是不同的.

的形象 在这里输入图像描述

在此输入图像描述

在此输入图像描述 在此输入图像描述

amazon-rds

9
推荐指数
1
解决办法
931
查看次数

Laravel API的mysql查询未在performance_schema.events_statements_summary_by_digest中被跟踪

我在这里面临一些非常奇怪的问题.我们在AWS EC2上托管了一个laravel API,我们使用RDS(mysql 5.6).我最近在RDS上启用了performance_schema.以下是我注意到的行为

  1. 我们的RDS实例上有两个数据库.一个用于wordpress,一个用于我们的laravel API.Wordpress数据库查询正在逐渐消化.但是从我们的laravel应用程序运行的查询不是.
  2. 出于某种原因,当我将MySql Workbench连接到RDS实例并在我们的Laravel数据库上执行查询时,它们会在语句摘要中出现.
  3. 我登录到我的EC2机器,在RDS上连接到MySQL并执行一些查询,并在语句摘要中跟踪它们.

所以看起来只有当我们的Laravel应用程序执行查询时,它们才会被跟踪.

我们的Laravel版本是4.2.我试图找出最近两天的原因,任何帮助都将是一种解脱.

我在上述所有步骤中使用的用户都是相同的,并且拥有所有数据库的所有权限.

- 编辑 -

我进行了许多其他测试,他们都只指出了一个与Laravel有关的结论.我在托管laravel的同一台服务器上创建了一个简单的php文件.在此文件中,我使用相同的用户/密码连接到相同的实例/数据库.我在这个文件中所做的只是在$ pdo上运行一个非常简单的查询.

$stmt = $pdo->query('SELECT name FROM trades');
        while ($row = $stmt->fetch())
        {
            echo $row['name'] . "\n";
        }
Run Code Online (Sandbox Code Playgroud)

它出现在查询分析[ https://prnt.sc/j3ochd]中(我手动检查了performance_schema.events_statements_summary_by_digest)

但是我可以点击我们的laravel api,它实际上返回了交易表本身的条目(非常类似于我上面运行的查询).但这会出现在我的查询分析报告(Percona PMM)或events_statements_summary_by_digest中

mysql database-performance amazon-rds laravel laravel-4

9
推荐指数
1
解决办法
167
查看次数

无法从 AWS ECS Fargate 容器连接到 PostgreSQL

我正在使用 Fargate 和 RDS 为我的 Web 应用程序设置基础设施。

以下是基础设施的基本细节。

  1. Fargate 和 RDS 使用相同的 VPC 和相同的子网
  2. 我们在 Fargate 前面有一个应用程序负载均衡器
  3. 能够使用LB url访问容器应用程序

现在的问题是,Fargate 容器应用无法连接到 RDS

有人可以建议如何配置安全组或其他边界以允许容器连接 RDS。

如果我将 RDS SG 配置更改为 RDS 端口和 IP 作为 0.0.0.0/0 (Anywhere) 容器应用程序能够连接到 RDS。但这我们将无法在 UAT / PROD 中做到

amazon-rds aws-fargate

9
推荐指数
2
解决办法
4724
查看次数

AWS RDS Aurora - 如何使用 PgAdmin 进行连接?

昨天 AWS 为 PostgreSQL 推出了 Aurora serverless,但它似乎没有与其他 RDS 数据库相同的配置选项,例如我无法将其设置为面向公众,它迫使我拥有一个 VPC。

现在,我不知道如何将这些 VPC 内容应用到 PgAdmin,我尝试将安全组的入站设置为所有端口和 ip,但它仍然无法连接(没有服务器响应)。

如何使用 PgAdmin 连接到 VPC 内的 RDS 数据库?打开安全组不起作用。

amazon-web-services amazon-rds pgadmin amazon-aurora

9
推荐指数
1
解决办法
1234
查看次数