佈建
Gen 2
透過 目錄、Cloud Databases CLI 外掛程式、Cloud Databases API 或 Terraform 來部署 IBM Cloud® Databases for PostgreSQL。
預設情況下,所有部署都會以高可用性的標準兩成員編組形式進行配置。
單節點部署(測試版)
單節點部署現已作為 Beta 功能,提供給部分選定的 Databases for PostgreSQL 部署。 這些產品僅供評估之用,其功能、定價及供應狀況將於正式推出時有所調整。
單節點部署會配置一個成員,而非預設的兩個成員所組成的高可用性架構。 單節點部署適用於非生產環境的工作負載,例如開發、測試及概念驗證等工作負載。
單節點配置僅適用於 Gen 2 上的 Databases for PostgreSQL。
目前的限制
- 在 Beta 測試期間,運算資源將免費提供。
- 僅支援預設的部署設定檔。
- 不支援擴展至更大的部署配置。
- 此服務僅限於受支援的資料庫服務及區域。
對於需要具備基礎架構故障及維護事件容錯能力的生产工作負載,請採用高可用性部署方式。
配置單節點實例前的注意事項
請檢視以下與標準高可用性部署相比的限制。
- 無高可用性
- 單節點部署僅包含一個成員,且沒有複本集夥伴。 若因主機故障、預定維護或區域層級的中斷導致節點無法使用,則在節點恢復運作之前,資料庫將無法使用。 不提供自動故障轉移功能。
- 服務水準目標下調
- 單節點部署無法提供與多節點部署相同的可用性保證。 在為需要持續可用性的工作負載採用單節點部署之前,請先審閱《服務水準協議》(SLA)。
- 擴展至高可用性
- 您可以透過將成員數從
1變更為2``,將單節點部署擴展為高可用性架構。 此操作會將部署轉換為標準的兩節點複本集,且無需建立新的部署或進行資料遷移。
透過 IBM Cloud 控制台進行配置
請透過控制台指定以下參數進行部署:
地點與平台
- 位置 — 請選擇您要部署資料庫的區域。 清單中的每個區域皆標示其支援的平台( 第一代或第二代 ),以協助您進行選擇。
- 平台- 選擇您要部署資料庫的平台。 可選方案取決於您選擇的地區。 有關第一代與第二代之間差異的更多資訊,請參閱 《第一代與第二代概覽》。
服務詳細資料
代管模式
對於第 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 記憶體 |
| 8x32 | 8 顆 vCPU 處理器 × 32 GB 記憶體 |
| 16x64 | 16 vCPU x 64 GB RAM |
| 32x128 | 32 vCPU × 128 GB RAM |
請根據您的需求選擇磁碟大小。 如有需要,您稍後可以增加其大小,但為避免潛在的資料遺失,在配置完成後不得縮小其大小。
服務配置
- 資料庫版本 [Set only at deployment] {: tag-red}- 您的資料庫的部署版本。 為確保最佳效能,請執行首選版本。 系統會自動採用最新的次版本。 如需更多資訊,請參閱《 版本控制政策 》。
- 加密 — 若您使用 Key Protect,可選擇一個實例和金鑰來加密部署的磁碟。 如果您未使用自己的金鑰,部署程序會自動建立並管理專屬的磁碟加密金鑰。
- 端點 Set only at deployment- 在您的部署中設定服務端點。 對於第 2 代,僅支援私有端點。
選取適當的設定後,請按一下「建立」以開始配置程序。
透過 CLI 進行配置
透過 CLI 建立服務實例
在進行配置之前,請依照文件中的指示安裝 IBM Cloud 命令列介面(CLI)工具。
-
登入 IBM Cloud。 如果您使用的是聯邦式使用者 ID,請務必切換至一次性驗證碼(
ibmcloud login --sso),或使用 API 金鑰(ibmcloud login --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_NAMERequired實例名稱可以是任何字串,這是用於在網頁和命令列介面 (CLI) 中識別新部署的名稱。 SERVICE_NAMERequired服務的名稱或 ID。 若要存取 Databases for PostgreSQL,請使用 databases-for-postgresql。SERVICE_PLAN_NAMERequired標準方案( standard)LOCATIONRequired您要部署的位置。 若要擷取區域清單,請使用 ibmcloud regions指令。RESOURCE_GROUP資源群組名稱。 預設值為 default。-g --parameters要建立服務實例之參數的 JSON 檔案或 JSON 字串 -p members_host_flavor若要配置隔離運算實例,請使用 {"members_host_flavor": "<members_host_flavor value>"}。 對於「隔離式運算」,請選擇所需的 CPU 和 RAM 配置。 如需更多資訊,請參閱下表或「託管模式」。members將設定值設為 1,以配置單節點、非高可用性(非 HA)的編隊。 若要配置預設的高可用性編組,請省略此參數或將其設定為2。--service-endpointsRequired僅支援 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 記憶體 | b3c.4x16.encrypted |
| 8x32 | 8 顆 vCPU 處理器 × 32 GB 記憶體 | 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均為必填項目。該指令中的各欄位說明詳見下表。
基本指令格式欄位 欄位 說明 旗標 nameRequired實例名稱可以是任何字串,這是用於在網頁和命令列介面 (CLI) 中識別新部署的名稱。 targetRequired您要部署的區域。 若要擷取區域清單,請使用 ibmcloud regions指令。resource_group資源群組名稱。 預設值為 default。-g resource_plan_idRequired服務的名稱或 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-endpointsRequired僅支援 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 記憶體 | b3c.4x16.encrypted |
| 8x32 | 8 顆 vCPU 處理器 × 32 GB 記憶體 | 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 配額的選項。
Gen 2 並未提供預設的管理員使用者或密碼。 請使用 ibm_resource_key 建立具有「Manager」角色的服務憑證,以便在配置完成後產生資料庫憑證。
data "ibm_resource_group" "group" {
name = "<your_group>"
}
resource "ibm_database" "<your_database>" {
name = "<your_database_name>"
plan = "standard"
location = "<region>"
service = "databases-for-postgresql"
resource_group_id = data.ibm_resource_group.group.id
service_endpoints = "private"
tags = ["tag1", "tag2"]
group {
group_id = "member"
host_flavor {
id = "b3c.8x32.encrypted"
}
disk {
allocation_mb = 256000
}
}
allowlist {
address = "172.168.1.1/32"
description = "desc"
}
}
resource "ibm_resource_key" "this" {
name = "<your_credential_name>"
resource_instance_id = "<your_database_resource_instance_id>"
parameters = { "role" = "Manager" }
}
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 記憶體 | b3c.4x16.encrypted |
| 8x32 | 8 顆 vCPU 處理器 × 32 GB 記憶體 | b3c.8x32.encrypted |
| 16x64 | 16 vCPU x 64 GB RAM | b3c.16x64.encrypted |
Cloud Databases 的「隔離運算」服務不支援 CPU 和 RAM 的自動擴展,但支援磁碟的自動擴展。 透過 IBM Cloud® Monitoring 整合 功能監控您的資源,該功能可追蹤記憶體、磁碟空間及磁碟 I/O 使用狀況。 若要增加資源,請手動擴展您的部署規模。