
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本镜像基于官方PostgreSQL数据库构建,预安装并配置了pg_partman扩展。pg_partman是一款强大的表分区管理工具,专为简化PostgreSQL表分区(尤其是时间序列数据)的创建、维护和自动化管理而设计,支持自动分区创建、过期分区清理、分区模板定制等功能,适用于需要高效管理大量时序数据或大型分区表的场景。
1. 基本运行
使用以下命令启动容器,映射端口并设置数据库密码:
bashdocker run -d \ --name pg-partman-db \ -e POSTGRES_PASSWORD=StrongPassword123 \ -e POSTGRES_USER=dbadmin \ -e POSTGRES_DB=timeseries_db \ -p 5432:5432 \ postgres-with-pg_partman:latest
2. 启用pg_partman扩展
容器启动后,通过psql连接数据库并启用扩展(首次使用需执行):
bash# 进入容器 docker exec -it pg-partman-db psql -U dbadmin -d timeseries_db # 在数据库中启用pg_partman CREATE EXTENSION pg_partman;
3. 创建分区表示例(时间序列分区)
以按天分区的日志表为例,创建自动维护的分区结构:
sql-- 创建父表(注意:父表需为未分区表,由pg_partman管理分区) CREATE TABLE metrics ( id SERIAL, metric_name TEXT, value NUMERIC, recorded_at TIMESTAMPTZ NOT NULL ); -- 使用pg_partman创建时间序列分区(按天分区,保留30天数据,提前创建7天分区) SELECT partman.create_parent( p_parent_table => 'public.metrics', -- 父表名 p_control => 'recorded_at', -- 分区控制字段(时间类型) p_type => 'time', -- 分区类型(time/list/range) p_interval => 'daily', -- 分区间隔(hourly/monthly等) p_retention := '30 days', -- 保留30天数据 p_premake := 7 -- 提前创建7天的未来分区 );
4. 配置自动分区维护
pg_partman依赖定期执行维护函数以创建/清理分区,推荐通过以下方式配置:
方式1:使用cron任务(需容器内安装cron)
bash# 在容器内添加cron任务(每天凌晨2点执行维护) echo "0 2 * * * psql -U dbadmin -d timeseries_db -c 'SELECT partman.run_maintenance();'" | crontab -
方式2:使用pg_cron扩展(若已安装)
sql-- 创建定时任务(每小时执行一次维护) SELECT cron.schedule( 'pg_partman_maintenance', '0 * * * *', 'SELECT partman.run_maintenance();' );
| 变量名 | 说明 | 默认值 |
|---|---|---|
| POSTGRES_PASSWORD | 数据库超级用户密码 | 无(必填) |
| POSTGRES_USER | 数据库用户名 | postgres |
| POSTGRES_DB | 默认数据库名 | 与POSTGRES_USER相同 |
| PG_PARTMAN_AUTO_MAINT | 是否自动启用维护模式 | true |
| PG_PARTMAN_RETENTION | 默认分区保留时间(如"30 days") | 无(需手动配置) |
| PG_PARTMAN_PREAMBLE | 维护日志前缀 | pg_partman_maintenance |
yamlversion: '3.8' services: pg-partman: image: postgres-with-pg_partman:latest container_name: pg-partman ports: - "5432:5432" environment: POSTGRES_PASSWORD: StrongPassword123 POSTGRES_USER: dbadmin POSTGRES_DB: metrics_db PG_PARTMAN_RETENTION: "90 days" volumes: - pg_data:/var/lib/postgresql/data restart: unless-stopped volumes: pg_data:
CREATE EXTENSION pg_partman;才能使用分区功能partman.run_maintenance()定期执行pg_dump -Fc格式您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务