配置

第2代

可通过 目录Cloud Databases CLI 插件Cloud Databases APITerraform 部署 IBM Cloud® Databases for PostgreSQL。

通过 IBM Cloud 控制台(UI)进行配置

通过控制台部署时,请指定以下参数:

地点和平台

  • 位置- 选择您要部署数据库的区域。 列表中的每个区域都标明了其支持的平台( 第 1 代或第 2 代 ),以帮助您进行选择。
  • 平台- 选择您要部署数据库的平台。 可选选项取决于您选择的地区。 有关第 1 代和第 2 代之间差异的更多信息,请参阅 《第 1 代和第 2 代概述》

服务详细信息

  • 服务名称 ——该名称可以是任意字符串,是用于在 Web 界面和命令行界面(CLI)中识别新部署的名称。
  • 资源组 ——如果您将服务组织到 资源组中,请在此字段中指定该资源组。 否则,您可以保留默认设置。 有关更多信息,请参阅管理资源组

托管模型

对于第 2 代部署,仅支持“隔离”托管模式。

隔离: 面向复杂且高性能的企业级工作负载的安全单租户解决方案。 如需了解更多信息,请参阅“托管模型”。

资源分配

优化您的资源分配。 请参考下表,为部署中的每台实例选择合适的实例规格,并指定磁盘大小。

固定型材

固定型材选项
主机大小 vCPU x RAM
4x20 4个 vCPU 处理器 × 20 GB 内存
8x40 8个 vCPU,配40 GB内存
16x80 16 vCPU × 80 GB 内存
32x160 32 vCPU × 160 GB 内存
48x240 48 vCPU × 240 GB 内存

Flex 配置文件

柔性型材选项
主机大小 vCPU x RAM
4x16 4个 vCPU,16 GB 内存
8x32 8 vCPU × 32 GB 内存
16x64 16 vCPU × 64 GB 内存
32x128 32 vCPU x 128 GB 内存

请根据您的需求选择磁盘大小。 如有必要,您稍后可以增加该大小,但为避免潜在的数据丢失,不允许在配置完成后缩小该大小。

服务配置

  • 数据库版本 [仅在部署时设置] {: tag-red}- 数据库的部署版本。 为确保最佳性能,请运行推荐的版本。 系统会自动使用最新的次版本。 如需了解更多信息,请参阅《 版本控制政策 》。
  • 加密- 如果您使用 Key Protect,则可选择一台实例和一个密钥来对部署的磁盘进行加密。 如果您不使用自己的密钥,部署系统会自动创建并管理其自身的磁盘加密密钥。
  • [仅在部署时设置的]端点 {: tag-red}- 在您的部署中配置服务端点。 对于第 2 代,仅支持私有端点。

选择适当的设置后,点击 “创建” 以开始配置流程。

通过命令行界面(CLI)进行配置

通过 CLI 创建服务实例

在进行配置之前,请按照文档中的说明安装 IBM Cloud 命令行工具

  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 PostgreSQL”共享计算托管模型的实例,请使用如下命令:

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

    部署一个 Databases for PostgreSQL 隔离实例,并使用相同的 "members_host_flavor" -p 参数,将其设置为所需的隔离实例规格。 可用托管规格及其 members_host_flavor value 参数如 表2 所示。 例如,{"members_host_flavor": "b3c.4x16.encrypted"}。 请注意,由于主机配置选项包含 CPU 和内存大小(b3c.4x16.encrypted 对应 4 个 CPU 和 16 RAM),因此此请求不支持同时选择“隔离”配置以及单独的 CPU 和内存分配选项。

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

    该命令中的各字段说明见下表。

    基本命令格式字段
    字段 描述 标志
    INSTANCE_NAME 必填 实例名称可以是任意字符串,它是用于在 Web 界面和命令行界面 (CLI) 中识别新部署的名称。
    SERVICE_NAME 必填 服务的名称或标识。 对于 Databases for PostgreSQL,请使用 databases-for-postgresql
    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>"}。 对于“隔离计算”,请选择所需的 CPU 和内存配置。 如需了解更多信息,请参阅下表或 “托管模式” 部分。
    --service-endpoints 必填 仅支持 private

    你会看到类似以下的响应:

    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-postgresql: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_OR_CRN>
      

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

      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-postgresql:us-south:a/40ddc34a953a8c02f109835656860e:dd13152c-fe15-4bb6-af94-fde0af5303f4::
      GUID:                  dd13152c-fe15-4bb6-af94-fde5654765
      Location:              <LOCATION>
      Service Name:          databases-for-postgresql
      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 postgresql with version 12 (100%)
      
    • (可选)删除服务实例 通过运行如下命令来删除一个实例:

      ibmcloud resource service-instance-delete <INSTANCE_NAME_OR_CRN>
      

members host flavor 参数

members_host_flavor 参数用于定义您的计算资源规格。

要配置一个隔离计算实例,请指定符合您所需配置的 CPU 和内存值。

固定配置文件 CLI 选项
主机大小 vCPU x RAM host_flavor 值
4x20 4个 vCPU 处理器 × 20 GB 内存 bx3d.4x20.encrypted
8x40 8个 vCPU,配40 GB内存 bx3d.8x40.encrypted
16x80 16 vCPU × 80 GB 内存 mx3d.16x80.encrypted
32x160 32 vCPU × 160 GB 内存 bx3d.32x160.encrypted
48x240 48 vCPU × 240 GB 内存 bx3d.48x240.encrypted
Flex 配置文件 CLI 选项
主机大小 vCPU x RAM host_flavor 值
4x16 4个 vCPU,16 GB 内存 b3c.4x16.encrypted
8x32 8 vCPU × 32 GB 内存 b3c.8x32.encrypted
16x64 16 vCPU × 64 GB 内存 b3c.16x64.encrypted

Cloud Databases 隔离计算不支持 CPU 和内存的自动扩展,但支持磁盘的自动扩展。 利用 IBM Cloud® Monitoring 集成功能 监控您的资源,该功能可跟踪内存、磁盘空间和磁盘I/O的使用情况。 要增加资源,请手动扩展部署规模。

--parameters 参数

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

例如,如果正在从某个特定备份中配置数据库,且新数据库部署在三个成员上总共需要 12 GB 内存,那么为每个成员配置 4 GB 内存的命令如下:

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

通过资源控制器 API 进行资源配置

请按照以下步骤,使用 资源控制器 API 进行资源配置。

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

  2. 您需要知道要部署到的资源组的 ID。 使用以下命令获取您账户中的资源组列表:

     curl -X GET "https://resource-controller.cloud.ibm.com/v2/resource_groups?account_id=<YOUR_ACCOUNT>" -H "Authorization: Bearer <TOKEN>"
    
  3. 您需要了解要部署到的区域。 要列出从当前区域可以进行部署的全部区域,请使用以下 API 命令:

     curl -X GET https://api.<YOUR-REGION>.databases.cloud.ibm.com/v5/ibm/regions -H 'Authorization: Bearer <TOKEN>' \
    
  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": "postgresql",
         "location": "us-south"
        }
      }'
    

    这将返回:

    {
      "deployment": {
        "type": "postgresql",
        "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": ""
          }
        ]
      }
    }
    

    若要将实例配置或扩展为4个CPU和 16384 兆字节内存,请执行以下命令:

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

    若要将实例扩展至8个CPU和 32768 兆字节的内存,请提交一个包含新 members_host_flavor 的scale命令:

    {
      "parameters": {
        "members_host_flavor": "b3c.8x32.encrypted"
      }
    }
    
  5. 收集完所有信息后,请使用 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_OR_CRN",
        "target": "<LOCATION>",
        "resource_group": "RESOURCE_GROUP_ID",
        "resource_plan_id": "<SERVICE_PLAN_NAME>"
        "parameters": {
            "members_host_flavor": "<members_host_flavor_value>",
            "service_endpoints": "<ENDPOINT>",
            "version": "<version>"
        }
      }'
    

    部署一个 Databases for PostgreSQL 隔离实例,并使用相同的 "members_host_flavor" 参数,将其设置为所需的隔离规格。 可用托管规格及其 members_host_flavor value 参数如 表2 所示。 例如,{"members_host_flavor": "b3c.4x16.encrypted"}。 请注意,由于主机配置选项包含 CPU 和内存大小(b3c.4x16.encrypted 对应 4 个 CPU 和 16 RAM),因此此请求不支持同时选择“隔离”配置以及单独的 CPU 和内存分配选项。

    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-postgresql-standard"
       "parameters": {
          "member_host_flavor": "b3c.4x16.encrypted",
          "service_endpoints": "private"
        }
      }'
    

    参数 nametargetresource_groupresource_plan_idservice_endpoints 均为必填项。

    该命令中的各字段说明见下表。

    基本命令格式字段
    字段 描述 标志
    name 必填 实例名称可以是任意字符串,它是用于在 Web 界面和命令行界面 (CLI) 中识别新部署的名称。
    target 必填 您希望进行部署的区域。 要检索区域列表,请使用 ibmcloud regions 命令。
    resource_group 资源组的名称。 默认值为 default -g
    resource_plan_id 必填 服务的名称或标识。 对于 Databases for PostgreSQL,请使用 databases-for-postgresql-standard
    --parameters 用于创建服务实例的参数的 JSON 文件或 JSON 字符串 -p
    members_host_flavor 要配置一个隔离计算实例,请访问 {"members_host_flavor": "<members_host_flavor value>"}。 对于“隔离计算”,请选择所需的 CPU 和内存配置。 如需了解更多信息,请参阅下表或 “托管模式” 部分。
    --service-endpoints 必填 仅支持 private
    version 要部署的数据库版本。 如果省略,则将使用最新的主版本号和次版本号创建数据库。

host flavor 参数

members_host_flavor 参数用于定义您的计算资源规格。

要配置一个隔离计算实例,请指定符合您所需配置的 CPU 和内存值。

固定配置文件 API 选项
主机大小 vCPU x RAM host_flavor 值
4x20 4个 vCPU 处理器 × 20 GB 内存 bx3d.4x20.encrypted
8x40 8个 vCPU,配40 GB内存 bx3d.8x40.encrypted
16x80 16 vCPU × 80 GB 内存 mx3d.16x80.encrypted
32x160 32 vCPU × 160 GB 内存 bx3d.32x160.encrypted
48x240 48 vCPU × 240 GB 内存 bx3d.48x240.encrypted
Flex 配置文件 API 选项
主机大小 vCPU x RAM host_flavor 值
4x16 4个 vCPU,16 GB 内存 b3c.4x16.encrypted
8x32 8 vCPU × 32 GB 内存 b3c.8x32.encrypted
16x64 16 vCPU × 64 GB 内存 b3c.16x64.encrypted

Cloud Databases 隔离计算不支持 CPU 和内存的自动扩展,但支持磁盘的自动扩展。 利用 IBM Cloud® Monitoring 集成功能 监控您的资源,该功能可跟踪内存、磁盘空间和磁盘I/O的使用情况。 要增加资源,请手动扩展部署规模。

附加参数列表

  • backup_id- 用于还原的备份资源的 CRN。 该备份必须由具有相同服务 ID 的数据库部署创建。 在资源配置完成后,系统会加载备份,随后使用该数据的新部署将启动。 备用 CRN 的格式为 crn:v1:<...>:backup:<uuid> ——如果省略,则数据库将以空状态进行配置。

  • 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- 内存分配是按每次部署计算的总值。 数据库内各数据库成员之间共享的内存总量。 例如,如果该值为“8192”,且有两个数据库成员,则该部署将获得总计 8 GB 的内存,每个成员可分配 4 GB 内存。 如果省略,则使用数据库类型的默认值。 此参数仅适用于 multitenant

  • members_disk_allocation_mb- 磁盘分配量为每次部署的总分配量。 数据库内各数据库成员之间共享的磁盘总容量。 例如,如果该值为“30720”,且有三个成员,则该部署将获得总计 30 GB 的磁盘空间,每个成员可分配 10 GB 磁盘空间。 如果省略,则使用数据库类型的默认值。 此参数仅适用于 multitenant

  • members_cpu_allocation_count- CPU 分配是针对每个数据库成员进行的。 启用并为您的部署分配指定数量的核心。 例如,若要为每个成员分配两个专用核心,请使用 "members_cpu_allocation_count":"2"。 如果未指定,将应用默认的共享计算 CPU:RAM 比例。 此参数仅适用于 multitenant

  • remote_leader_id- 用于部署(只读)副本的主数据库的 CRN。 领导者数据库是由 Databases for PostgreSQL 部署生成的。 设置一个只读副本,通过异步复制将领导者部署中的所有数据复制到副本部署中。 如需了解更多信息,请参阅 “配置只读副本”

使用 Terraform 进行资源配置

通过 ibm_database Terraform 资源 使用 Terraform 管理您的基础设施,该平台支持配置 Cloud Databases 部署。

选择您希望数据库部署在其上的 托管模式。 您可以稍后更改此内容。

使用 Terraform 配置隔离的计算资源

部署一个 Databases for PostgreSQL 隔离实例,并使用相同的 "host_flavor" 参数,将其设置为所需的隔离规格。 表 1 列出了可用的托管规格及其 host_flavor value 参数。 例如,{"host_flavor": "b3c.4x16.encrypted"}。 请注意,由于主机配置选项包含 CPU 和内存大小(b3c.4x16.encrypted 对应 4 个 CPU 和 16 RAM),因此此请求不支持同时选择“隔离”配置以及单独的 CPU 和内存分配选项。

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-postgresql"
  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 Postgresql database connection string" {
  value = "http://${ibm_database.test_acc.ibm_database_connection.icd_conn}"
}

host flavor 参数

host_flavor 参数用于定义您的计算资源规格。

隔离计算- 要配置一个隔离计算实例,请指定符合您所需配置的 CPU 和内存值。

固定配置的 Terraform 选项
主机大小 vCPU x RAM host_flavor 值
4x20 4个 vCPU 处理器 × 20 GB 内存 bx3d.4x20.encrypted
8x40 8个 vCPU,配40 GB内存 bx3d.8x40.encrypted
16x80 16 vCPU × 80 GB 内存 mx3d.16x80.encrypted
32x160 32 vCPU × 160 GB 内存 bx3d.32x160.encrypted
48x240 48 vCPU × 240 GB 内存 bx3d.48x240.encrypted
Flex 配置文件中的 Terraform 选项
主机大小 vCPU x RAM host_flavor 值
4x16 4个 vCPU,16 GB 内存 b3c.4x16.encrypted
8x32 8 vCPU × 32 GB 内存 b3c.8x32.encrypted
16x64 16 vCPU × 64 GB 内存 b3c.16x64.encrypted

Cloud Databases 隔离计算不支持CPU和内存的自动扩展,但支持磁盘的自动扩展。 利用 IBM Cloud® Monitoring 集成功能 监控您的资源,该功能可跟踪内存、磁盘空间和磁盘I/O的使用情况。 要增加资源,请手动扩展部署规模。