TimescaleDB 集群安装部署

news2024/10/2 17:17:20

文章目录

      • 1.安装环境
      • 2.安装TimescaleDB
        • 2.1. 安装PostgreSQL
        • 2.2.安装Timescaledb插件
        • 2.3.配置TimescaleDB
      • 3.集群配置
      • 4.创建数据库
      • 5.测试

  • 开源中间件
# TimescaleDB

https://iothub.org.cn/docs/middleware/
https://iothub.org.cn/docs/middleware/timescale/timescale-deploy-cluster/

1.安装环境

访问节点:172.51.216.81
数据节点:172.51.216.82
数据节点:172.51.216.83
数据节点:172.51.216.84
 
操作系统:centos7.5
数据库:  PostgreSQL11、Timescaledb-v2.0

2.安装TimescaleDB

2.1. 安装PostgreSQL
1.安装EPEL仓库(安装数据库有些包依赖EPEL仓库)
# yum install epel-release
 
2.安装postgresql
# yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
 
# yum install -y postgresql11-server 
 
3.关闭防火墙
firewall-cmd --state                         #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
systemctl stop firewalld.service      #停止firewall
systemctl start firewalld.service      #开启防火墙
systemctl disable firewalld.service  #禁止firewall开机启动
systemctl enable firewalld.service   #开启firewall开机启动
 
4.主库初始化
# /usr/pgsql-11/bin/postgresql-11-setup initdb
 
启动服务 
# systemctl start postgresql-11 
 
服务自启动
# systemctl enable postgresql-11
# systemctl status postgresql-11 
2.2.安装Timescaledb插件
  • 安装TimeScaleDB
cat > /etc/yum.repos.d/timescale_timescaledb.repo <<EOL
[timescale_timescaledb]
name=timescale_timescaledb
baseurl=https://packagecloud.io/timescale/timescaledb/el/$(rpm -E %{rhel})/\$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/timescale/timescaledb/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
EOL
 
# yum update -y
# yum install -y timescaledb-2-postgresql-11
  • 配置Timescaledb
# 运行以下命令以启动配置向导:


# timescaledb-tune --pg-config=/usr/pgsql-11/bin/pg_config --quiet --yes 
 
[root@iZ2ze72jggg737pb9vp1g6Z ~]# timescaledb-tune --pg-config=/usr/pgsql-11/bin/pg_config --quiet --yes
Using postgresql.conf at this path:
/var/lib/pgsql/11/data/postgresql.conf
 
Writing backup to:
/tmp/timescaledb_tune.backup202103291649
 
Recommendations based on 7.64 GB of available memory and 2 CPUs for PostgreSQL 11
shared_preload_libraries = 'timescaledb'# (change requires restart)
shared_buffers = 1955MB
effective_cache_size = 5866MB
maintenance_work_mem = 1001211kB
work_mem = 10012kB
timescaledb.max_background_workers = 8
max_worker_processes = 13
max_parallel_workers_per_gather = 1
max_parallel_workers = 2
wal_buffers = 16MB
min_wal_size = 512MB
default_statistics_target = 500
random_page_cost = 1.1
checkpoint_completion_target = 0.9
max_locks_per_transaction = 64
autovacuum_max_workers = 10
autovacuum_naptime = 10
effective_io_concurrency = 200
timescaledb.last_tuned = '2021-03-29T16:49:56+08:00'
timescaledb.last_tuned_version = '0.11.0'
Saving changes to: /var/lib/pgsql/11/data/postgresql.conf
2.3.配置TimescaleDB
  • 配置数据库
切换用户,设置数据库密码 
# su - postgres
 
$ psql
# ALTER USER postgres with encrypted password 'postgres';
 
postgres=# \q
#-bash-4.2$ exit
  • 修改数据库配置文件
1.修改连接权限
# vim /var/lib/pgsql/11/data/pg_hba.conf
 
# 客户端访问
host    all             all             all                     md5
 
2.修改数据库配置:
# vim /var/lib/pgsql/11/data/postgresql.conf
 
listen_addresses = '*'            # what IP address(es) to listen on;
port = 5432                       # (change requires restart)
 
# 多节点必须配置:
max_prepared_transactions = 150
enable_partitionwise_aggregate = on
  • 重启服务
# systemctl restart postgresql-11
# systemctl status postgresql-11

3.集群配置

1.设置访问节点 
 
# su - postgres
-bash-4.2$ vim /var/lib/pgsql/.pgpass
 
*:*:*:testuser:testuser
*:*:*:postgres:postgres
 
-bash-4.2$ chmod 600  /var/lib/pgsql/.pgpass 
 
2.设置数据节点(三个数据节点)  
在数据节点上编辑身份验证配置文件pg_hba.conf
 
# TYPE  DATABASE        USER            ADDRESS                 METHOD
host    all             all             172.51.216.81/32        trust
host    all             all             all                     md5 
 
重启主库服务
# systemctl restart postgresql-11
# systemctl status postgresql-11  

4.创建数据库

  • 创建数据库(访问节点)
1.创建数据库
CREATE DATABASE multinode;
\c multinode
CREATE EXTENSION timescaledb;
 
2.添加数据节点
在服务器(访问节点:172.51.216.81)
SELECT add_data_node('dn2', host => '172.51.216.82');
SELECT add_data_node('dn3', host => '172.51.216.83');
SELECT add_data_node('dn4', host => '172.51.216.84');
 
3.创建新角色(访问节点创建)
CREATE ROLE testuser WITH LOGIN PASSWORD 'testuser';
CALL distributed_exec($$ CREATE ROLE testuser WITH LOGIN PASSWORD 'testuser' $$);
 
授予该用户访问Postgres的外部服务器对象的权限:
GRANT USAGE ON FOREIGN SERVER dn2, dn3, dn4 to testuser; 
  • 创建分布式超表
SET ROLE testuser;

CREATE TABLE conditions (time timestamptz NOT NULL, device integer, temp float);

SELECT create_distributed_hypertable('conditions', 'time', 'device');

5.测试

# 插入数据
INSERT INTO conditions
SELECT time, (random()*30)::int, random()*80
FROM generate_series('2019-01-01 00:00:00'::timestamptz, '2019-02-01 00:00:00', '1 min') AS time;
 
# 查询
SELECT * FROM conditions; 

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 开源中间件
# TimescaleDB

https://iothub.org.cn/docs/middleware/
https://iothub.org.cn/docs/middleware/timescale/timescale-deploy-cluster/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1505098.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SPI读取TLE5012B编码器角度数据_ACM32G103

买到一个带编码器的电机&#xff0c;卖家留出来读取编码器数据的接口有SPI 具体的原理图如下&#xff1a; P2标注的是SPI的接口&#xff0c;其中MISO和MOSI是硬件连接到一起的 使用ACM32G103的硬件SPI2去读取其角度数据 原理大概如下&#xff1a; 1、先发送读取数据的指令&…

在colab上训练YOLOv5

在colab上训练YOLOv5 参考链接&#xff1a;知乎 牛头检测 1.首先在自己的本地电脑上下载YOLO 新建一个文件夹YOLO&#xff0c;输入以下命令下载压缩包&#xff1a; cmd git clone https://github.com/ultralytics/yolov5.git2.将YOLO压缩包上传到colab 首先在colab上新建一…

CSS中有哪些方式可以隐藏页面元素(区别详解)

文章目录 一、前言二、实现方式display:nonevisibility:hiddenopacity:0设置height、width属性为0position:absoluteclip-path小结 三、区别参考文献 一、前言 在平常的样式排版中&#xff0c;我们经常遇到将某个模块隐藏的场景 通过css隐藏元素的方法有很多种&#xff0c;它…

STM32驱动W5500作为客户端进行通讯

STM32驱动W5500作为客户端进行通讯 模块简介引脚说明接线代码部分代码测试是否通讯成功 模块简介 SR-ES1内嵌Wiznet的W5500芯片&#xff0c;使用硬件逻辑门电路实现TCP/IP协议栈的传输层及网络层&#xff08;如&#xff1a;TCP&#xff0c;UDP&#xff0c;ICMP&#xff0c;IPv…

Linux:非常实用的Linux命令

非常实用的Linux命令 系统服务管理 systemctl systemctl命令是Systemd系统和服务管理器的一部分&#xff0c;用于控制systemd系统和服务管理器。Systemd是大多数最新的Linux发行版使用的初始化系统和服务管理器&#xff0c;它用于启动守护进程并管理它们的运行。systemctl提…

element-ui plus v2.60 终于修复了 radio checkbox 取值不明确的问题,label value 值

element-ui plus v2.60 终于修复了 radio checkbox 取值不明确的问题&#xff0c;label value 值 昨天想反馈这个关于 label 和 value 的问题的时候&#xff0c;发现新版本已经修正这个问题了。 一、ElementUI 旧版关于 label 和 value 的问题 从之前 element-ui 用过来的&a…

第十一篇 - 应用于市场营销视频场景中的人工智能和机器学习技术 – Video --- 我为什么要翻译介绍美国人工智能科技巨头IAB公司(1)

IAB平台&#xff0c;使命和功能 IAB成立于1996年&#xff0c;总部位于纽约市。 作为美国的人工智能科技巨头社会媒体和营销专业平台公司&#xff0c;互动广告局&#xff08;IAB- the Interactive Advertising Bureau&#xff09;自1996年成立以来&#xff0c;先后为700多家媒体…

论文阅读《FENET: FOCUSING ENHANCED NETWORK FOR LANE DETECTION》

ABSTRACT 受人类驾驶专注力的启发&#xff0c;这项研究开创性地利用聚焦采样&#xff08;Focusing Sampling&#xff09;、部分视野评估&#xff08;Partial Field of View Evaluation&#xff09;、增强型 FPN 架构和定向 IoU 损失&#xff08;Directional IoU Loss&#xff…

【Pytorch】新手入门:基于sklearn实现鸢尾花数据集的加载

【Pytorch】新手入门&#xff1a;基于sklearn实现鸢尾花数据集的加载 &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&#x1f448; 希望…

递归、搜索与回溯算法简介

何为递归&#xff1a;递归就是递去归来&#xff0c;函数自己调用自己的情况。 不在意递归的细节展开图 把递归的函数当成黑盒&#xff08;给黑盒一个东西&#xff0c;它就能完成想要的事&#xff09; 相信黑盒一定能完成这个任务 深度优先遍历和深度优先搜索都是指一个东西dfs…

STM32---通用定时器(一)理论基础

写在前面&#xff1a;在STM32F103中有众多的定时器&#xff0c;其中包括两个基本定时器&#xff0c;基本定时器的内容已经在上节进行了介绍&#xff0c;基本定时器的功能、结构、使用都较为简单。而STM32F1中还含有4个通用定时器&#xff08;TIM2\3\4\5&#xff09;,这些定时器…

So you think you understand IP fragmentation?

文章目录 前言一、Why care?二、Prevention三、Well-understood?四、Introducing fragquiz五、A novel (?) algorithm六、Reader challenge七、traceroute八、ICMP参考资料 前言 本文来自&#xff1a;https://lwn.net/Articles/960913/ February 7, 2024This article was …

数据库的基本数据类型

基本数据类型之整型 【1】整型的分类 tinyint smallint mediumint int bigint 【2】整型的符号 符号不是用来限制位数的而是用来控制显示长度的 【3】tinyint 是否带符号 默认情况下是带符号, 默认带的符号是 号 超出最大范围 超出会报错 【4】unsigned(无符号) 每…

【C语言】文件操作篇-----程序文件和数据文件,文件的打开和关闭,二进制文件和文本文件,fopen,fclose【图文详解】

欢迎来CILMY23的博客喔&#xff0c;本篇为【C语言】文件操作篇-----程序文件和数据文件&#xff0c;文件的打开和关闭&#xff0c;二进制文件和文本文件【图文详解】&#xff0c;感谢观看&#xff0c;支持的可以给个一键三连&#xff0c;点赞关注收藏。 前言 在了解完动态内存管…

【PHP安全】PHP伪协议

PHP伪协议&#xff1a; file:// #访问本地文件系统http:// #访问HTTPs网址ftp:// #访问ftp URLphp:// #访问输入输出流zlib:// #压缩流data:// #数据&#xff08;RFC 2397&#xff09;ssh2:// #security shell2expect:// #处理交互式的流glob:// #查找匹配的文件路径phar:// #P…

【神经网络与深度学习】深度神经网络(DNN)

概述 深度神经网络&#xff08;Deep Neural Networks&#xff0c;DNN&#xff09;是一种由多个隐藏层组成的神经网络模型。每个隐藏层由多个神经元组成&#xff0c;这些神经元通过权重和激活函数进行信息传递和计算。 深度神经网络通过多层的非线性变换&#xff0c;可以学习到…

狂雨CMS-采集规则(novelfull.com)

1. 填写采集规则的基本信息 首先点击采集管理中的添加按钮来新建规则&#xff1a; 然后进入到信息页面填写&#xff0c;包括&#xff1a; 规则名称&#xff1a;一般以要采集的源站名命名。 网站编码&#xff1a;默认自动检测即可。 类型&#xff1a;根据网站类型来选择&#x…

遗传算法(GA)求解基于栅格地图的机器人最优路径规划,可以自行修改地图(提供MATLAB代码)

通过栅格法建立栅格地图作为机器人路径规划的工作环境,采用遗传算法作为机器人路径搜索的规则.将所有机器人放置于初始位置.经过NC次无碰撞迭代运动找到最优路径.到达目标位置.为防止机器人在路径搜索过程中没有达到最大迭代次数时路径大小已不发生变化而陷入局部最优。 一、部…

个人博客系列-后端项目-RBAC角色管理(6)

修改上一篇文章创建的用户表 ## 用户表 from django.contrib.auth.hashers import make_password, check_password from django.contrib.auth.models import AbstractBaseUserclass User(AbstractBaseUser):username models.CharField(max_length255, uniqueTrue, verbose_na…

day-18 猜数字游戏

1.由于两个数字位数相同&#xff0c;所以可以遍历字符串吧&#xff0c;找出公牛个数 2.在通过两个数组分别统计两个数字0-9的个数 3.Math.min(arr1[i],arr2[i])即为对应数字的奶牛个数 code class Solution {public String getHint(String secret, String guess) {int arr1[]n…