佈建
第 2 代
透過 目錄、Cloud Databases CLI 外掛程式、Cloud Databases API 或 Terraform 來部署 IBM Cloud® Databases for PostgreSQL。
透過 IBM Cloud 控制台 (UI) 進行配置
請透過控制台指定以下參數進行部署:
地點與平台
- 位置- 選擇您要部署資料庫的區域。 清單中的每個區域皆標示其支援的平台( 第一代或第二代 ),以協助您進行選擇。
- 平台- 選擇您要部署資料庫的平台。 可選方案取決於您選擇的地區。 有關第一代與第二代之間差異的更多資訊,請參閱 《第一代與第二代概覽》。
服務詳細資料
代管模式
對於第 2 代部署,僅提供「隔離式」託管模式。
隔離式: 專為複雜且需高效能的企業工作負載所設計的安全單租戶解決方案。 如需更多資訊,請參閱「託管模式」。
資源配置
精細調整您的資源配置。 請參照下表,為部署中的每個成員選擇機器規格,並指定磁碟大小。
固定型材
| 主機大小 | vCPU x RAM |
|---|---|
| 4x20 | 4 顆 vCPU 處理器 × 20 GB 記憶體 |
| 8x40 | 8 顆 vCPU 處理器 × 40 GB 記憶體 |
| 16x80 | 16 vCPU × 80 GB RAM |
| 32x160 | 32 英吋 vCPU x 160 GB RAM |
| 48x240 | 48 vCPU × 240 GB RAM |
Flex 配置檔
| 主機大小 | vCPU x RAM |
|---|---|
| 4x16 | 4 顆 vCPU,搭配 16 GB RAM |
| 8x32 | 8 vCPU × 32 GB RAM |
| 16x64 | 16 vCPU x 64 GB RAM |
| 32x128 | 32 vCPU x 128 GB RAM |
請根據您的需求選擇磁碟大小。 如有需要,您稍後可以增加其大小,但為避免潛在的資料遺失,在配置完成後不得縮小其大小。
服務配置
- 資料庫版本 [僅在部署時設定] {: tag-red}- 您的資料庫的部署版本。 為確保最佳效能,請執行首選版本。 系統會自動採用最新的次版本。 如需更多資訊,請參閱《 版本控制政策 》。
- 加密 — 若您使用 Key Protect,可選擇一個實例和金鑰來加密部署的磁碟。 如果您未使用自己的金鑰,部署程序會自動建立並管理專屬的磁碟加密金鑰。
- [僅在部署時設定的]端點 {: tag-red}- 在您的部署中設定服務端點。 對於第 2 代,僅支援私有端點。
選取適當的設定後,請按一下「建立」以開始配置程序。
透過 CLI 進行配置
透過 CLI 建立服務實例
在進行配置之前,請依照文件中的指示安裝 IBM Cloud 命令列介面(CLI)工具。
-
登入 IBM Cloud。 如果您使用的是聯邦式使用者 ID,請務必切換至一次性驗證碼(
ibmcloud login --sso),或使用 API 金鑰(ibmcloud --apikey key or @key_file)進行驗證。 如需進一步了解如何透過 CLI 登入,請參閱ibmcloud login中的「一般 CLI(ibmcloud)指令」。ibmcloud login -
請選擇您希望為資料庫配置的 託管模式。 您可以稍後進行變更。
-
請使用以下指令為您的資料庫進行初始化:
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 和 RAM 容量(b3c.4x16.encrypted代表 4 顆 CPU 和 16 RAM),因此此請求不接受同時選擇「隔離規格」以及分別設定 CPU 和 RAM 配額的選項。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必填實例名稱可以是任何字串,這是用於在網頁和命令列介面 (CLI) 中識別新部署的名稱。 SERVICE_NAME必填服務的名稱或 ID。 若要存取 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 和 RAM 配置。 如需更多資訊,請參閱下表或「託管模式」。--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 參數用於定義您的 Compute 規格。
要配置一個「隔離運算」執行個體,請指定符合您所需設定的 CPU 和 RAM 數值。
| 主機大小 | 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 RAM | mx3d.16x80.encrypted |
| 32x160 | 32 英吋 vCPU x 160 GB RAM | bx3d.32x160.encrypted |
| 48x240 | 48 vCPU × 240 GB RAM | bx3d.48x240.encrypted |
| 主機大小 | vCPU x RAM | host_flavor 值 |
|---|---|---|
| 4x16 | 4 顆 vCPU,搭配 16 GB RAM | b3c.4x16.encrypted |
| 8x32 | 8 vCPU × 32 GB RAM | b3c.8x32.encrypted |
| 16x64 | 16 vCPU x 64 GB RAM | b3c.16x64.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-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 進行資源配置。
-
您需要知道要進行部署的資源群組的 ID。 請使用此指令來取得您帳戶中的資源群組清單:
curl -X GET "https://resource-controller.cloud.ibm.com/v2/resource_groups?account_id=<YOUR_ACCOUNT>" -H "Authorization: Bearer <TOKEN>" -
您需要了解欲進行部署的區域。 若要列出可從當前區域進行部署配置的所有區域,請使用此 API 指令:
curl -X GET https://api.<YOUR-REGION>.databases.cloud.ibm.com/v5/ibm/regions -H 'Authorization: Bearer <TOKEN>' \ -
請選擇您希望為資料庫配置的 託管模式。 您可以稍後進行變更。
主機類型代表固定大小的保證資源分配。 若要查看您所在地區可用的主機類型,請如下所示呼叫 主機類型功能端點:
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兆位元組的 RAM,請執行以下指令:{ "parameters": { "members_host_flavor": "b3c.4x16.encrypted" } }若要將您的執行個體擴展至 8 個 CPU 及
32768百萬位元組的 RAM,請提交一個包含新members_host_flavor的擴展指令:{ "parameters": { "members_host_flavor": "b3c.8x32.encrypted" } } -
取得所有資訊後,請使用「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>" } }'部署一個具有相同
"members_host_flavor"參數的 Databases for PostgreSQL 隔離實例,並將該參數設定為所需的隔離實例大小。 可用的主機空間大小及其members_host_flavor value參數列於 表 2 中。 例如,{"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-postgresql-standard" "parameters": { "member_host_flavor": "b3c.4x16.encrypted", "service_endpoints": "private" } }'參數
name、target、resource_group、resource_plan_id以及service_endpoints均為必填項目。該指令中的各欄位說明詳見下表。
基本指令格式欄位 欄位 說明 旗標 name必填實例名稱可以是任何字串,這是用於在網頁和命令列介面 (CLI) 中識別新部署的名稱。 target必填您要部署的區域。 若要擷取區域清單,請使用 ibmcloud regions指令。resource_group資源群組名稱。 預設值為 default。-g resource_plan_id必填服務的名稱或 ID。 若要存取 Databases for PostgreSQL,請使用 databases-for-postgresql-standard。--parameters要建立服務實例之參數的 JSON 檔案或 JSON 字串 -p members_host_flavor若要配置隔離運算實例,請使用 {"members_host_flavor": "<members_host_flavor value>"}。 對於「隔離式運算」,請選擇所需的 CPU 和 RAM 配置。 如需更多資訊,請參閱下表或「託管模式」。--service-endpoints必填僅支援 private。version即將部署的資料庫版本。 若未指定,系統將使用最新的主要版本和次要版本來建立資料庫。
host flavor 參數
members_host_flavor 參數用於定義您的 Compute 規格。
要配置一個「隔離運算」執行個體,請指定符合您所需設定的 CPU 和 RAM 數值。
| 主機大小 | 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 RAM | mx3d.16x80.encrypted |
| 32x160 | 32 英吋 vCPU x 160 GB RAM | bx3d.32x160.encrypted |
| 48x240 | 48 vCPU × 240 GB RAM | bx3d.48x240.encrypted |
| 主機大小 | vCPU x RAM | host_flavor 值 |
|---|---|---|
| 4x16 | 4 顆 vCPU,搭配 16 GB RAM | b3c.4x16.encrypted |
| 8x32 | 8 vCPU × 32 GB RAM | b3c.8x32.encrypted |
| 16x64 | 16 vCPU x 64 GB RAM | b3c.16x64.encrypted |
Cloud Databases 隔離運算服務不支援 CPU 和 RAM 的自動擴展,但支援磁碟的自動擴展。 透過 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- RAM 分配量為每次部署的總量。 資料庫內各資料庫成員之間將共享的記憶體總量。 舉例來說,若該值為「8192」,且有兩個資料庫成員,則該部署將獲得總計 8 GB 的 RAM,每個成員可分配 4 GB 的 RAM。 若未指定,則會採用資料庫類型的預設值。 此參數僅適用於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 配置隔離的運算資源
部署一個具有相同 "host_flavor" 參數的 Databases for PostgreSQL 隔離實例,並將該參數設定為所需的隔離實例大小。 可用的主機空間大小及其 host_flavor value 參數列 於表 1 中。 例如,{"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-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 參數用於定義您的 Compute 規格。
隔離運算- 若要配置一個隔離運算實例,請指定符合您所需配置的 CPU 和 RAM 數值。
| 主機大小 | 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 RAM | mx3d.16x80.encrypted |
| 32x160 | 32 英吋 vCPU x 160 GB RAM | bx3d.32x160.encrypted |
| 48x240 | 48 vCPU × 240 GB RAM | bx3d.48x240.encrypted |
| 主機大小 | vCPU x RAM | host_flavor 值 |
|---|---|---|
| 4x16 | 4 顆 vCPU,搭配 16 GB RAM | b3c.4x16.encrypted |
| 8x32 | 8 vCPU × 32 GB RAM | b3c.8x32.encrypted |
| 16x64 | 16 vCPU x 64 GB RAM | b3c.16x64.encrypted |
Cloud Databases 的「隔離運算」服務不支援 CPU 和 RAM 的自動擴展,但支援磁碟的自動擴展。 透過 IBM Cloud® Monitoring 整合 功能監控您的資源,該功能可追蹤記憶體、磁碟空間及磁碟 I/O 使用狀況。 若要增加資源,請手動擴展您的部署規模。