---
title: "資料持久化"
description: "為應用程式掛載指定伺服器上的資料卷，並理解資料和容器的生命週期。"
---

> Documentation Index
> Fetch the complete documentation index at: https://cdelivery.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# 資料持久化

容器可以被更新或重新建立。需要在這些操作後保留的業務資料，應寫入持久化資料卷，而不是只寫在容器自身的檔案系統中。

## 建立前準備

資料卷由管理員在[伺服器的資料卷頁面](/docs/zh-tw/administration/nodes/volumes/)建立。應用程式操作者需要知道目標伺服器、卷名稱和映像檔要求的資料目錄。

本地資料屬於所選伺服器。當前應用程式必須在建立時選擇這一部署方式：固定到該伺服器、執行一個副本，不能同時使用 XConfig、動態調度或 Guardian。普通應用程式建立後不能直接通過添加掛載切換為本地資料模式。

## 掛載資料卷

1. 建立應用程式，在檔案與存儲中選擇資料方式。
2. 選擇持有目標卷的伺服器。
3. 添加資料卷並填寫容器內的絕對目錄，例如 `/var/lib/mysql`。
4. 根據需要選擇唯讀；資料庫寫入目錄通常需要可寫。
5. 儲存並建立應用程式，檢查初始化日誌。

卷名稱表示宿主機上的存儲對象，目標路徑表示容器內的位置。名稱相同但位於不同伺服器上的卷，不應被視為同一份資料。

## 確認資料寫到了正確位置

使用映像檔文件中的資料目錄，不要憑名稱猜測。某些映像檔允許環境變數改變資料目錄，此時掛載目標也必須與最終設定一致。

先寫入一條可識別的測試資料，在允許中斷的測試場景下重新建立執行容器，再驗證資料仍可讀取。生產資料庫的此類檢查應遵循業務維護流程。

| 操作 | 對資料的含義 |
| --- | --- |
| 重啟或更新容器 | 掛載正確時繼續使用原卷，應用程式自身仍可能修改資料 |
| 刪除應用程式 | 保留本地卷，停止應用程式對它的使用 |
| 刪除資料卷 | 刪除對應持久化資料，應先確認備份及使用情況 |
| 伺服器失效 | 本地資料不會因為存在其他伺服器就自動複製過去 |

## 常見問題

卷清單為空時，先確認所選伺服器和資料卷服務狀態。權限錯誤時檢查映像檔使用的使用者及卷內檔案權限。應用程式啟動後看不到舊資料時，核對伺服器、卷和容器目錄三個條件。

更新資料庫映像檔前確認資料格式兼容。應用程式設定回復不能撤銷資料庫已完成的遷移或業務寫入。備份、恢復及資料一致性應採用資料庫自身支援的方法。

需要資料庫部署示例及限制說明，繼續[有狀態應用程式](/docs/zh-tw/guides/apps/persistence/stateful/)。

Source: https://cdelivery.dev/docs/zh-tw/guides/apps/persistence/index.mdx
