在这里,我试图在 AWS RDS 中实现以下目标。我有一个正在运行的 MySQL 数据库实例。我正在考虑创建只读副本,以便拥有一些额外的负载共享功能。
我有一个在 EC2 上运行的 Spring Boot 应用程序。目前我连接到数据库的方式是在 application.yml 中添加以下属性:
datasource:
type: com.zaxxer.hikari.HikariDataSource
url: jdbc:mysql://DB_HOSTNAME:3306/DB_DATABASE?useUnicode=true&characterEncoding=utf8&useSSL=false&useLegacyDatetimeCode=false&serverTimezone=UTC
username: DB_USERNAME
password: DB_PASSWORD
Run Code Online (Sandbox Code Playgroud)
我的问题是:
如果有任何链接/视频/文档,您可以指出我。Spring Boot 不是必需的,我需要了解什么是从 Java 应用程序利用只读副本的好方法。
谢谢
amazon-web-services amazon-rds spring-data-jpa spring-boot read-replication
是否可以/建议创建只能访问 RDS MySQL 只读副本而不是主数据库服务器的用户?我有许多高级用户我想授予访问权限,以便他们可以运行运行缓慢的查询,但不想让他们访问主生产数据库本身。尝试直接在服务器上执行此操作,我得到ERROR 1290 (HY000): The MySQL server is running with the --read-only option so it cannot execute this statement,因此猜测我必须在 db 参数组或类似的地方执行此操作。无论如何,想法?
我正在尝试使用 SQLAlchemy 运行大型查询,并在设置为只读副本的 Postgres 9.4 RDS 服务器上使用以下代码。
# self.sa_engine is a SQLAlchemy engine
with self.sa_engine.connect() as conn:
conn = conn.execution_options(stream_results=True)
# pd = pandas
# self.sql = "select * from mylargetable"
for chunk in pd.read_sql(self.sql, conn, chunksize=50000):
# do stuff, write file, etc....
Run Code Online (Sandbox Code Playgroud)
问题是大约 30-60 秒后我收到以下错误。在此期间,文件正在按预期写入。
TransactionRollbackError: terminating connection due to conflict with recovery
DETAIL: User query might have needed to see row versions that must be removed.
Run Code Online (Sandbox Code Playgroud)
我在 google 上搜索到的所有内容都表明要在 RDS 中的只读副本上设置以下参数:
hot_standby_feedback=1
max_standby_archive_delay=600000
max_standby_streaming_delay=600000
Run Code Online (Sandbox Code Playgroud)
设置这些参数后,我预计仅当查询运行时间超过 10 分钟时才会出现上述错误,但我在 30-60 …
有没有办法修复已停止与主数据库同步的只读副本?我已经在删除它并创建一个新的过程中,因为我找不到这个答案,但很高兴知道它是否再次发生。
数据库是带有 Innodb 表的 MySQL 数据库。
我们可以使用控制台和 CLI 轻松提升 RDS 只读副本,但有没有办法让主访问意味着使用云形成提升为主数据库?
amazon-web-services amazon-rds aws-cloudformation read-replication
Amazon RDS 有两种主要不同类型的副本,多可用区副本和只读副本,很容易找到它们的区别。
但是,只读副本已于 2018 年 1 月支持多可用区部署。
“多可用区部署”和“只读副本版本多可用区部署”的主要区别是什么?
实例操作
? 修改
?指定了“多可用区部署”选项
实例操作
? 创建只读副本
? 指定了“多可用区部署”选项
编辑:我不是要编辑只读副本。我是说我确实编辑了它,但我对为什么能够编辑感到困惑。
我在美国西部有一个数据库。我在孟买做了一个只读副本,所以印度的用户不会遇到缓慢的问题。出于好奇,我尝试在 Mumbai 只读副本数据库中编辑一行,希望得到一个拒绝我的写入尝试的安全错误(毕竟它是一个 READ 副本)。但是写操作成功了。这是为什么?这不应该是只读数据库吗?
然后我去了主数据库,希望至少可以同步写入过程,但是我的写入执行没有持续。主数据库现在与地方不同。
我还尝试在主数据库中编辑数据,希望它能将其复制到从数据库,但也失败了。
显然,我不明白什么。
database amazon-web-services amazon-rds aurora read-replication
我在 Amazon RDS 生产数据库上有一个相对较大的表(在 2M 条记录范围内)。我希望对多个字段进行分组,包括表中日期的月份(server_time)。为了加快速度,我在 master 数据库上创建了一个索引,如下所示:
create index on build_requests(group_id, artifact_id, account_id, number_of_interfaces, date_trunc('month', server_build_time));
Run Code Online (Sandbox Code Playgroud)
然后,正如您所期望的,对数据进行分组的查询使用主服务器上的索引:
GroupAggregate (cost=0.55..311308.09 rows=1633231 width=85)
Group Key: group_id, artifact_id, account_id, number_of_interfaces, date_trunc('month'::text, server_build_time)
-> Index Scan using build_requests_group_id_artifact_id_account_id_number_of_in_idx on build_requests (cost=0.55..262417.68 rows=1898335 width=85)
Run Code Online (Sandbox Code Playgroud)
然而,等待一个多小时后,只读副本仍然没有使用索引:
GroupAggregate (cost=434678.88..488313.41 rows=1633179 width=85)
Group Key: group_id, artifact_id, account_id, number_of_interfaces, (date_trunc('month'::text, server_build_time))
-> Sort (cost=434678.88..439424.56 rows=1898274 width=85)
Sort Key: group_id, artifact_id, account_id, number_of_interfaces, (date_trunc('month'::text, server_build_time))
-> Seq Scan on build_requests (cost=0.00..55053.43 rows=1898274 width=85)
Run Code Online (Sandbox Code Playgroud)
使用 pgadmin 登录只读副本,我发现索引仍然存在。这是一个问题,因为只读副本上的查询速度较慢(5 分钟 vs 3 …
我很容易找到了一种使用 AWS 云形成在同一区域创建 RDS 只读副本的方法,但是:
1. 我们可以使用 CF 模板在不同的区域创建相同的副本吗?
2. 也可以使用CF模板将其提升为primary吗?
amazon-web-services amazon-rds aws-cloudformation read-replication
我已为生产 RDS 实例创建了只读副本,但我不知道在哪里可以看到该副本的登录凭据。
当我进入秘密管理屏幕并尝试创建新秘密时,副本实例不存在。
而且我不知道密码(通常在控制台创建数据库后会显示密码)。
我如何获得以下信息?用户名、密码、数据库名
credentials amazon-web-services amazon-rds read-replication aws-secrets-manager
read-replication ×10
amazon-rds ×9
postgresql ×2
aurora ×1
credentials ×1
database ×1
multi-az ×1
mysql ×1
spring-boot ×1
sql ×1