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= \ #密码!
-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 

你可能感兴趣的:(2020-12-13 docker部署timescaledb)