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
网友评论