CloudFormation 业余爱好者在这里。一直在网上查找,但找不到任何关于在我的 RDS 实例通过 CloudFormation 建立后我将如何创建表的参考资料。是否可以指定一个 Lambda 来启动和创建所有表,或者指定一个要应用的 SQL 文件?这方面的标准模式是什么?
amazon-web-services amazon-rds aws-cloudformation aws-lambda
我正在尝试将我的 Postgresql 数据库恢复到 AWS RDS。我想我快到了。我可以获得转储,并在本地重新创建数据库,但我错过了将其恢复到 AWS RDS 的最后一步。
这是我在做什么:
$ pg_dump -h my_public dns -U myusername -f dump.sql myawsdb
create database test;
$ psql -U myusername -d test -f dump.sql
到目前为止,一切都很好。
I get an error: psql:dump.sql:2705: ERROR: role "rdsadmin" does not exist,但我想我可以忽略它,因为我的数据库包含所有内容。(我检查了 \list 和 \connect 测试)。
现在我想将此转储/测试恢复到我的 AWS RDS。
按照这个https://gist.github.com/syafiqfaiz/5273cd41df6f08fdedeb96e12af70e3b 我现在应该做:
pg_restore -h <host> -U <username> -c -d <database name> <filename to be restored>
但是我的文件名是什么,我的数据库名是什么?
我试过:
pg_restore -h mydns -U myusername …
我注意到使用mysql设置cacti的说明提到授予SUPER priveleges:
在要监视的每台服务器上创建具有SUPER和PROCESS权限的MySQL用户
但是,它看起来像使用Amazon(RDS)的关系数据库服务,您无法授予SUPER权限.这是否意味着我不能使用仙人掌?
谢谢!
我在一个小型电子商务网站工作,我们希望转移到所有亚马逊托管服务,我不确定RDS和SimpleDB的确切区别.RDS可以使用MySQL,可不是SimpleDB吗?
AWS提供了有关如何使用只读副本将MySQL 5.5实例升级到MySQL 5.6的指南.但是,最后一步是将应用程序指向新数据库,但EBS不通过Web控制台提供将应用程序指向其他数据库的机制.升级基于EBS的RDS实例的建议路径是什么?
我们每晚加载一些工作,将数十万条记录写入Amazon RDS中运行的Mysql报告数据库.
负载工作需要几个小时才能完成,但我很难搞清楚瓶颈在哪里.
该实例当前正在使用通用(SSD)存储.通过查看云观察指标,我觉得上周的平均值不到50 IOPS.但是,网络接收吞吐量小于0.2 MB /秒.
无论如何,从这些数据中可以看出我是否因网络延迟而受到瓶颈(我们目前正在从远程服务器加载数据......这最终会改变)或者写入IOPS?
如果IOPS是瓶颈,我可以轻松升级到预配置IOPS.但是如果网络延迟是问题,我将需要重新设计我们的加载作业以从EC2实例而不是我们的远程服务器加载原始数据,这将花费一些时间来实现.
任何建议表示赞赏.
更新:有关我的实例的更多信息.我正在使用m3.xlarge实例.它的容量为500GB.使用pentaho的ETL工具完成装载作业.它们从多个(远程)源数据库中提取并使用多个线程插入到RDS实例中.

我想在AWS RDS上使用PostgreSQL 9.5.4,利用全文搜索,带停用词的词典,非重音全文搜索.
上下文:
打开'unaccent'后,即使我没有正确输入重音,这个全文(Json)查询也会找到'F(e-acute)vrier'
psql>select * from proto_model.product where to_tsvector((body ->> 'description')) @@ to_tsquery('Fevrier');
Run Code Online (Sandbox Code Playgroud)
使用英语词典,同样搜索"the","any","you"...将找不到任何内容,因为它们是英语词典中定义的"停用词"并被忽略.
问题:
在我当地的Postgres上,这根本不是问题.在托管AWS上,这是一个.AWS上的EC2 + Docker当然不是问题,但我现在专注于RDS Postgres.
在本地,默认值default_text_search_config(得到它psql>show all)是'pg_catalog.english',它使用英语词典和停用词.在RDS上,这是'pg_catalog.simple'.
1)在AWS中,我无法添加字典或修改字典,因为您需要您没有的文件系统访问权限.创建/更新字典AFAIK没有编程解决方案.
2)在AWS中,作为'postgres'用户或甚至可以创建的' rds_superuser ' ,我无法改变全局配置
psql>ALTER SYSTEM SET default_text_search_config = 'pg_catalog.english';
ERROR: must be superuser to execute ALTER SYSTEM command
Run Code Online (Sandbox Code Playgroud)
此外,没有可以与新Postgres实例关联的RDS Postgres参数组,并且您无法添加缺失值!向'rds_superuser'(psql>grant all on schema public to ...)授予更多权限并没有帮助.
3)在AWS中,作为'postgres'或'rds_superuser',我可以为我的会话设置当前文本配置
psql>set default_text_search_config = 'pg_catalog.english';
SET
Run Code Online (Sandbox Code Playgroud)
4)遗憾的是,在AWS中,作为'postgres'或'rds_superuser',我无法改变搜索配置(全局)以忽略重音.这在当地工作正常.
psql>ALTER TEXT SEARCH CONFIGURATION english ALTER MAPPING FOR hword, hword_part, word WITH unaccent, english_stem;
ERROR: must …Run Code Online (Sandbox Code Playgroud) 我们有一个m4.2x largeRDS Postgres实例,具有300 GB存储空间和1000个预配置IOPS.
我们希望将PIOPS提高到2000,是否会出现停机时间?如果性能会降级,有多少衡量标准?
我找不到任何相关文档,谈论在发生变化时增加PIOPS对实例的影响.
谢谢
在 CI/CD 部署环境中,存在 MYSQL 还原错误。此错误是由于 AWS RDS MySQL 权限造成的。一个mysql转储文件是5.7版本生成的,其他环境用AWS RDS Mysql 5.6版本还原如下关系:
MySQL 转储 = 版本:5.7.23 MySQL 还原 = 版本:5.6.40
在 CI/CD 部署工具中得到的错误是:
`Backup format OK
Restoring MySQL
ERROR 1227 (42000) at line 18: Access denied; you need (at least one of) the SUPER privilege(s) for this operation
Error in hook: post_extract
Hook script failed
Build step 'Execute shell' marked build as failure
Finished: FAILURE`
Basically is just trying to restore a MYSQL dump file `mysql.sql`. The first 20 …Run Code Online (Sandbox Code Playgroud) 我很难将数据从 S3 导入 RDS postgres 实例。根据 docs,您可以使用以下语法:
aws_s3.table_import_from_s3 (
table_name text,
column_list text,
options text,
bucket text,
file_path text,
region text,
access_key text,
secret_key text,
session_token text
)
Run Code Online (Sandbox Code Playgroud)
所以,在 pgAdmin 中,我这样做了:
SELECT aws_s3.table_import_from_s3(
'contacts_1',
'firstname,lastname,imported',
'(format csv)',
'com.foo.mybucket',
'mydir/subdir/myfile.csv',
'us-east-2',
'AKIAYYXUMxxxxxxxxxxx',
'3zB4S5jb1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
);
Run Code Online (Sandbox Code Playgroud)
我还对最后一个参数使用显式 NULL 进行了尝试。
我得到的错误信息是:
NOTICE: CURL error code: 51 when attempting to validate pre-signed URL, 1 attempt(s) remaining
NOTICE: CURL error code: 51 when attempting to validate pre-signed URL, 0 attempt(s) remaining
ERROR: Unable to …Run Code Online (Sandbox Code Playgroud) amazon-rds ×10
mysql ×4
postgresql ×4
amazon-ebs ×1
amazon-s3 ×1
aws-lambda ×1
cacti ×1
django ×1
dump ×1
restore ×1