标签: amazon-rds

RDS数据库存储空间不足

我刚刚将RDS存储容量从10GB升级到20GB,经过几天RDS再次称存储已满.

在MySQL工作台中针对同一个数据库运行此查询表示数据库大小为43MB

SELECT table_schema "database_name", 
sum( data_length + index_length ) / 1024 / 
1024 "Data Base Size in MB", 
sum( data_free )/ 1024 / 1024 "Free Space in MB" 
FROM information_schema.TABLES 
GROUP BY table_schema ;  
Run Code Online (Sandbox Code Playgroud)

因此,MySQL创建的日志或备份等可能会占用生产服务器上的存储空间.

请帮忙.

mysql amazon-web-services amazon-rds

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

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
查看次数

AWS RDS SQL Server无法删除数据库

我尝试通过导出数据层应用程序(.bacpac文件)从Amazon RDS实例迁移SQL Server数据库到其他实例,但导入未成功.所以现在我想删除数据库(这是空的),当我尝试:

DROP DATABASE mydatabase;
Run Code Online (Sandbox Code Playgroud)

我收到错误:

无法删除数据库'mydatabase',因为它不存在或您没有权限

一些背景:

  • 我尝试过使用SQL Server Management Studio,并选择紧密连接:同样的错误.
  • 我以主用户身份登录.
  • 我可以创建和删除其他数据库,但不是这个.
  • 我只是有这个数据库对这些有效权限:CONNECT,SHOWPLAN,VIEW DATABASE STATE,VIEW DEFINITION(不知道为什么还是这怎么可能).

任何帮助是极大的赞赏!

database sql-server amazon-web-services amazon-rds

9
推荐指数
4
解决办法
5154
查看次数

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
查看次数

让Sequelize.js库在Amazon Lambda上运行

所以我试图在亚马逊上运行lambda并最终通过测试amazons测试控制台中的lambda来缩小错误.

我得到的错误就是这个.

{
  "errorMessage": "Please install mysql2 package manually",
  "errorType": "Error",
  "stackTrace": [
    "new MysqlDialect (/var/task/node_modules/sequelize/lib/dialects/mysql/index.js:14:30)",
    "new Sequelize (/var/task/node_modules/sequelize/lib/sequelize.js:234:20)",
    "Object.exports.getSequelizeConnection (/var/task/src/twilio/twilio.js:858:20)",
    "Object.<anonymous> (/var/task/src/twilio/twilio.js:679:25)",
    "__webpack_require__ (/var/task/src/twilio/twilio.js:20:30)",
    "/var/task/src/twilio/twilio.js:63:18",
    "Object.<anonymous> (/var/task/src/twilio/twilio.js:66:10)",
    "Module._compile (module.js:570:32)",
    "Object.Module._extensions..js (module.js:579:10)",
    "Module.load (module.js:487:32)",
    "tryModuleLoad (module.js:446:12)",
    "Function.Module._load (module.js:438:3)",
    "Module.require (module.js:497:17)",
    "require (internal/module.js:20:19)"
  ]
}
Run Code Online (Sandbox Code Playgroud)

很容易,所以我必须安装mysql2.所以我把它添加到我的package.json文件中.

{
  "name": "test-api",
  "version": "1.0.0",
  "description": "",
  "main": "handler.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 0"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "aws-sdk": "^2.153.0",
    "babel-core": "^6.26.0",
    "babel-loader": "^7.1.2", …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services amazon-rds aws-lambda serverless-framework node-mysql2

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

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
查看次数