管理Cloud Databases備份
每天都會對您的資料庫進行自動規劃的備份。 您亦可隨時觸發隨需備份。 如果您使用自帶金鑰 (BYOK),則使用自動金鑰或您自己的金鑰對備份進行加密。 您可以將備份還原到Cloud Databases的新實例。
若要存取Cloud Databases的備份,請前往資料庫實例的儀表板,然後查看備份和還原標籤。
一些關於備份的額外一般資訊:
- 每天執行自動備份,並按照 30 天的簡單保留計畫進行保存。
- 備份無法刪除。
- 如果您刪除實例,其備份也會自動刪除。
- 每日備份計畫不可配置。
- 備份可以恢復到其他區域,但
eu-de、eu-es和par-01除外,它們只能恢復彼此之間的備份。 例如,par-01備份可以還原到eu-de和eu-es之間。 - 備份儲存已加密。 若要管理加密金鑰,請參閱 Key Protect整合。 否則,備份將使用為您的實例自動產生的金鑰進行加密。
- 備份可以跨帳戶恢復,但只能透過 API 並且僅當執行恢復的使用者有權存取來源帳戶和目標帳戶時才可以。
- Cloud Databases 備份無法下載。 如果您需要本地備份,請使用適當的軟體。 例如,pg_dump 是管理 PostgreSQL 備份的有效工具。 至於 MySQL,,您可以使用 mysqldump。
有關進行按需備份的信息,請參閱 進行按需備份。
有關進行按需備份的信息,請參閱 進行按需備份。
有關進行按需備份的信息,請參閱 進行按需備份。
UI 中的備份
在 UI 中,導航至*「備份和還原」*標籤,您可以在其中看到一個表,其中包含資料庫的所有可用備份。
備份類型可以是_「按需」或「自動」_。 每個備份都列出了其類型和備份時間。
按一下備份可顯示該特定備份的訊息,包括其完整 ID。 復原按鈕或預先格式化的 CLI 指令可用於復原選項。
在 UI 中進行按需備份
如果您打算對執行個體進行重大更改,例如擴充或刪除資料庫、表、集合,則按需備份非常有用。 如果您需要按計劃進行備份,它也很有用。 按需備份保留 30 天。
實例免費提供等於其總磁碟空間的備份儲存。 若您的備份儲存空間使用量超過總磁碟容量,每超過的1GB將收取超額費用 $0.03/month。 備份經過壓縮,因此即使您使用按需備份,大多數實例也不會超出分配的配額。
若要在 UI 中建立手動備份,請前往實例的_備份和還原選項_卡,然後按一下建立備份。 將顯示一則訊息,表示備份正在進行,並且按需備份將新增至可用備份清單。
CLI 中的備份
您可以從Cloud Databases CLI 外掛程式和Cloud Databases API 存取備份清單和單一備份資訊。
使用 cdb deployment-backups-list 命令查看您的實例的所有可用備份的清單。 要獲取有關特定備份的詳細信息,請使用 cdb backup-show 命令。
例如,要查看名為「example-instance」的實例的備份,請使用下列命令:
ibmcloud cdb deployment-backups-list <INSTANCE_NAME_OR_CRN>
要查看列表中某個備份的詳細信息,請從 deployment-backups-list 響應的 ID 字段中獲取 ID,並將其與 backup-show 命令一起使用:
ibmcloud cdb backup-show crn:v1:staging:public:cloud-databases:us-south:a/6284014dd5b487c87a716f48aeeaf99f:3b4537bf-a585-4594-8262-2b1e24e2701e:backup:a3364821-d061-413f-a0df-6ba0e2951566
在 CLI 中進行按需備份
如果您打算對執行個體進行重大更改,例如擴充或刪除資料庫、表、集合,則按需備份非常有用。 如果您需要按計劃進行備份,它也很有用。 按需備份保留 30 天。
實例免費提供等於其總磁碟空間的備份儲存。 若您的備份儲存空間使用量超過總磁碟容量,每超過的1GB將收取超額費用 $0.03/month。 備份經過壓縮,因此即使您使用按需備份,大多數實例也不會超出分配的配額。
在 CLI 中,使用 cdb deployment-backup-now 指令觸發按需備份。 若要檢查備份狀態,請使用 ibmcloud cdb backup-show 指令。 例如:
ibmcloud cdb deployment-backup-now <INSTANCE_NAME_OR_CRN>
ibmcloud cdb backup-show <INSTANCE_NAME_OR_CRN>
Cloud Databases API 中的備份
有關Cloud Databases API 中的備份信息,請使用 /deployments/{id}/backups 端點列出實例的備份。 要獲取有關特定備份的信息,請使用 /backups/{backup_id} 端點。
在 API 中進行按需備份
如果您打算對執行個體進行重大更改,例如擴充或刪除資料庫、表、集合,則按需備份非常有用。 如果您需要按計劃進行備份,它也很有用。 按需備份保留 30 天。
實例免費提供等於其總磁碟空間的備份儲存。 若您的備份儲存空間使用量超過總磁碟容量,每超過的1GB將收取超額費用 $0.03/month。 備份經過壓縮,因此即使您使用按需備份,大多數實例也不會超出分配的配額。
在 API 中,向 /deployments/{id}/backups 端點傳送 POST 會觸發按需備份。
還原備份
備份將還原到新執行個體。 新實例完成配置後,備份檔案中的資料將還原到新實例中。
預設情況下,新實例的大小會自動調整為與您要從中還原的備份時的來源實例相同的磁碟和記憶體分配。 若要調整指派給新實例的資源,請使用 UI、CLI 或 API 中的選用欄位來調整新實例的大小。 確保為您的資料和工作負載分配足夠的資源;如果沒有為實例提供足夠的資源,復原將會失敗。
備份還原過程中請勿刪除來源實例。 在刪除舊實例之前,請等待配置新實例並還原備份。 刪除實例也會刪除其備份。
在 UI 中還原備份
若要將備份還原至新的服務實例,
- 點擊對應的列,以展開您要還原的備份選項。
- 按一下還原。
- 在 「配置」 頁面上,從一些可用選項中進行選擇。
- 新實例自動命名為
<name>-restore-[timestamp],但您可以重新命名它。 - 您也可以選擇新實例所在的區域。 支援跨區域恢復,但恢復到 * 區域或從
eu-de區域恢復除外。 - 您可以選擇初始資源分配,以擴充或收縮新執行個體上的資源。 您也可以啟用或停用專用核心。 請注意,如果減少資源量,可能會導致配置失敗或資料庫無法正常運作。
- 新實例自動命名為
- 點選恢復備份。 將出現「已開始從備份還原」訊息。 點擊您的新實例現在可用, 您將進入_資源清單_。
在 CLI 中還原備份
資源控制器支援資料庫執行個體的配置,配置和復原由資源控制器 CLI 負責。 使用 resource service-instance-create 命令。
ibmcloud resource service-instance-create <INSTANCE_NAME> <SERVICE-ID> standard <REGION> --service-endpoints <ENDPOINT-TYPE> -p '{"backup_id":"BACKUP_ID"}'
- 將
instance_name的值變更為您想要的新實例的名稱。 service-id是實例的類型,例如_dataset-for-postgresql_或_messages-for-rabbitmq_。region是您希望新實例所在的位置,它可以是與來源實例不同的區域。 支援跨區域恢復,但使用其他區域恢復到 * 或從eu-de恢復除外。backup_id是您要還原的備份。
前面的命令會將備份還原到與原始部署具有相同配置和相同 託管模型 的電腦。
選用參數
可選參數可透過 CLI 取得。 如果您需要自訂資源、變更託管模型或在新實例上使用Key Protect金鑰進行 BYOK 加密,請使用它們。 請參閱下列範例:
ibmcloud resource service-instance-create <INSTANCE_NAME> <SERVICE-ID> standard <REGION> -p
'{"backup_id":"BACKUP_ID","key_protect_key":"KEY_PROTECT_KEY_CRN", "members_disk_allocation_mb":"DESIRED_DISK_IN_MB", "members_host_flavor": "<VALUE>", "members_memory_allocation_mb":"DESIRED_MEMORY_IN_MB", "members_cpu_allocation_count":"NUMBER_OF_CORES"}'
members_host_flavor 值可以是「多租用戶」或適當大小的隔離計算主機(請參閱 可用值清單)。 如果您使用「多租戶」託管,則僅指定 members_memory_allocation_mb 或 members_cpu_allocation_count。
實例儀表板的_備份和復原標籤_上的備份詳細檢視中提供了針對特定備份的預先格式化指令。
預設情況下,從備份還原會為執行個體提供資料庫類型的首選版本,而不是您還原的執行個體的版本。 您可以透過在參數物件中新增版本來指定版本,如下例所示。
`ibmcloud resource service-instance-create <INSTANCE_NAME> databases-for-mysql standard us-south -p '{"backup_id":"<BACKUP_ID>", "version": "<VERSION>"}'
若要查看可用版本的列表,請執行 ibmcloud cdb deployables。
新增 async_restore 參數(新增) - PostgreSQL 僅限
新增了一個可選參數,async_restore 已加入還原區 parameters 塊中。
async_restore (布林值) — 預設值:false。 當設定為 true 時,還原作業將以非同步操作啟動,有助於縮短端對端還原時間。
`ibmcloud resource service-instance-create <INSTANCE_NAME> databases-for-postgresql standard us-south -p '{"point_in_time_recovery_deployment_id":"<SOURCE_CRN>", "point_in_time_recovery_time":"<PITR_TIME>", version": "<VERSION>", "async_restore": true }'
範例:
`ibmcloud resource service-instance-create <INSTANCE_NAME> databases-for-postgresql standard us-south -p '{"point_in_time_recovery_deployment_id":"test_crn", "point_in_time_recovery_time":"2025-12-08T17:08:32Z", version": "17", "async_restore": true }'
僅當來源資料庫與目標 PostgreSQL 資料庫執行相同主要版本時,方可請求執行非同步還原。 不同主要版本之間的還原功能不被支援。 若未指定此 async_restore 參數,服務將預設以同步方式執行還原操作,此為當前行為模式。
透過API恢復備份
資源控制器 API支援配置和復原資料庫執行個體。 建立請求是 POST 到 /resource_instances 端點。
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": "<YOUR-RESOURCE-GROUP>",
"resource_plan_id": "<SERVICE-ID>",
"parameters":{
"backup_id": "<BACKUP_ID>"
}
}'
參數 name、target、resource_group 和 resource_plan_id 都是必要的,backup_id 是要復原的備份。
- 將
name的值變更為您想要的新實例的名稱。 resource_plan_id是實例的類型,例如_dataset-for-postgresql_或_messages-for-rabbitmq_。target是您希望新實例所在的區域,該區域可以是與來源實例不同的區域。 支援跨區域恢復,但恢復到 * 區域或從eu-de區域恢復除外。backup_id是您要還原的備份。
前一個指令會將備份還原至一臺與原始部署具有相同配置且採用相同 託管模式 的機器上。
選用參數
可選參數可透過 API 取得。 如果您需要自訂資源、變更託管模型、部署到特定版本或在新執行個體上使用Key Protect金鑰進行 BYOK 加密,請使用它們。
如果您需要調整資源,請將任何可選參數 key_protect_key、members_disk_allocation_mb、members_host_flavor、members_memory_allocation_mb、members_cpu_allocation_count 或 version 及其首選值新增至請求正文中。
請參閱下列範例:
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": "<YOUR-RESOURCE-GROUP>",
"resource_plan_id": "<SERVICE-ID>",
"parameters":{
"backup_id": "<BACKUP_ID>",
"members_host_flavor": "<members_host_flavor_value>",
"version": "<VERSION_NUMBER>"
}
}'
members_host_flavor 值可以是「多租用戶」或適當大小的隔離計算主機(請參閱 可用值清單)。 如果您使用「多租戶」託管,則僅指定 members_memory_allocation_mb 或 members_cpu_allocation_count。
預設情況下,從備份還原會為執行個體提供資料庫類型的首選版本,而不是您還原的執行個體的版本。 您可以透過在參數物件中新增 version 值來指定版本。
新增 async_restore 參數(新增) - PostgreSQL 僅限
新增了一個可選參數,async_restore 已加入還原區 parameters 塊中。
async_restore (布林值) — 預設值:false。 當設定為 true 時,還原作業將以非同步操作啟動,有助於縮短端對端還原時間。
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": "<YOUR-RESOURCE-GROUP>",
"resource_plan_id": "<SERVICE-ID>",
"parameters":{
"point_in_time_recovery_deployment_id": "<SOURCE_CRN>",
"point_in_time_recovery_time": "<PITR_TIME>",
"version": "<VERSION_NUMBER>",
"async_restore": true
}
}'
僅當來源資料庫與目標 PostgreSQL 資料庫執行相同主要版本時,方可請求執行非同步還原。 不同主要版本之間的還原功能不被支援。 若未指定此 async_restore 參數,服務將預設以同步方式執行還原操作,此為當前行為模式。
透過 Terraform 恢復備份
使用 Terraform 將備份從舊版本還原到新版本。
程式碼如下:
resource "ibm_database" "<your-instance>" {
name = "<your_database_name>"
service = "<service>"
plan = "<plan>"
location = "<region>"
version = "<version>"
backup_id = "<backup_id>"
}
有關更多信息,請參閱 Cloud Databases Terraform 註冊表。
透過 Terraform 進行快速 PG 還原(async_restore)- 僅 PostgreSQL
-
區塊中新增了一個可選參數
async_restore。 -
async_restore(布林值) — 預設值:false。 當設定為 true 時,還原作業將以非同步操作啟動,有助於縮短端對端還原時間。 -
此參數僅適用於還原 PostgreSQL 範例時。
程式碼如下所示:
data "ibm_resource_group" "group" {
name = "<your_group>"
}
resource "ibm_database" "<your-instance>" {
name = "<your_database_name>"
location = "<region>"
plan = "<plan>"
service = "databases-for-postgresql"
resource_group_id = data.ibm_resource_group.group.id
service_endpoints = "private"
async_restore = true
point_in_time_recovery_time = "<PITR_TIME>"
point_in_time_recovery_deployment_id = "<SOURCE_CRN>"
version = "<VERSION_NUMBER>"
}
僅當來源資料庫與目標 PostgreSQL 資料庫執行相同主要版本時,方可請求執行非同步還原。 不同主要版本之間的還原功能不被支援。 若未指定此 async_restore 參數,服務將預設以同步方式執行還原操作,此為當前行為模式。
備份和復原
- Cloud Databases不對所述備份的復原、及時性或有效性負責。
- 您作為使用者執行的操作可能會損害備份的完整性,例如記憶體和磁碟分配不足。 使用者可以使用API監控備份是否成功,並定期恢復備份以確保有效性和完整性。 使用者可以從 Cloud Databases CLI 外掛程式 和 Cloud Databases API 檢索最新計畫的備份詳細資訊。
- 作為託管服務,Cloud Databases會監控您的備份狀態,並在可能的情況下嘗試進行修復。 如果您遇到無法恢復的問題,請聯絡支援人員以取得更多協助。
備份位置
備份位置因資料庫區域而異。 確保備份區域位置符合您的資料位置要求。
| 實例地區 | 備份區域 |
|---|---|
| 達拉斯 | 美國跨區域Object Storage |
| 華盛頓特區 | 美國跨區域Object Storage |
| 倫敦 | 歐盟跨區域Object Storage |
| 法蘭克福 | 歐盟跨區域Object Storage |
| 東京 | AP跨區域Object Storage |
| 大阪 | AP跨區域Object Storage |
| 雪梨 | AP跨區域Object Storage |
| 多倫多 | 蒙特利爾Object Storage |
| 清奈 | 金奈Object Storage |
| 聖保羅 | 聖保羅Object Storage |
| 馬德里 | 歐盟跨區域Object Storage |
有關Cloud DatabasesObject Storage位置的更多詳細信息,請查看該位置的 文檔。
業務連續性和災難復原
Cloud Databases提供保護您的資料和復原服務功能的機制。 如需詳細資訊(包括 備份儲存區域),請參閱 了解Cloud Databases的業務連續性和災難復原。
時間點恢復
透過時間點還原 (PITR),實例可以持續增量備份,並可以重播交易以將從備份還原到過去 7 天內的任何時間點的新實例。Cloud Databases為以下服務提供時間點復原 (PITR):
備份常見問題解答
有關備份的常見問題,請參閱 備份常見問題。