pen*_*ndo 12 amazon-ec2 amazon-web-services amazon-aurora
我正在计算我的 Aurora RDS 实例上允许的 90 个总连接数,因为我现在拥有比以前更多的重型站点。我决定升级实例并且我这样做了,但是在下一个维护窗口之前将升级置于挂起状态,没有考虑将只读副本添加到集群中。我已经添加了副本,一切都很好。我想取消从 db.t2.medium Aurora 到 db.r3.large Aurora 实例的挂起升级。我找不到清除待处理修改队列的方法。
我已经安装并配置了 AWS CLI。我只是找不到有关刷新待处理修改队列的文档。提前感谢大家。
小智 10
正如@gileri 所描述的,现在有一种方法可以撤消挂起的修改。
我使用 RDS/Aurora 实例对其进行了多次测试,即使没有--apply-immediately参数(至少对于实例类修改而言),它也能按预期工作。
让我们更改database-2-instance-1从db.t3.mediumto调用的 Aurora 实例的实例类,db.r4.large然后再次撤消它。这些命令都不会影响数据库的可用性。
注意:jq这里使用只输出重要的部分。
$ aws rds describe-db-instances --db-instance-identifier database-2-instance-1 | jq '.DBInstances[].DBInstanceClass'
"db.t3.medium"
Run Code Online (Sandbox Code Playgroud)
$ aws rds describe-db-instances --db-instance-identifier database-2-instance-1 | jq '.DBInstances[].PendingModifiedValues'
{}
Run Code Online (Sandbox Code Playgroud)
此修改将导致在下一个维护窗口中更改实例类。
$ aws rds modify-db-instance --db-instance-identifier database-2-instance-1 --db-instance-class db.r4.large | jq '.DBInstance.PendingModifiedValues'
{
"DBInstanceClass": "db.r4.large"
}
Run Code Online (Sandbox Code Playgroud)
为确定起见,请检查一切是否符合预期。
$ aws rds describe-db-instances --db-instance-identifier database-2-instance-1 | jq '.DBInstances[].PendingModifiedValues'
{
"DBInstanceClass": "db.r4.large"
}
Run Code Online (Sandbox Code Playgroud)
这是将实例类修改回旧值的重要部分。该文档描述了 a--apply-immediately是必需的,但事实证明并非如此。至少在这个例子中。
$ aws rds modify-db-instance --db-instance-identifier database-2-instance-1 --db-instance-class db.t3.medium | jq '.DBInstance.PendingModifiedValues'
{}
Run Code Online (Sandbox Code Playgroud)
$ aws rds describe-db-instances --db-instance-identifier database-2-instance-1 | jq '.DBInstances[].PendingModifiedValues'
{}
Run Code Online (Sandbox Code Playgroud)
此时挂起的修改消失了。
没有记录的方法可以取消待处理的修改。
但请注意,在 Aurora 集群上,主节点所扮演的角色并不像您想象的那么重要。它与其他设置不同,因为您的数据实际上并不存在于主实例上 - 它存在于 Aurora 集群卷上,该卷不属于任何实例 - 并且副本与物理数据存储的关系与传统的不同复制。
当您创建 Amazon Aurora 实例时,您将创建一个数据库集群。数据库集群由一个或多个数据库实例以及管理这些实例的数据的集群卷组成。Aurora 集群卷是跨多个可用区的虚拟数据库存储卷,每个可用区都有数据库集群数据的副本。
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Overview.html
因此,节点不保存数据——它是独立的,这是 Aurora 内部的强大功能之一。事实上,Aurora 副本没有自己的数据副本,因此从某种严格/字面/迂腐的意义上来说,它们在技术上甚至不是正确的“副本”(尽管仍在使用该术语)——它们只是被读取-仅集群中的节点。
因此,您可能只需通过故障转移进行重新启动,这会将另一个实例(您的新副本)切换为主实例。然后创建一个新的副本并销毁原始实例。
请注意,如果您在 aurora 集群中有副本,则需要使用集群端点连接到写入器节点或读取器节点之一,因为如果您的写入器(“主”)发生故障,Aurora 通常会交换角色(或者可能总是交换角色,尽管在某些情况下可能不会)。你可能已经在这样做了。
| 归档时间: |
|
| 查看次数: |
6532 次 |
| 最近记录: |