升级到新的主版本

当数据库的主要版本处于其生命周期 (EOL) 时,升级到当前主要版本是一个好主意。

在 IBM Cloud® Messages for RabbitMQ 目录 页面上,从 Cloud Databases CLI 插件命令 ibmcloud cdb deployables-show 或通过 Cloud Databases API /deployables 端点 找到 RabbitMQ 的可用版本。

通过将数据的备份 复原 到新版本来升级新部署。 从备份复原有许多优点:

  • 原始部署将继续运行,并且可以不间断地执行生产工作。
  • 可以在生产环境外部测试新数据库,并对任何应用程序不兼容性采取行动。
  • 整个过程可以在任何时候重新运行。
  • 全新复原可降低将旧版本的不需要工件转至新部署的可能性。

或者,您还可以使用 RabbitMQ Shovel 来迁移到其他版本。

在 UI 中升级

从“部署概述”的 备份 选项卡 复原备份 时升级到新版本。 单击备份上的 复原 以显示一个对话框,您可以在该对话框中选择新部署的选项。 其中一个可配置选项是数据库版本,将自动填充可供您升级到的版本。 选择版本,然后单击 复原 以启动供应和复原过程。

通过 CLI 进行升级

要通过 CLI 从备份升级和复原,请使用 ibmcloud resource service-instance-create 命令:

ibmcloud resource service-instance-create <service-name> <service-id> <service-plan-id> <region>

参数 service-name,service-id,service-plan-id 和 region 都是必需的。 您还可以在 JSON 对象中提供具有版本和备份标识参数的 -p。 如果需要使用密钥保护密钥,调整部署大小或分配专用核心,那么可以使用可选参数 key_protect_key,members_disk_allocation_mb,members_memory_allocation_mb 或 members_cpu_allocation_count 以及请求主体的相应值来执行此操作:

ibmcloud resource service-instance-create example-upgrade messages-for-rabbitmq standard us-south \
-p '{"backup_id": "crn:v1:bluemix:public:messages-for-rabbitmq:us-south:a/54e8ffe85dcedf470db5b5ee6ac4a8d8:1b8f53db-fc2d-4e24-8470-f82b15c71717:backup:06392e97-df90-46d8-98e8-cb67e9e0a8e6", "version":3.8}'

通过 API 进行升级

在使用资源控制器 API 从备份升级之前,请完成 必需的步骤以使用资源控制器 API。

接下来,向 API 发送 POST 请求。 参数 name,target,resource_group 和 resource_plan_id 都是必需的。 您还可以提供 version 和 backup_id。 要使用密钥保护密钥,调整部署大小或分配专用核心,请配置以下可选参数及其值: key_protect_key,members_disk_allocation_mb,members_memory_allocation_mb 或 members_cpu_allocation_count。

curl -X POST \
  https://resource-controller.bluemix.net/v2/resource_instances \
  -H 'Authorization: Bearer <>' \
  -H 'Content-Type: application/json' \
    -d '{
    "name": "my-instance",
    "target": "bluemix-us-south",
    "resource_group": "5g9f447903254bb58972a2f3f5a4c711",
    "resource_plan_id": "messages-for-rabbitmq-standard",
    "backup_id": "crn:v1:bluemix:public:messages-for-rabbitmq:us-south:a/54e8ffe85dcedf470db5b5ee6ac4a8d8:1b8f53db-fc2d-4e24-8470-f82b15c71717:backup:06392e97-df90-46d8-98e8-cb67e9e0a8e6",
    "version":3.9
  }'

使用 RabbitMQ Shovel 进行升级

在 RabbitMQ 版本升级期间,可以使用铲将消息从当前集群移动到新集群。 有关更多信息,请参阅 RabbitMQ Shovel。

故障诊断

如果在升级 Messages for RabbitMQ期间导入定义时迂到错误,请参阅 为什么无法将定义从 Messages for RabbitMQ V 3.9 导入到 V 3.11?。