配置

通过 目录Cloud Databases CLI 插件Cloud Databases APITerraform 或预建、开源和企业就绪的 Terraform IBM 模块(TIM) 提供 IBM Cloud® Databases for MySQL 部署。

通过 IBM Cloud 控制台进行供应

通过指定以下参数从控制台进行部署。

服务详细信息

  • 服务名称: 名称可以是任意字符串,是 Web 和 CLI 中用于标识新部署的名称。
  • 资源组: 如果要将服务划分为 资源组,请在此字段中指定资源组。 否则,可以将其保留为缺省值。 有关更多信息,请参阅管理资源组
  • 位置:部署的公共云区域。

托管模型

  • 隔离: 为复杂的高性能企业工作负载提供安全的单租户产品。
  • 共享: 灵活的多租户服务,可提供动态、微调和解耦的容量选择。 有关详细信息,请参阅 托管模型

资源分配

对资源分配进行微调。 可用选项因所选托管模型而异。

  • 隔离: 使用表来选择部署的每个成员的机器大小,并指定磁盘大小。
  • 共享: 缺省情况下,将选择最小的可能资源分配。 这是小型应用程序或测试的理想选择。 对于较大的分配,请选择 定制 磁贴,这将允许使用 2 + 核心进行灵活的资源配置。

共享计算托管模式支持更细粒度的资源分配,但为了保持清晰,用户界面中不显示这些资源分配。 有关详细信息,请参阅 托管模型

根据您的需求指定磁盘大小。 可以在供应后增大此值,但不能减小此值以防止数据丢失。

服务配置

  • 数据库版本: 仅在部署时设置 数据库的部署版本。 要确保最佳性能,请运行首选版本。 将自动使用最新的次版本。 有关详细信息,请参阅 版本控制政策
  • 加密: 仅在部署时设置 如果使用Key Protect,则可以选择一个实例和密钥来加密部署的磁盘。 如果不使用自己的密钥,那么部署会自动创建和管理自己的磁盘加密密钥。
  • 端点: 仅在部署时设置- 在部署上配置服务端点。 默认设置为专用

选择相应设置后,单击 创建 以启动供应过程。

通过 CLI 供应

通过 CLI 创建服务实例

在供应之前,请遵循文档中提供的指示信息来安装 IBM Cloud CLI 工具

  1. 登录到 IBM Cloud。 如果使用联合用户 ID,请务必改用一次性密码 (ibmcloud login --sso) 或使用 API 密钥 (ibmcloud --apikey key or @key_file) 进行身份验证。 有关如何使用 CLI 登录的更多信息,请参阅 ibmcloud login 下的 常规 CLI(ibmcloud)命令

    ibmcloud login
    
  2. 选择 托管模型,您希望在该模型上配置数据库。 您可以稍后更改此内容。

  3. 使用以下命令配置数据库

    ibmcloud resource service-instance-create <INSTANCE_NAME> <SERVICE_NAME> <SERVICE_PLAN_NAME> <LOCATION> <RESOURCE_GROUP> -p '{"members_host_flavor": "<members_host_flavor value>"}' --service-endpoints="<endpoint>"
    

    例如,要配置 Databases for MySQL 共享计算托管模型实例,请使用类似命令:

    ibmcloud resource service-instance-create test-database databases-for-mysql standard us-south -p '{"members_host_flavor": "multitenant", "members_memory_allocation_mb": "12288"}' --service-endpoints="private"
    

    提供一个具有相同 "members_host_flavor" -p 参数的 Databases for MySQL 隔离实例,并将其设置为所需的隔离大小。 表 2 列出了可用的主机大小及其 members_host_flavor value 参数。 例如,{"members_host_flavor": "b3c.4x16.encrypted"}。 请注意,由于主机类型选择包括 CPU 和 RAM 大小(b3c.4x16.encrypted 为 4 CPU 和 16 RAM),因此该请求不接受隔离大小选择和单独的 CPU 和 RAM 分配选择。

    ibmcloud resource service-instance-create test-database databases-for-mysql standard us-south -p '{"members_host_flavor": "b3c.4x16.encrypted"}' --service-endpoints="private"
    

    下面的表中描述了该命令中的字段。

    基本命令格式字段
    字段 描述 标志
    INSTANCE_NAME 需要 实例名称可以是任何字符串,是网络和 CLI 中用于标识新部署的名称。
    SERVICE_NAME 需要 服务的名称或标识。 对于 Databases for MySQL,请使用 databases-for-mysql
    SERVICE_PLAN_NAME 需要 标准计划 (standard)
    LOCATION 需要 您要部署的位置。 要检索区域列表,请使用 ibmcloud regions 命令。
    RESOURCE_GROUP 资源组名称。 默认值为 default -g
    --parameters 用于创建服务实例的参数的 JSON 文件或 JSON 字符串 -p
    members_host_flavor 要配置隔离或共享计算实例,请使用 {"members_host_flavor": "<members_host_flavor value>"}。 对于共享计算,请指定 multitenant。 对于隔离计算,选择所需的 CPU 和 RAM 配置。 有关详细信息,请参阅下表或 托管模式
    --service-endpoints 需要 配置部署的 服务端点publicprivatepublic-and-private 均可。

    在 CLI 中,service-endpoints 是一个标志,而不是参数。

    您将看到类似如下的响应:

    Creating service instance INSTANCE_NAME in resource group default of account    USER...
    OK
    Service instance INSTANCE_NAME was created.
    
    Name:                INSTANCE_NAME
    ID:                  crn:v1:bluemix:public:databases-for-mysql:us-south:a/   40ddc34a846383BGB5b60e:dd13152c-fe15-4bb6-af94-fde0af5303f4::
    GUID:                dd13152c-fe15-4bb6-af94-fde0af56897
    Location:            LOCATION
    State:               provisioning
    Type:                service_instance
    Sub Type:            Public
    Service Endpoints:   private
    Allow Cleanup:       false
    Locked:              false
    Created at:          2023-06-26T19:42:07Z
    Updated at:          2023-06-26T19:42:07Z
    Last Operation:
                         Status    create in progress
                         Message   Started create instance operation
    
    • 要检查配置状态,请使用以下命令:

      ibmcloud resource service-instance <INSTANCE_NAME>
      

      完成后,您将看到类似如下的响应:

      Retrieving service instance INSTANCE_NAME in resource group default under account USER's Account as USER...
      OK
      
      Name:                  INSTANCE_NAME
      ID:                    crn:v1:bluemix:public:databases-for-mysql:us-south:a/40ddc34a953a8c02f109835656860e:dd13152c-fe15-4bb6-af94-fde0af5303f4::
      GUID:                  dd13152c-fe15-4bb6-af94-fde5654765
      Location:              <LOCATION>
      Service Name:          databases-for-mysql
      Service Plan Name:     standard
      Resource Group Name:   default
      State:                 active
      Type:                  service_instance
      Sub Type:              Public
      Locked:                false
      Service Endpoints:     private
      Created at:            2023-06-26T19:42:07Z
      Created by:            USER
      Updated at:            2023-06-26T19:53:25Z
      Last Operation:
                             Status    create succeeded
                             Message   Provisioning mysql with version 12 (100%)
      
    • (可选)运行类似命令删除实例:

      ibmcloud resource service-instance-delete <INSTANCE_NAME_OR_CRN>
      

members host flavor 参数

members_host_flavor 参数定义计算大小。 要供应共享计算实例,请指定 multitenant。 要配置隔离计算实例,请输入所需的 CPU 和 RAM 配置的适当值。

成员主机风味大小参数
成员主持风味 members_host_flavor 值
共享计算 multitenant
4 个 CPU x 16 RAM b3c.4x16.encrypted
8 个 CPU x 32 RAM b3c.8x32.encrypted
8 个 CPU x 64 RAM m3c.8x64.encrypted
16 个 CPU x 64 RAM b3c.16x64.encrypted
32 个 CPU x 128 RAM b3c.32x128.encrypted
30 个 CPU x 240 RAM m3c.30x240.encrypted

Cloud Databases 隔离计算不支持 CPU 和 RAM 自动扩展。 磁盘自动缩放可用。 如果您已配置隔离实例或从自动扩展部署切换过来,请使用 IBM Cloud® Monitoring 融合 查看资源情况,它提供内存、磁盘空间和磁盘 I/O 利用率指标。 要向实例添加资源,请手动缩放部署。

--parameters 参数

service-instance-create 命令支持 -p 标志,该标志允许将 JSON 格式的参数传递到供应过程。 例如,您可以将云资源名称 (CRN) 作为参数值传递,它可以唯一标识云中的资源。 所有参数名称和值都作为字符串传递。

例如,如果数据库是根据特定备份调配的,新数据库部署的三个成员共需要 12 GB 内存,那么为每个成员调配 4 GB 内存的命令如下:

ibmcloud resource service-instance-create databases-for-mysql <SERVICE_NAME> standard us-south \
-p \ '{
  "backup_id": "crn:v1:blue:public:databases-for-mysql:us-south:a/54e8ffe85dcedf470db5b5ee6ac4a8d8:1b8f53db-fc2d-4e24-8470-f82b15c71717:backup:06392e97-df90-46d8-98e8-cb67e9e0a8e6",
  "members_memory_allocation_mb": "12288"
}' --service-endpoints="private"

通过资源控制器 API 进行供应

执行以下步骤以使用 资源控制器 API进行供应。

  1. 获取 来自 API 令牌的 IAM 令牌

  2. 您需要知道要部署到的资源组的标识。 此信息可通过 IBM Cloud CLI 获取。

    使用类似如下的命令:

    ibmcloud resource groups
    
  3. 您需要知道要部署到哪个地区。

    要列出可从当前区域供应部署的所有区域,请使用 Cloud Databases CLI 插件

    该命令如下所示:

    ibmcloud cdb regions --json
    
  4. 选择 托管模型,您希望在该模型上配置数据库。 您可以稍后更改此内容。

主机味道代表有保证资源分配的固定大小。 要查看您所在地区提供哪些主机风味,请像这样调用 主机风味能力端点

curl -X POST  https://api.{region}.databases.cloud.ibm.com/v5/ibm/capability/flavors  \
  -H 'Authorization: Bearer <>' \
  -H 'ContentType: application/json' \
  -d '{
    "deployment": {
      "type": "mysql",
      "location": "us-south"
    },
  }'

这将返回:

{
  "deployment": {
    "type": "mysql",
    "location": "us-south",
    "platform": "classic"
  },
  "capability": {
    "flavors": [
      {
        "id": "b3c.4x16.encrypted",
        "name": "4x16",
        "cpu": {
          "allocation_count": 4
        },
        "memory": {
          "allocation_mb": 16384
        },
        "hosting_size": "xs"
      },
      {
        "id": "b3c.8x32.encrypted",
        "name": "8x32",
        "cpu": {
          "allocation_count": 8
        },
        "memory": {
          "allocation_mb": 32768
        },
        "hosting_size": "s"
      },
      {
        "id": "m3c.8x64.encrypted",
        "name": "8x64",
        "cpu": {
          "allocation_count": 8
        },
        "memory": {
          "allocation_mb": 65536
        },
        "hosting_size": "s+"
      },
      {
        "id": "b3c.16x64.encrypted",
        "name": "16x64",
        "cpu": {
          "allocation_count": 16
        },
        "memory": {
          "allocation_mb": 65536
        },
        "hosting_size": "m"
      },
      {
        "id": "b3c.32x128.encrypted",
        "name": "32x128",
        "cpu": {
          "allocation_count": 32
        },
        "memory": {
          "allocation_mb": 131072
        },
        "hosting_size": "l"
      },
      {
        "id": "m3c.30x240.encrypted",
        "name": "30x240",
        "cpu": {
          "allocation_count": 30
        },
        "memory": {
          "allocation_mb": 245760
        },
        "hosting_size": "xl"
      },
      {
        "id": "multitenant",
        "name": "multitenant",
        "cpu": {
          "allocation_count": 0
        },
        "memory": {
          "allocation_mb": 0
        },
        "hosting_size": ""
      }
    ]
  }
}

如图所示,Databases for MySQL区域中的 us-south 实例可用的隔离计算主机风味有

  • b3c.4x16.encrypted
  • b3c.8x32.encrypted
  • m3c.8x64.encrypted
  • b3c.16x64.encrypted
  • b3c.32x128.encrypted
  • m3c.30x240.encrypted

要将实例调配或扩展到 4 个 CPU 和 16384 兆内存,请使用新的 members_host_flavor 提交扩展命令:

{
  "parameters": {
    "members_host_flavor": "b3c.4x16.encrypted"
  }
}

要将实例扩展到 8 个 CPU 和 32768 兆内存,请使用新的 members_host_flavor 提交扩展命令:

{
  "parameters": {
    "members_host_flavor": "b3c.8x32.encrypted"
  }
}
  1. 获得所有信息后,使用 IBM Cloud 资源控制器配置一个新资源实例

    curl -X POST \
      https://resource-controller.cloud.ibm.com/v2/resource_instances \
      -H "Authorization: Bearer <>" \
      -H 'Content-Type: application/json' \
        -d '{
        "name": "<INSTANCE_NAME",
        "target": "<region>",
        "resource_group": "RESOURCE_GROUP_ID",
        "resource_plan_id": "<SERVICE_PLAN_NAME>"
        "parameters": {
            "members_host_flavor": "<members_host_flavor_value>",
            "service_endpoints": "<ENDPOINT>",
            "version":"<version>"
       }
      }'
    

例如,要创建共享计算实例,请按照以下示例操作:

curl -X POST \
  https://resource-controller.cloud.ibm.com/v2/resource_instances \
  -H "Authorization: Bearer <>" \
  -H 'Content-Type: application/json' \
    -d '{
    "name": "my-instance",
    "target": "us-south",
    "resource_group": "5g9f447903254bb58972a2f3f5a4c711",
    "resource_plan_id": "databases-for-mysql-standard"
    "parameters": {
     "members_host_flavor": "multitenant",
     "service_endpoints": "private",
     "members_memory_allocation_mb": 12288,
     "members_cpu_allocation_count": 3
   }
  }'

使用相同的 "members_host_flavor" 参数提供 Databases for MySQL 隔离实例,并将其设置为所需的隔离大小。 表 2 列出了可用的主机大小及其 members_host_flavor value 参数。 例如,{"members_host_flavor": "b3c.4x16.encrypted"}。 请注意,由于主机类型选择包括 CPU 和 RAM 大小(b3c.4x16.encrypted 为 4 CPU 和 16 RAM),因此该请求不接受隔离大小选择和单独的 CPU 和 RAM 分配选择。

curl -X POST \
  https://resource-controller.cloud.ibm.com/v2/resource_instances \
  -H "Authorization: Bearer <>" \
  -H 'Content-Type: application/json' \
    -d '{
    "name": "my-instance",
    "target": "us-south",
    "resource_group": "5g9f447903254bb58972a2f3f5a4c711",
    "resource_plan_id": "databases-for-mysql-enterprise"
    "parameters": {
     "host_flavor": {
       "member_host_flavor": "b3c.4x16.encrypted",
       "service_endpoints": "private"
     }
   }
  }'

参数 nametargetresource_groupresource_plan_id 都是必需的。

下面的表中描述了该命令中的字段。

基本命令格式字段
字段 描述 标志
name 需要 实例名称可以是任何字符串,是网络和 CLI 中用于标识新部署的名称。
target 需要 您要部署的区域。 要检索区域列表,请使用 ibmcloud regions 命令。
resource_group 资源组名称。 默认值为 default -g
resource_plan_id 需要 服务的名称或标识。 对于 Databases for MySQL,请使用 databases-for-mysql-standard
--parameters 用于创建服务实例的参数的 JSON 文件或 JSON 字符串 -p
members_host_flavor 要配置隔离或共享计算实例,请使用 {"members_host_flavor": "<members_host_flavor value>"} 这样的参数。 对于共享计算,请指定 multitenant。 对于隔离计算,选择所需的 CPU 和 RAM 配置。 有关详细信息,请参阅下表或 托管模式
service-endpoints 需要 配置部署的 服务端点publicprivatepublic-and-private 均可。

members host flavor 参数

members_host_flavor 参数定义计算大小。 要供应共享计算实例,请指定 multitenant。 要配置隔离计算实例,请输入所需的 CPU 和 RAM 配置的适当值。

成员主机风味大小参数
成员主持风味 members_host_flavor 值
共享计算 multitenant
4 个 CPU x 16 RAM b3c.4x16.encrypted
8 个 CPU x 32 RAM b3c.8x32.encrypted
8 个 CPU x 64 RAM m3c.8x64.encrypted
16 个 CPU x 64 RAM b3c.16x64.encrypted
32 个 CPU x 128 RAM b3c.32x128.encrypted
30 个 CPU x 240 RAM m3c.30x240.encrypted

Cloud Databases 隔离计算不支持 CPU 和 RAM 自动扩展。 磁盘自动缩放可用。 如果您已配置隔离实例或从自动扩展部署切换过来,请使用 IBM Cloud® Monitoring 融合 查看资源情况,它提供内存、磁盘空间和磁盘 I/O 利用率指标。 要向实例添加资源,请手动缩放部署。

附加参数列表

  • backup_id- 要还原的备份资源的 CRN。 备份必须由具有相同服务标识的数据库部署创建。 在供应后装入备份,并启动使用该数据的新部署。 备份 CRN 的格式为 crn:v1:<...>:backup:<uuid>。 如果省略,那么会将数据库配置为空。

  • version-要供应的数据库的版本。 如果省略,那么将使用最新的主版本和次版本创建数据库。

  • disk_encryption_key_crn- KMS 密钥的 CRN(例如、Key Protect ),然后用于磁盘加密。 KMS 密钥 CRN 的格式为 crn:v1:<...>:key:<id>

  • backup_encryption_key_crn- KMS 密钥的 CRN(例如、Key Protect ),然后用于备份加密。 KMS 密钥 CRN 的格式为 crn:v1:<...>:key:<id>

    要将密钥用于备份,必须首先 启用服务到服务委派

  • members_memory_allocation_mb-要在数据库中的数据库成员之间共享的内存总量。 例如,如果值为 "12288",并且有三个数据库成员,那么部署总共获得 12 GB 内存,每个成员获得 4 GB 内存。 如果省略,那么将使用数据库类型的缺省值。 此参数仅适用于“多租户”。

  • members_disk_allocation_mb-要在数据库中的数据库成员之间共享的磁盘总量。 例如,如果值为 "30720",并且有三个成员,那么部署将获得总计 30 GB 的磁盘,从而为每个成员提供 10 GB 的磁盘。 如果省略,那么将使用数据库类型的缺省值。 此参数仅适用于“多租户”。

  • members_cpu_allocation_count- 为部署启用并分配指定数量的内核。 例如,要对每个成员使用两个专用核心,请使用 "members_cpu_allocation_count":"2"。 如果省略,将应用默认的共享计算 CPU:RAM 比例。 此参数仅适用于“多租户”。

使用 Terraform 进行供应

使用 Terraform 管理基础架构,ibm_database Resource for Terraform 支持调配 Cloud Databases 部署。 另外,也可以使用 Terraform IBM 模块,通过 Terraform IBM 模块用于 Databases for MySQL 管理基础设施。

选择 托管模型,您希望在该模型上配置数据库。 您可以稍后更改此内容。

使用 Terraform 配置共享计算

提供一个 Databases for Elasticsearch 共享托管模型实例,并将 "host_flavor" 参数设置为 multitenant。 请参阅以下示例:

data "ibm_resource_group" "group" {
  name = "<your_group>"
}
resource "ibm_database" "<your_database>" {
  name              = "<your_database_name>"
  plan              = "standard"
  location          = "eu-gb"
  service           = "databases-for-mysql"
  resource_group_id = data.ibm_resource_group.group.id
  service_endpoints = "private"
  tags              = ["tag1", "tag2"]
  adminpassword                = "password12"
  group {
    group_id = "member"
    host_flavor {
      id = "multitenant"
    },
    cpu {
      allocation_count = 6
    }
    memory {
      allocation_mb = 24576
    }
    disk {
      allocation_mb = 256000
    }
  }
  users {
    name     = "user123"
    password = "password12"
  }
  allowlist {
    address     = "172.168.1.1/32"
    description = "desc"
  }
}
output "ICD MySQL database connection string" {
  value = "http://${ibm_database.test_acc.ibm_database_connection.icd_conn}"
}

使用 Terraform 配置隔离计算

使用相同的 "host_flavor" 参数提供 Databases for MySQL 隔离实例,并将其设置为所需的隔离大小。 表 1 列出了可用的主机大小及其 host_flavor value 参数。 例如,{"host_flavor": "b3c.4x16.encrypted"}。 请注意,由于主机类型选择包括 CPU 和 RAM 大小(b3c.4x16.encrypted 为 4 CPU 和 16 RAM),因此该请求不接受隔离大小选择和单独的 CPU 和 RAM 分配选择。

data "ibm_resource_group" "group" {
  name = "<your_group>"
}
resource "ibm_database" "<your_database>" {
  name              = "<your_database_name>"
  plan              = "standard"
  location          = "eu-gb"
  service           = "databases-for-mysql"
  resource_group_id = data.ibm_resource_group.group.id
  service_endpoints = "private"
  tags              = ["tag1", "tag2"]
  adminpassword                = "password12"
  group {
    group_id = "member"
    host_flavor {
      id = "b3c.8x32.encrypted"
    }
    disk {
      allocation_mb = 256000
    }
  }
  users {
    name     = "user123"
    password = "password12"
  }
  allowlist {
    address     = "172.168.1.1/32"
    description = "desc"
  }
}
output "ICD MySQL database connection string" {
  value = "http://${ibm_database.test_acc.ibm_database_connection.icd_conn}"
}

host flavor 参数

host_flavor 参数定义计算大小。

  • Shared compute- 要配置共享计算实例,请指定 multitenant
  • 隔离计算- 要配置隔离计算实例,请输入所需的 CPU 和 RAM 配置的相应值。 数值见下表。
主机风味大小参数
主机类型模板 host_flavor 值
共享计算 multitenant
4 个 CPU x 16 RAM b3c.4x16.encrypted
8 个 CPU x 32 RAM b3c.8x32.encrypted
8 个 CPU x 64 RAM m3c.8x64.encrypted
16 个 CPU x 64 RAM b3c.16x64.encrypted
32 个 CPU x 128 RAM b3c.32x128.encrypted
30 个 CPU x 240 RAM m3c.30x240.encrypted

Cloud Databases 隔离计算不支持 CPU 和 RAM 自动扩展。 磁盘自动缩放可用。 如果您已配置隔离实例或从自动扩展部署切换过来,请使用 IBM Cloud® Monitoring 融合 查看资源情况,它提供内存、磁盘空间和磁盘 I/O 利用率指标。 要向实例添加资源,请手动缩放部署。