---
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-cn/administration/nodes/volumes/)创建。应用操作者需要知道目标服务器、卷名称和镜像要求的数据目录。

本地数据属于所选服务器。当前应用必须在创建时选择这一部署方式：固定到该服务器、运行一个副本，不能同时使用 XConfig、动态调度或 Guardian。普通应用创建后不能直接通过添加挂载切换为本地数据模式。

## 挂载数据卷

1. 创建应用，在文件与存储中选择数据方式。
2. 选择持有目标卷的服务器。
3. 添加数据卷并填写容器内的绝对目录，例如 `/var/lib/mysql`。
4. 根据需要选择只读；数据库写入目录通常需要可写。
5. 保存并创建应用，检查初始化日志。

卷名称表示宿主机上的存储对象，目标路径表示容器内的位置。名称相同但位于不同服务器上的卷，不应被视为同一份数据。

## 确认数据写到了正确位置

使用镜像文档中的数据目录，不要凭名称猜测。某些镜像允许环境变量改变数据目录，此时挂载目标也必须与最终设置一致。

先写入一条可识别的测试数据，在允许中断的测试场景下重新创建运行容器，再验证数据仍可读取。生产数据库的此类检查应遵循业务维护流程。

| 操作 | 对数据的含义 |
| --- | --- |
| 重启或更新容器 | 挂载正确时继续使用原卷，应用自身仍可能修改数据 |
| 删除应用 | 保留本地卷，停止应用对它的使用 |
| 删除数据卷 | 删除对应持久化数据，应先确认备份及使用情况 |
| 服务器失效 | 本地数据不会因为存在其他服务器就自动复制过去 |

## 常见问题

卷列表为空时，先确认所选服务器和数据卷服务状态。权限错误时检查镜像使用的用户及卷内文件权限。应用启动后看不到旧数据时，核对服务器、卷和容器目录三个条件。

更新数据库镜像前确认数据格式兼容。应用配置回滚不能撤销数据库已完成的迁移或业务写入。备份、恢复及数据一致性应采用数据库自身支持的方法。

需要数据库部署示例及限制说明，继续[有状态应用](/docs/zh-cn/guides/apps/persistence/stateful/)。

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