专属域名
文档搜索
轩辕助手
Run助手
邀请有礼
返回顶部
快速返回页面顶部
收起
收起工具栏
轩辕镜像 官方专业版
轩辕镜像 官方专业版轩辕镜像 官方专业版官方专业版
首页个人中心搜索镜像

交易
充值流量我的订单
工具
提交工单镜像收录一键安装
Npm 源Pip 源Homebrew 源
帮助
常见问题
其他
关于我们网站地图

官方QQ群: 1072982923

timescale/timescaledb-ha Docker 镜像 - 轩辕镜像

timescaledb-ha
timescale/timescaledb-ha
包含TimescaleDB时序数据库与Patroni高可用工具,用于构建具备高可用性的时序数据存储解决方案。
32 收藏0 次下载
💣 CI/CD 卡在拉镜像?问题不在代码,在镜像源
中文简介版本下载
💣 CI/CD 卡在拉镜像?问题不在代码,在镜像源

TimescaleDB with Patroni 高可用镜像文档

一、镜像概述和主要用途

本镜像整合了 TimescaleDB(基于 PostgreSQL 的时序数据库)和 Patroni(PostgreSQL 高可用解决方案),旨在提供开箱即用的高可用时序数据库部署方案。通过 Patroni 的自动故障转移与主从复制能力,结合 TimescaleDB 对时序数据的优化特性,实现时序数据存储的高可用性、可靠性与性能优化。

二、核心功能和特性

2.1 TimescaleDB 核心特性
  • 时序数据优化:针对时间序列数据设计的自动分区(按时间/空间)、数据保留策略、时序聚合函数
  • PostgreSQL 兼容:完全兼容 PostgreSQL 生态,支持 SQL 标准、索引类型(B-tree、GiST 等)及扩展
  • 高性能写入:优化批量写入性能,支持每秒数十万级时序数据点插入
  • 数据压缩:时序分区数据自动压缩,降低存储成本(最高可达 90% 压缩率)
2.2 Patroni 高可用特性
  • 自动故障转移:主节点故障时自动提升从节点为新主,恢复服务可用性
  • 主从复制管理:基于 PostgreSQL 流式复制,支持异步/同步复制模式配置
  • 集群配置一致性:通过分布式配置存储(默认支持 etcd、Consul、ZooKeeper)维护集群状态
  • 自愈能力:节点故障恢复后自动重新加入集群,同步数据并恢复复制关系

三、使用场景和适用范围

3.1 适用场景
  • 监控与可观测性系统:存储服务器、应用、网络设备的监控指标(如 Prometheus 后端存储)
  • IoT 数据平台:处理海量传感器、设备的时序数据流(温度、湿度、位置等)
  • 日志与事件分析:存储应用日志、用户行为事件等带时间戳的结构化数据
  • ***交易记录:存储高频交易数据,需保证数据完整性和服务连续性
3.2 适用范围
  • 对数据可用性要求高(SLA ≥ 99.9%)的业务场景
  • 时序数据量较大(TB 级以上)且需长期存储的场景
  • 需要简化数据库集群运维(自动故障处理、配置管理)的场景

四、详细使用方法和配置说明

4.1 环境要求
  • Docker Engine ≥ 20.10
  • Docker Compose ≥ 2.10(集群部署时)
  • 分布式配置存储(etcd/Consul/ZooKeeper,集群模式必需)
  • 每个节点至少 2 CPU 核心、4GB 内存(生产环境建议 4 CPU/8GB 起)
4.2 基本使用(单节点测试)
4.2.1 启动命令
bash
docker run -d \
  --name timescaledb-patroni-test \
  -p 5432:5432 \
  -e POSTGRES_PASSWORD=StrongPassword123 \
  -e REPLICATION_PASSWORD=ReplPassword456 \
  -e PATRONI_SCOPE=timescale-cluster \
  -e PATRONI_MODE=standalone \
  -v timescaledb-data:/var/lib/postgresql/data \
  timescale/timescaledb-ha:latest
4.2.2 参数说明
  • -p 5432:5432:映射 PostgreSQL 默认端口
  • -v timescaledb-data:/var/lib/postgresql/data:持久化存储数据目录
  • POSTGRES_PASSWORD:数据库管理员(postgres 用户)密码
  • REPLICATION_PASSWORD:复制用户(replicator)密码(用于主从同步)
  • PATRONI_SCOPE:Patroni 集群标识(同一集群需一致)
  • PATRONI_MODE=standalone:单节点模式(非集群)
4.3 集群部署(高可用模式)
4.3.1 前置条件
  • 部署 etcd 集群(示例使用单节点 etcd 测试,生产环境建议 3/5 节点集群):
    bash
    docker run -d \
      --name etcd \
      -p 2379:2379 \
      -e ETCD_LISTEN_CLIENT_URLS=[***] \
      -e ETCD_ADVERTISE_CLIENT_URLS=[***] \
      quay.io/coreos/etcd:v3.5.9
    
4.3.2 Docker Compose 集群配置(主从架构)

创建 docker-compose.yml:

yaml
version: '3.8'

services:
  # 主节点
  patroni-master:
    image: timescale/timescaledb-ha:latest
    container_name: patroni-master
    ports:
      - "5432:5432"
    environment:
      - POSTGRES_PASSWORD=StrongPassword123
      - REPLICATION_PASSWORD=ReplPassword456
      - PATRONI_SCOPE=timescale-cluster
      - PATRONI_MODE=master
      - PATRONI_ETCD_HOSTS=etcd:2379
      - PATRONI_RETRY_TIMEOUT=10
      - PATRONI_INITIAL_CLUSTER_SIZE=2
      - TIMESCALEDB_TELEMETRY=off  # 禁用遥测(可选)
    volumes:
      - master-data:/var/lib/postgresql/data
    depends_on:
      - etcd
    networks:
      - tsdb-network

  # 从节点
  patroni-replica:
    image: timescale/timescaledb-ha:latest
    container_name: patroni-replica
    ports:
      - "5433:5432"  # 避免端口冲突
    environment:
      - POSTGRES_PASSWORD=StrongPassword123
      - REPLICATION_PASSWORD=ReplPassword456
      - PATRONI_SCOPE=timescale-cluster
      - PATRONI_MODE=replica
      - PATRONI_ETCD_HOSTS=etcd:2379
      - PATRONI_RETRY_TIMEOUT=10
      - TIMESCALEDB_TELEMETRY=off
    volumes:
      - replica-data:/var/lib/postgresql/data
    depends_on:
      - etcd
    networks:
      - tsdb-network

  # etcd 配置存储
  etcd:
    image: quay.io/coreos/etcd:v3.5.9
    container_name: etcd
    ports:
      - "2379:2379"
    environment:
      - ETCD_LISTEN_CLIENT_URLS=[***]
      - ETCD_ADVERTISE_CLIENT_URLS=[***]
    volumes:
      - etcd-data:/default.etcd
    networks:
      - tsdb-network

volumes:
  master-data:
  replica-data:
  etcd-data:

networks:
  tsdb-network:
    driver: bridge
4.3.3 启动集群
bash
docker-compose up -d
4.4 核心配置参数说明
4.4.1 Patroni 高可用配置(环境变量)
参数名说明默认值
PATRONI_SCOPE集群唯一标识(所有节点需一致)timescale
PATRONI_MODE节点角色(master/replica/standalone)standalone
PATRONI_ETCD_HOSTSetcd 集群地址(格式:host:port)localhost:2379
PATRONI_RETRY_TIMEOUT故障转移重试间隔(秒)10
PATRONI_INITIAL_CLUSTER_SIZE初始集群节点数(用于自动发现)1
PATRONI_POSTGRESQL_DATA_DIRPostgreSQL 数据目录/var/lib/postgresql/data
4.4.2 TimescaleDB/PostgreSQL 配置(环境变量)
参数名说明默认值
POSTGRES_PASSWORDpostgres 用户密码(必填)-
REPLICATION_PASSWORD复制用户(replicator)密码(必填)-
POSTGRES_DB初始数据库名称postgres
MAX_CONNECTIONS最大连接数100
SHARED_BUFFERS共享内存缓冲区(建议物理内存 1/4)128MB
TIMESCALEDB_AUTO_CREATE_HYPERTABLES是否自动创建时序表on
4.5 故障转移测试
  1. 模拟主节点故障:

    bash
    docker stop patroni-master
    
  2. 观察从节点自动提升: Patroni 会通过 etcd 检测主节点心跳丢失(默认 30 秒内),自动将从节点提升为新主。可通过以下命令验证新主节点:

    bash
    # 进入从节点容器
    docker exec -it patroni-replica bash
    # 查看 Patroni 状态
    patronictl -c /etc/patroni.yml list
    
  3. 恢复原主节点: 重启原主节点后,Patroni 会自动将其作为从节点重新加入集群,同步新主数据:

    bash
    docker start patroni-master
    

五、部署注意事项

  1. 数据持久化:必须通过卷(Volume)挂载 /var/lib/postgresql/data,避免容器重启导致数据丢失。
  2. 密码安全:生产环境需使用强密码,并通过 Docker Secrets 或环境变量文件管理,避免明文暴露。
  3. etcd 高可用:生产环境 etcd 集群需部署 3/5 节点(奇数),防止配置存储单点故障。
  4. 资源配置:根据数据量调整 shared_buffers、work_mem 等参数,建议参考 PostgreSQL 性能调优最佳实践。
  5. 网络隔离:集群节点间需保证网络互通(5432 端口用于复制,2379 端口用于 etcd 通信),生产环境建议配置防火墙规则限制访问。
查看更多 timescaledb-ha 相关镜像 →
timescale/timescaledb logo
timescale/timescaledb
这是一款专为高性能实时分析场景设计的时序数据库,以PostgreSQL扩展的形式提供,能够无缝集成至PostgreSQL生态系统,高效支持时序数据的实时采集、存储与快速分析,为工业监控、物联网数据追踪、金融市场实时指标等场景提供便捷且高性能的数据管理解决方案,满足用户对大规模时序数据实时处理与深度分析的核心需求。
247100M+ pulls
上次更新:未知
coderenvs/timescale logo
coderenvs/timescale
暂无描述
1M+ pulls
上次更新:未知
timescale/pgai-vectorizer-worker logo
timescale/pgai-vectorizer-worker
pgai允许直接在PostgreSQL中开发RAG、语义搜索及其他AI应用
10K+ pulls
上次更新:未知

轩辕镜像配置手册

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式

登录仓库拉取

通过 Docker 登录认证访问私有仓库

Linux

在 Linux 系统配置镜像服务

Windows/Mac

在 Docker Desktop 配置镜像

Docker Compose

Docker Compose 项目配置

K8s Containerd

Kubernetes 集群配置 Containerd

K3s

K3s 轻量级 Kubernetes 镜像加速

Dev Containers

VS Code Dev Containers 配置

MacOS OrbStack

MacOS OrbStack 容器配置

宝塔面板

在宝塔面板一键配置镜像

群晖

Synology 群晖 NAS 配置

飞牛

飞牛 fnOS 系统配置镜像

极空间

极空间 NAS 系统配置服务

爱快路由

爱快 iKuai 路由系统配置

绿联

绿联 NAS 系统配置镜像

威联通

QNAP 威联通 NAS 配置

Podman

Podman 容器引擎配置

Singularity/Apptainer

HPC 科学计算容器配置

其他仓库配置

ghcr、Quay、nvcr 等镜像仓库

专属域名拉取

无需登录使用专属域名

需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

轩辕镜像免费版与专业版有什么区别?

免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。

轩辕镜像支持哪些镜像仓库?

专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等;免费版仅支持 docker.io。

流量耗尽错误提示

当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。

410 错误问题

通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。

manifest unknown 错误

先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。

镜像拉取成功后,如何去掉轩辕镜像域名前缀?

使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。

查看全部问题→

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

用户头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
镜像详情
...
timescale/timescaledb-ha
官方博客Docker 镜像使用技巧与技术博客
热门镜像查看热门 Docker 镜像推荐
一键安装一键安装 Docker 并配置镜像源
咨询镜像拉取问题请 提交工单,官方技术交流群:1072982923
轩辕镜像面向开发者与科研用户,提供开源镜像的搜索和访问支持。所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
咨询镜像拉取问题请提交工单,官方技术交流群:
轩辕镜像面向开发者与科研用户,提供开源镜像的搜索和访问支持。所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
官方邮箱:点击复制邮箱
©2024-2026 源码跳动
官方邮箱:点击复制邮箱Copyright © 2024-2026 杭州源码跳动科技有限公司. All rights reserved.