2020-12-13 docker部署timescaledb

timescaledb是基于postgresql数据库的一个时序数据库,是采用插件形式实现的。

最方便的方式是采用docker进行部署。

运行docker前

目录准备

我的电脑有/data目录和/mirror目录,其中/data挂载的是普通硬盘,/mirror目录是使用LVM形成的raid1。

计划在/mirror中存放数据库,同时archive到/data硬盘中。

命令

sudo mkdir -pv /data/archive/tsdb_backup  #basebackup目录

sudo mkdir -pv /data/archive/tsdb_wal #wal archive目录

sudo mkdir -pv /mirror/timescaledb/pgdata # timescaledb目录

sudo docker pull timescale/timescaledb-postgis:latest-pg12 # 我要同时使用postgis功能

运行docker

启动容器

sudo docker run -d \ #detached
--name timescaledb \ #名字
-p 10003:5432 \ #端口映射
-e POSTGRES_PASSWORD=<password> \ #密码!
-e TS_TUNE_MEMORY=2GB \ # 内存
-e TS_TUNE_NUM_CPUS=2 \ # CPU个数
-v /mirror/timescaledb/pgdata:/var/lib/postgresql/data \ # 数据库位置
-v /data/archive:/archive \ # 备份文件位置
--restart always \ # 自动重启
timescale/timescaledb-postgis:latest-pg12 # 镜像

修改配置

psql的wal archiving需要激活$PGDATA/postgresql.conf中的三个设置:

1. wal_level,必须是replica或更高,大于版本10是默认replica

2. archive_mode,设置为on

3. archive_command,设置为保存wal记录到备份的地方

命令如下:

sudo vim /mirror/timescaledb/pgdata/postgresql.conf #修改上述三处。

重启生效

sudo docker restart timescaledb #重启!

全量备份

此外,还有一个pg_basebackup做全量备份,备份到备份目录;

sudo docker exec -it timescaledb pg_basebackup -U postgres -D /archive/tsdb_backup -Fp 

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容