windows和Linux环境下安装timescaleDB

一.windows环境下安装timescaledb

1.准备工作

        a.安装java开发工具包JDK

        b.下载安装PostgreSql 

        安装好后,需配置环境变量

        c.下载安装timescaleDB

2.java连接使用timescaleDB

        a.导入Postgresql JDBC驱动

        手动倒入postgresql jdbc jar 包或者引入其依赖

        b.编写数据库连接串

二.linux 环境下安装timescaledb(使用docker在172环境离线安装postgres+timescale)

1.确保172环境存在docker容器,可用命令:docker ps 、docker info、 docker version查看

ps: docker images  --查看已有的镜像

  2.  将在外网下载的timescale镜像丢到172服务器上(注意这个目录权限),然后把XX.tar归档文件恢复成镜像

  具体步骤:

  ①找一台能连外网的docker,拉取timescale镜像

命令:docker pull timescale/timescaledb

拉好后最好查看下:docker images

拉取以后最后启动镜像,验证镜像是否有用

   ②将该镜像归档,并丢到172服务器上

      镜像归档命令:docker save image > /root/image.tar

   ③在172服务器上恢复该镜像,命令如下:docker load -i image.tar(我的是 docker load -i timscale.tar)

ps:

如何将文件上传到172服务器:通过git.bash 使用命令:scp timscale.tar [email protected]:/home/maven/wx    将文件上传到172

   ④这样内网172上就有了timescale镜像(可用docker images查看),然后运行timescale镜像,命令如下:

docker run -d --name timescaledb -p 54321:5432 -e POSTGRES_PASSWORD=timescale timescale/timescaledb:latest-pg14

(前提是先建执行命令:mkdir -p /home/data/pgdata/  mkdir -p /var/lib/postgresql/data )

docker run -d --name timescaledb -p 54321:5432 -v /home/data/pgdata/:/var/lib/postgresql/data -e POSTGRES_PASSWORD=timescale timescale/timescaledb:latest-pg14

   出现一串数字表示镜像运行成功:

   ⑤最好指定数据目录和配置文件

    在④中 -v参数已经指定了源数据目录,就不需要在单独指定

    可使用docker volume ls 查看已经存在的dockers数据卷

   ⑥进入容器并连接pg数据库,命令:docker exec -it timescaledb psql -U postgres

可使用命令:\dx查看安装的插件

                      \l查看数据库

 使用:create database demo_wx  --创建一个数据库测试下

   ⑦至此,timescale数据库安装成功且已启动

ps:使用docker ps/docker ps -a 查看启动的镜像

        使用docker exec -it "容器id/或者名字"  /bin/bash    进入到已经运行的容器

        使用ctrl+D 退出容器

如果没有权限操作某个命令就在前面加上 sudo。


补充:

1.杀掉docker 容器里的进程:

①查看容器中的进程:

docker exec timescaledb ps -ef

docker top timescaledb

②进入该容器,停掉该进程

  Kill pid

③查看进程是否被关掉

docker ps -a|grep timescaledb

2.删除容器命令:

docker rm -f  timescaledb

3.查日志命令:

docker logs timescaledb

遇到的问题:

1.在88台服务器上(生产环境)遇到timescaledb容器能创建,但是无法启动,如下图:

 原因是:防火墙是关着的(命令:systemctl status firewalld -- 查看防火墙状态)

解决方案:打开防火墙即可(命令:systemctl start firewalld)

 2.容器时间不对

#修改容器的时间域宿主机一致

docker exec -u root -it mariadb /bin/bash
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

三.timescaledb进阶

1.timiescale是时序数据库,一般在物联网环境下使用较多

2.timescaleDB数据结构

windows和Linux环境下安装timescaleDB_第1张图片

3. 数据自动按时间和空间分区(chunk)

4.程序通过超表与数据交互,但是postgresql存储具体的数据

Hypertables and Chunks(超表和块),在一个更高的水平,数据库暴露了一个抽象的连续表格:一个元表格,横跨所有的空间和时间间隔,这样可以通过普通的SQL语句查询数据,一个元表格使用标准的带有列名称和类型的模型。

5.在timescaledb创建Hypertable是两个SQL命令:创建表(使用标准的SQL语法),其次选择create_hypertable()

参考资料:windows安装timescaledb_Loraine丶的博客-CSDN博客_timescaledb windows安装

你可能感兴趣的:(时序数据库,数据库)