IBM Cloud Docs
开始使用Databases for PostgreSQL

开始使用Databases for PostgreSQL

本教程将指导您通过以下步骤快速开始使用 Databases for PostgreSQL:配置实例、设置 pgAdmin, 设置管理员密码以及设置日志和监控。

请遵循以下步骤来完成教程:

请遵循以下步骤来完成教程:

请遵循以下步骤来完成教程:

请遵循以下步骤来完成教程:

准备工作

步骤 1: 通过控制台进行供应

  1. 登录到 IBM Cloud 控制台。

  2. 单击 目录中的 Databases for PostgreSQL 服务

  3. 服务详细信息中,配置以下内容:

    • 服务名称-名称可以是任何字符串,并且是 Web 和 CLI 中用于标识新部署的名称。
    • 资源组- 如果要将服务组织到 资源组中,请在此字段中指定资源组。 否则,可以将其保留为缺省值。 有关更多信息,请参阅管理资源组
    • 位置 ——部署的公共云区域。
  4. 资源分配-指定数据库的初始 RAM,磁盘和核心。 缺省情况下,会选择内存和磁盘的最小大小。 使用专用核心时,将为资源组提供具有最小 CPU 份额预留量的单租户主机。 然后,将为您的部署分配您指定的核心数。 供应后,无法缩减磁盘。

  5. 服务配置中,配置以下内容:

    • 数据库版本 [仅在部署时设置]'{: tag-red}- 数据库的部署版本。 要确保最佳性能,请运行首选版本。 将自动使用最新的次版本。 有关详细信息,请参阅 数据库版本管理策略
    • 加密-如果使用 Key Protect,那么可以选择实例和密钥对部署的磁盘进行加密。 如果不使用自己的密钥,那么部署会自动创建和管理自己的磁盘加密密钥。
    • 端点 仅在部署中设置- 在部署中配置服务端点

    配置相应设置后,单击 创建 以启动供应过程。 此时将打开 Databases for PostgreSQL“资源列表”页面。

  6. 单击创建。 将打开 Cloud Databases“资源列表”页面。

  7. 供应实例后,单击实例名称以查看更多信息。

步骤 1: 通过 CLI 进行供应

您可以通过 CLI 供应 Databases for PostgreSQL 实例。 如果尚未安装,那么需要安装 IBM Cloud CLI

  1. 使用以下命令登录到 IBM Cloud:

    ibmcloud login
    

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

  2. 创建 Databases for PostgreSQL 实例。

    选择下列其中一种方法:

    • 要在企业计划上通过 CLI 创建实例,请运行以下命令:

      ibmcloud resource service-instance-create <INSTANCE_NAME> <SERVICE_NAME> <SERVICE_PLAN_NAME> <LOCATION> <SERVICE_ENDPOINTS_TYPE> <RESOURCE_GROUP>
      

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

    基本命令格式字段
    字段 描述 标志
    NAME 需要 实例名称可以是任何字符串,是网络和 CLI 中用于标识新部署的名称。
    SERVICE_NAME 需要 服务的名称或标识。 对于 Databases for PostgreSQL,请使用 databases-for-postgresql
    SERVICE_PLAN_NAME 需要 标准计划 (standard)
    LOCATION 需要 您要部署的位置。 要检索区域列表,请使用 ibmcloud regions 命令。
    SERVICE_ENDPOINTS_TYPE 配置部署的 服务端点 publicprivate
    RESOURCE_GROUP 资源组名称。 默认值为 default -g
    --parameters 用于创建服务实例的参数的 JSON 文件或 JSON 字符串 -p

    你会看到这样的回复

    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-east: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
    
  3. 要检查配置状态,请使用以下命令:

    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-postgresql:us-east: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%)
    
  4. (可选) 通过运行类似于以下的命令来删除服务实例删除实例:

    ibmcloud resource service-instance-delete <INSTANCE_NAME>
    

使用 CLI 连接到数据库

Cloud Databases CLI ReferenceConnect with psql 中找到相应的命令以从 CLI 连接到数据库。

ibmcloud cdb deployment-connections 命令处理创建 CLI 连接时涉及的所有内容。 例如,要连接到名为 "example-postgres" 的部署,请使用类似如下的命令:

ibmcloud cdb deployment-connections example-postgres --start

此命令提示输入管理员密码,然后运行 psql CLI 以连接到数据库。 要安装 Cloud Databases 插件,请参阅 在此处连接 psql 文档

--parameters 参数

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

例如,如果要从特定备份供应数据库,并且新数据库部署在三个成员中总共需要 9 GB 内存,那么用于为每个成员供应 3 GB 的命令如下所示:

ibmcloud resource service-instance-create databases-for-postgresql <SERVICE_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": "3072"
}'

步骤 1: 通过资源控制器 API 进行供应

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

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

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

    使用类似如下的命令:

    ibmcloud resource groups
    
  3. 您需要了解要部署到的区域。

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

    该命令如下所示:

    ibmcloud cdb regions --json
    

    拥有所有信息后,请使用 IBM Cloud 资源控制器 供应新的资源实例

    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": "blue-us-south",
        "resource_group": "5g9f447903254bb58972a2f3f5a4c711",
        "resource_plan_id": "databases-for-postgresql-standard"
      }'
    

    参数 nametargetresource_groupresource_plan_id 都是必需的。

其他参数列表

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

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

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

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

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

  • members_memory_allocation_mb-要在数据库中的数据库成员之间共享的内存总量。 例如,如果值为 "6144",并且有三个数据库成员,那么部署将获取总共 6 GB 的 RAM,从而为每个成员提供 2 GB 的 RAM。 如果省略,那么将使用数据库类型的缺省值。

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

  • members_cpu_allocation_count-启用指定的专用核心数并将其分配给您的部署。 例如,要对每个成员使用两个专用核心,请使用 "members_cpu_allocation_count":"2"。 如果省略,那么缺省值“共享 CPU”将使用共享主机上的计算资源。

  • service_endpoints- 部署支持的 服务端点publicprivate。 这是必需参数。

步骤 1: 通过 Terraform 进行供应

使用 Terraform 通过 ibm_database 资源 for Terraform来管理基础结构。

使用 API

使用 Cloud Databases API 来处理 Databases for PostgreSQL 实例。 资源控制器 API 用于 供应实例

步骤 2:设置管理员密码

管理用户

配置 Databases for PostgreSQL 部署时,会自动创建一个管理员用户。

请先设置管理密码,然后再使用该密码进行连接。

在 IBM Cloud中供应新部署时,系统会自动为您提供 admin 用户以访问和管理 PostgreSQL。 设置管理密码 后,请使用该密码来连接到部署。

admin 在数据库中创建资源 (如表) 时,admin 拥有该对象。 admin 创建的资源不可供其他用户访问,除非您明确授予这些用户许可权。

admin 用户与添加到部署的任何其他用户之间的最大差异是 pg_monitorpg_signal_backend 角色。 pg_monitor 角色提供了一组许可权,这些许可权使管理用户适合于监视数据库服务器。 pg_signal_backend 角色使管理用户能够发送信号以取消由其他用户启动的查询和连接。 它无法向超级用户拥有的进程发送信号。

您还可以使用 admin 用户将这两个角色授予部署上的其他用户。

要向其他数据库用户公开取消查询的功能,请向 admin 用户授予 pg_signal_backend 角色。 使用类似如下的命令:

GRANT pg_signal_backend TO joe;

要允许用户 joe 取消后端,请使用如下命令将 pg_signal_backend 授予具有 ibm-cloud-base-user 角色的所有用户:

GRANT pg_signal_backend TO "ibm-cloud-base-user";

此特权允许用户终止与数据库的任何连接。

要设置特定监视用户 mary,请使用类似如下的命令:

GRANT pg_monitor TO mary;

使用如下命令将 pg_signal_backend 授予具有 ibm-cloud-base-user 角色的所有用户:

GRANT pg_monitor TO "ibm-cloud-base-user";

在用户界面中设置管理员密码

通过从 IBM Cloud 仪表板中的资源列表中选择实例,通过 UI 设置管理员密码。 然后,选择 设置。 接下来,选择 更改数据库管理员密码

通过 CLI 设置管理员密码

使用 IBM Cloud CLI Cloud Databases 插件中的 cdb user-password 命令来设置管理密码。

例如,要设置名为 example-deployment 的部署的管理密码,请使用以下命令:

ibmcloud cdb user-password example-deployment admin <newpassword>

通过 API 设置管理员密码

您的服务概览部署详情部分中显示的基金会端点提供了通过API访问此部署的基本 URL。 将其与 Set specified user 's password 端点配合使用以设置管理密码。

curl -X PATCH `https://api.{region}.databases.cloud.ibm.com/v5/ibm/deployments/{id}/users/admin` \
-H `Authorization: Bearer <>` \
-H `Content-Type: application/json` \
-d `{"password":"newrootpasswordsupersecure21"}` \

通过 Terraform 设置管理员密码

要设置管理密码,请使用 API:

您的服务概览部署详情部分中显示的基金会端点提供了通过API访问此部署的基本 URL。 将其与 Set specified user 's password 端点配合使用以设置管理密码。

curl -X PATCH `https://api.{region}.databases.cloud.ibm.com/v5/ibm/deployments/{id}/users/admin` \
-H `Authorization: Bearer <>` \
-H `Content-Type: application/json` \
-d `{"password":"newrootpasswordsupersecure21"}` \

您也可以使用 CLI:

使用 IBM Cloud CLI Cloud Databases 插件中的 cdb user-password 命令来设置管理密码。

例如,要设置名为 example-deployment 的部署的管理密码,请使用以下命令:

ibmcloud cdb user-password example-deployment admin <newpassword>

要通过用户界面设置管理员密码,请按照以下步骤操作:

IBM Cloud 控制面板的资源列表中选择实例,通过用户界面设置管理员密码。 然后,选择 设置。 下一步,选择更改数据库管理员密码

步骤 3:设置 pgAdmin

pgAdmin 作为服务器运行,您可以通过浏览器连接到该服务器。 当服务器启动时,它在本地主机上运行,缺省情况下为 http://127.0.0.1:53113/browser/

首次打开 "pgAdmin,时,系统会提示您设置主密码。 此密码与实例的密码不同,因为它专门用于 pgAdmin 将密码存储到 PostgreSQL 服务器或 PostgreSQL 实例。

仪表板”面板具有“欢迎”屏幕。 从快速链接中单击添加新服务器

在实例的“概述”页面上,有一个包含所有相关连接信息的 端点 面板。

返回pgAdmin,向pgAdmin提供连接实例所需的信息。

首先,完成 连接 信息,

  • 对于 主机名/地址,请使用实例的 主机名
  • 对于 端口,请使用实例的 端口
  • 维护数据库 保留 postgres
  • 对于 用户名密码,请使用您在供应实例后设置的 admin 凭证。 您可以选择 pgAdmin 以保存密码。
  • 角色服务 字段可以保留为空。

然后,配置 SSL 设置。

  • 从实例 Dashboard overview 页面中的 端点 面板 复制证书信息。
  • 将证书保存到文件中。 (您可以使用下载中提供的名称或您自己的文件名。)
  • SSL mode 字段设置为 Verify-Full
  • 根证书 字段中,选择保存实例证书的文件。

返回到 常规 选项卡上,为实例提供名称,并在 pgAdmin中添加要描述或标识实例的任何注释。

如果选中 立即连接? 字段,那么单击 保存 按钮时,pgAdmin 会尝试连接到实例。

使用 pgAdmin

pgAdmin 连接后,您的实例将显示在 服务器 列表中,并且您将获得包含信息和统计信息的 仪表板

浏览器中的数据库列表中,既有您连接到的 postgres 数据库,也有 ibmclouddb 数据库,这是所有 Databases for PostgreSQL 部署的缺省数据库。 单击 ibmclouddb 以连接到它并展开有关它的信息。

使用 pgAdmin 来查看,管理和管理 Databases for PostgreSQL 实例中的数据和数据库。 有关更多信息,请参阅 pgAdmin 文档

需要超级用户的管理功能通过 pgAdmin 不可用,因为没有超级用户访问权可供 Databases for PostgreSQL 部署的用户使用。

步骤 4: 设置基于上下文的限制

基于上下文的限制使帐户所有者和管理员能够根据访问请求的上下文来定义和实施 IBM Cloud® 资源的访问限制。 可以使用基于上下文的限制和 Identity and Access Management (IAM) 策略来控制对 Cloud Databases 资源的访问。

要为 Databases for PostgreSQL 实例设置基于上下文的限制,请遵循 使用基于上下文的限制保护 Cloud Databases 资源中的步骤。

步骤 5: 通过控制台连接 IBM Cloud Monitoring

您可以使用 IBM Cloud Monitoring 来获取应用程序,服务和平台的性能和运行状况的操作可视性。IBM Cloud Monitoring 为管理员,DevOps 团队和开发者提供了具有高级功能的完整堆栈遥测,用于监视和故障诊断,定义警报以及设计定制仪表板。

有关如何将Monitoring与Databases for PostgreSQL 结合使用的更多信息,请参阅 监控集成

步骤 5: 通过 CLI 连接 IBM Cloud Monitoring

您可以使用 IBM Cloud Monitoring 来获取应用程序,服务和平台的性能和运行状况的操作可视性。IBM Cloud Monitoring 为管理员,DevOps 团队和开发者提供了具有高级功能的完整堆栈遥测,用于监视和故障诊断,定义警报以及设计定制仪表板。

有关如何将Monitoring与Databases for PostgreSQL 结合使用的更多信息,请参阅 监控集成

无法使用 CLI 连接 IBM Cloud Monitoring。 使用控制台完成此任务。 更多信息,请参阅 监控集成

步骤 5: 通过 API 连接 IBM Cloud Monitoring

您可以使用 IBM Cloud Monitoring 来获取应用程序,服务和平台的性能和运行状况的操作可视性。IBM Cloud Monitoring 为管理员,DevOps 团队和开发者提供了具有高级功能的完整堆栈遥测,用于监视和故障诊断,定义警报以及设计定制仪表板。

有关如何将Monitoring与Databases for PostgreSQL 结合使用的更多信息,请参阅 监控集成

无法使用 CLI 连接 IBM Cloud Monitoring。 使用控制台完成此任务。 更多信息,请参阅 监控集成

步骤 5: 通过 Terraform 连接 IBM Cloud Monitoring

您可以使用 IBM Cloud Monitoring 来获取应用程序,服务和平台的性能和运行状况的操作可视性。IBM Cloud Monitoring 为管理员,DevOps 团队和开发者提供了具有高级功能的完整堆栈遥测,用于监视和故障诊断,定义警报以及设计定制仪表板。

有关如何将Monitoring与Databases for PostgreSQL 结合使用的更多信息,请参阅 监控集成

无法使用 CLI 连接 IBM Cloud Monitoring。 使用控制台完成此任务。 更多信息,请参阅 监控集成

步骤 6:连接IBM Cloud Activity Tracker Event Routing

IBM Cloud Activity Tracker Event Routing允许您查看、管理和审核服务活动,以遵守企业政策和行业法规。Activity Tracker Event Routing在IBM Cloud 中记录由用户发起的、改变服务状态的活动。 使用Activity Tracker Event Routing跟踪用户和应用程序与Databases for PostgreSQL服务的交互情况。

要启动并运行 "Activity Tracker Event Routing,请参阅 "开始使用 "Activity Tracker Event Routing

每个位置只能有一个 Activity Tracker Event Routing 实例。 要查看事件,必须在您的服务实例所在位置访问 Activity Tracker Event Routing 服务的 Web UI。

有关Databases for PostgreSQL 特定事件的更多信息,请参阅 活动跟踪事件

事件的格式符合云审计数据联盟 (CADF) 标准。 有关它们包含的信息的更多详细信息,请参阅 CADF 标准

步骤 6: 通过 CLI 连接 IBM Cloud® Activity Tracker

IBM Cloud Activity Tracker 允许您查看,管理和审计服务活动以符合公司策略和行业法规。Activity Tracker 记录用户启动的活动,这些活动用于更改 IBM Cloud中服务的状态。 使用 Activity Tracker 可跟踪用户和应用程序如何与 Databases for PostgreSQL 服务进行交互。

要启动并运行 Activity Tracker,请参阅 Activity Tracker入门。

每个位置只能有一个 Activity Tracker 实例。 要查看事件,必须在您的服务实例所在位置访问 Activity Tracker 服务的 Web UI。 有关更多信息,请参阅 启动 Web UI

有关Databases for PostgreSQL 特定事件的更多信息,请参阅 活动跟踪事件

事件的格式符合云审计数据联盟 (CADF) 标准。 有关它们包含的信息的更多详细信息,请参阅 CADF 标准

无法使用 CLI 连接 Activity Tracker。 使用控制台完成此任务。 有关更多信息,请参阅 活动追踪事件

步骤 6: 通过 API 连接 IBM Cloud® Activity Tracker

IBM Cloud Activity Tracker 允许您查看,管理和审计服务活动以符合公司策略和行业法规。Activity Tracker 记录用户启动的活动,这些活动用于更改 IBM Cloud中服务的状态。 使用 Activity Tracker 可跟踪用户和应用程序如何与 Databases for PostgreSQL 服务进行交互。

要启动并运行 Activity Tracker,请参阅 Activity Tracker入门。

每个位置只能有一个 Activity Tracker 实例。 要查看事件,必须在您的服务实例所在位置访问 Activity Tracker 服务的 Web UI。 有关更多信息,请参阅 启动 Web UI

有关Databases for PostgreSQL 特定事件的更多信息,请参阅 活动跟踪事件

事件的格式符合云审计数据联盟 (CADF) 标准。 有关它们包含的信息的更多详细信息,请参阅 CADF 标准

无法使用 API 连接 Activity Tracker。 使用控制台完成此任务。 有关更多信息,请参阅 活动追踪事件

步骤 6: 通过 Terraform 连接 IBM Cloud® Activity Tracker

IBM Cloud Activity Tracker 允许您查看,管理和审计服务活动以符合公司策略和行业法规。Activity Tracker 记录用户启动的活动,这些活动用于更改 IBM Cloud中服务的状态。 使用 Activity Tracker 可跟踪用户和应用程序如何与 Databases for PostgreSQL 服务进行交互。

要启动并运行 Activity Tracker,请参阅 Activity Tracker入门。

每个位置只能有一个 Activity Tracker 实例。 要查看事件,必须在您的服务实例所在位置访问 Activity Tracker 服务的 Web UI。 有关更多信息,请参阅 启动 Web UI

有关Databases for PostgreSQL 特定事件的更多信息,请参阅 活动跟踪事件

事件的格式符合云审计数据联盟 (CADF) 标准。 有关它们包含的信息的更多详细信息,请参阅 CADF 标准

无法使用 API 连接 Activity Tracker。 使用控制台完成此任务。 有关更多信息,请参阅 活动追踪事件

后续步骤