标准答案
- 数据目录必须使用明确生命周期的持久化存储,容器重建、镜像更新和节点替换都要验证数据仍可访问。
- 数据库需要按实际存储和 fsync 语义评估性能,容器可写层和临时存储不应作为默认持久化方案。
- 备份要覆盖一致性、加密、保留、恢复时间和恢复点目标,并做真实恢复演练。
- 内存、文件描述符、共享内存和优雅停机都要按数据库特性配置,而不是套用普通无状态服务模板。
题目解析
数据库在容器里仍然需要稳定的存储、正确的 fsync 和文件系统语义、足够的内存与 fd、复制、备份和故障恢复。volume 只是把数据目录放到独立生命周期的存储上,不自动提供一致性快照、跨节点复制或恢复点。
性能测试要使用真实存储类型、容器 limit、工作集和同步策略,区分 page cache、数据库 buffer pool 和设备延迟。发布或节点替换前要验证数据目录、权限、备份、恢复时间、恢复点和优雅停机,不要以“进程能启动”作为数据库验收。
常见误区
- 误区:把 volume 存在等同于有备份。改正:定义一致性备份、加密、保留、RPO/RTO 并做恢复演练。
- 误区:把数据库放在容器 writable layer。改正:使用明确的持久化存储和数据目录权限。
- 误区:只测启动不测恢复。改正:测试节点替换、容器重建、备份恢复、复制和停机期间的数据完整性。