使用 AWS Blue/Green 部署,如何修改暂存数据库?

使用 AWS Blue/Green 部署,如何修改暂存数据库?

AWS 推出了针对 RDS 的蓝/绿部署功能,允许您创建与生产(蓝色)数据库并行的暂存(绿色)数据库。他们的文档明确指出,您可以进行更改并进行测试,但是:

  • 默认情况下是只读的
  • 它有复制功能,将绿色与蓝色同步
  • 我无法创建超级用户来禁用只读模式或禁用复制。

我理解他们为什么默认使用那些,更改可能会搞乱复制,如果没有复制,您将丢失数据,除非您手动复制数据的方式与您对绿色所做的任何更改兼容。我愿意管理这一点,但实际上无法弄清楚如何修改数据库!没有超级用户我无法运行:

STOP REPLICA;
set GLOBAL read_only = false;

显然,AWS RDS 不允许超级用户,并且无法在控制台中禁用这两者。

我遗漏了什么?绿色/蓝色是否仅允许您升级 MySQL 版本?这似乎是一个很大的限制,并没有在任何地方明确说明。

答案1

我可以确认绿色部署主端点默认是只读的。

如果您的用例要求您进行写入操作或架构更改,则需要将新的 DB 参数组应用到主实例,并将read_only参数设置为0

(该read_only参数是动态参数,因此应用时无需重新启动。)

以下是应用新参数组的一些常规步骤:

  1. 创建一个新的参数组或克隆现有的参数组。
  2. 创建参数组后,修改参数read_only并将值从默认值设置{TrueIfReplica}0
  3. 选择绿色部署主实例,然后通过附加配置部分从下拉菜单中将数据库参数组修改为新组。
  4. 数据库参数组更新完成后,在计划修改中选择“立即应用”,点击修改数据库实例。

确认:

MySQL [(none)]> CREATE DATABASE menagerie;
Query OK, 1 row affected (0.148 sec)

MySQL [(none)]> show variables where variable_name='innodb_read_only';
+------------------+-------+
| Variable_name    | Value |
+------------------+-------+
| innodb_read_only | OFF   |
+------------------+-------+

相关内容