You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何不克隆整机将Docker部署的TimescaleDB迁移到另一台EC2机器

Docker部署TimescaleDB实例迁移方案

前置操作:保证数据一致性

首先停止当前运行的数据库容器,避免运行中拷贝数据导致文件损坏:

docker stop timescaledb

你启动容器时加了--rm参数,停止后容器会自动删除,但所有业务数据都存储在宿主机的/home/ubuntu/pgdata3目录下,不会丢失。

迁移步骤

  • 第一步:迁移数据目录到新EC2实例,可选两种方案:
    1. 数据存储在独立EBS卷:直接在AWS控制台卸载该EBS卷,挂载到新EC2实例并挂载到/home/ubuntu/pgdata3路径,适合大数据量场景,迁移速度最快
    2. 数据存储在实例根盘:用scp或rsync全量拷贝数据目录到新实例对应路径,示例scp命令:
    scp -r /home/ubuntu/pgdata3 ubuntu@新实例公网IP:/home/ubuntu/
    

    注意:数据量较大时可先执行一次rsync增量同步,再停库做最后一次同步,大幅缩短业务停机时间

  • 第二步:新实例环境准备
    1. 安装Docker,确保基础运行环境正常
    2. 执行id ubuntu确认新实例ubuntu用户的UID、GID为1000:1000,和启动命令中的用户参数匹配
    3. 设置数据目录权限:
    sudo chown -R 1000:1000 /home/ubuntu/pgdata3
    
    1. 拉取对应版本的TimescaleDB镜像:
    docker pull timescale/timescaledb-ha:pg13-latest
    
  • 第三步:使用原命令启动服务
    新实例上直接执行你原来的screen启动命令即可:
    screen -dmS i2
    screen -S i2 -X stuff 'docker run -ti --user 1000:1000  -p 5432:5432 --name timescaledb  --volume=/home/ubuntu/pgdata3:/home/postgresql/pgdata --rm -e POSTGRES_PASSWORD=sdjaisiisiauda123114892u3hihi -e PGDATA=/home/postgresql/pgdata timescale/timescaledb-ha:pg13-latest;\n'
    
    启动后可进入screen会话或执行docker logs timescaledb确认服务运行状态、校验数据完整性。

内容的提问来源于stack exchange,提问作者hg628193hg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 16:54:04