使用CloudFormation时如何将Aurora无服务器MySQL集群从5.6升级到5.7

lh80um4z  于 2022-12-26  发布在  Mysql
关注(0)|答案(2)|浏览(159)

我有极光无服务器MySQL集群运行引擎版本5.6。它是使用CloudFormation设置的。
升级集群以支持MySQL 5.7的最佳方法是什么?
我尝试将EngineVersion从5.6更改为5.7,将引擎从aurora更改为aurora-mysql,并为5.7指定新的参数组。
使用这些更改更新堆栈将返回错误:
In-place upgrade of the engine to a new major version isn't supported on serverless engine mode. (Service: AmazonRDS; Status Code: 400; Error Code: InvalidDBClusterStateFault;
我不相信这个错误,因为这不应该是一个主要版本,我可以找到什么文档支持的想法,这应该是可能的。
以下是CloudFormation代码片段,不包括不相关的属性:

RDSDBClusterParameterGroup:
    Type: 'AWS::RDS::DBClusterParameterGroup'
    Properties:
      Description: Aurora Cluster Parameter Group for aurora-mysql5.7
      Family: aurora-mysql5.7
      Parameters:
        general_log: '0'
  RDSCluster:
    Type: 'AWS::RDS::DBCluster'
    DependsOn: 
      - RDSDBClusterParameterGroup
    Properties:   
      DBClusterParameterGroupName: 
        Ref: RDSDBClusterParameterGroup
      Engine: aurora-mysql
      EngineMode: serverless
      EngineVersion: 5.7
      [..]
dgtucam1

dgtucam11#

我无法执行升级。由于我们正在从Aurora无服务器V1升级到V2,因此它被视为主要版本。
因为我不得不使用CFN,所以找到最佳解决方案有点复杂。
解决方法如下:
1.使用控制台从现有5.6群集创建的快照
1.将快照恢复到新的5.7支持群集(Aurora serverless v2)
1.已在现有CFN堆栈中导入新群集资源
1.已更新管道中的模板并再次运行部署(由于已导入,因此没有更改)
1.已验证新群集中的一切工作正常且所有数据均存在。
1.已从模板和堆栈中删除旧的v1(5.6)群集。

jbose2ul

jbose2ul2#

现在可以执行就地升级,如www.example.com中所述https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Updates.MajorVersionUpgrade.html#AuroraMySQL.Updates.MajorVersionUpgrade.1to2
我可以使用CloudFormation升级,方法是更改:

  • DBCluster〉“aurora-mysql”的引擎
  • 数据库集群〉引擎版本到'5.7.mysql_aurora.2.07.1' [1]
  • 数据库群集参数组〉族到'aurora-mysql 5.7'
  • 因为DBClusterParameterGroup已经存在,所以我必须更改逻辑ID并选择DBClusterParameterGroup 57

使用您的示例:

RDSDBClusterParameterGroup57:
  Type: 'AWS::RDS::DBClusterParameterGroup'
  Properties:
     Description: Aurora Cluster Parameter Group for aurora-mysql5.7
     Family: aurora-mysql5.7
     Parameters:
         general_log: '0'
RDSCluster:
    Type: 'AWS::RDS::DBCluster'
    DependsOn: 
        - DBClusterParameterGroup57
    Properties:   
       DBClusterParameterGroupName: 
           Ref: RDSDBClusterParameterGroup
       Engine: aurora-mysql
       EngineMode: serverless
       EngineVersion: '5.7.mysql_aurora.2.07.1'
       [..]

[1]您可以通过运行以下命令检查可用版本:

aws rds describe-db-engine-versions --engine aurora-mysql --query 'DBEngineVersions[?contains(SupportedEngineModes,`serverless`)]'

相关问题