timescaledb的多节点模式已经推出很长时间,国内一直没有发布相关的教程,timescaledb官网上关于安装部署说的也不是很清楚,故此自己做了一版教程,也走了几个坑,有问题也可以问。
1.硬件环境
三台Centos7 虚拟机 IP为 (node1) 192.168.1.135 主节点 (node2) 192.168.1.136 数据节点 (node3) 192.168.1.137 数据节点 2.软件环境安装 1.系统配置
关闭防火墙(所有节点)
关闭防火墙
systemctl stop firewalld systemctl disable firewalld
关闭SELINUX(所有节点) sed -i “s/SELINUX=enforcing/SELINUX=disabled/g” /etc/selinux/config cat /etc/selinux/config | grep SELINUX=disabled
立即生效 setenforce 0
安装系统依赖包 yum install -y libicu systemd-sysv vim wget readline readline-devel zlib zlib-devel openssl openssl-devel pam-devel libxml2-devel libxslt-devel python-devel tcl-devel gcc gcc-c rsync
2.分别为每台节点安装PG-12(官方下载地址链接)
PG下载地址
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo yum install -y postgresql12-server sudo /usr/pgsql-12/bin/postgresql-12-setup initdb sudo systemctl enable postgresql-12 sudo systemctl start postgresql-12
代码语言:javascript复制配置环境变量 root用户环境变量配置:
su - root
cd ~
echo ' PGHOME=/usr/pgsql-12 export PGHOME PATH=$PATH:$PGHOME/bin export PATH PGDATA=/var/lib/pgsql/12/data export PGDATA ' >> .bash_profile
立即生效环境变量 & 检查是否生效
代码语言:javascript复制# source .bash_profile
# echo $PGHOME && echo $PGDATA
postgres用户环境变量配置:
代码语言:javascript复制$ su - postgres
$ cd ~
echo ' PGHOME=/usr/pgsql-12 export PGHOME PATH=$PATH:$PGHOME/bin export PATH PGDATA=/var/lib/pgsql/12/data export PGDATA ' >> .bash_profile
立即生效环境变量 & 检查是否生效
代码语言:javascript复制$ source .bash_profile
$ echo $PGHOME && echo $PGDATA
代码语言:javascript复制修改数据库配置(所有节点)
vim /var/lib/pgsql/12/data/postgresql.conf
代码语言:javascript复制listen_addresses = ‘*’ #数据库服务监听IP地址,默认只监听localhost,外部无法访问。 max_connections = 5000 #默认100,连接数限制根据实际业务需求修改
vim /var/lib/pgsql/12/data/pg_hba.conf
末尾添加下面内容,不限制任何主机并允许远程登录以及信任节点的无密码访问:(以数据节点2为例,添加主节点无需密码就可以访问当前节点,其他数据节点也可以无需密码访问,其余的访问需要密码)
代码语言:javascript复制Host all all node1的IP/0 trust
Host all all node3的IP/0 trust
host all all 0.0.0.0/0 md5
node2
node3
设置postgres用户密码 su – postgres psql -U postgres postgres=# ALTER USER postgres with encrypted password ‘123456’; #测试密码比较简单 postgres=# du postgres=# l postgres=# dn
3.安装timescaleDB(注意的是一定要下载2.0以上的版本,从2.0开始支持多节点的timescaledb)
安装PG开发包 yum install -y postgresql12-devel
!如果出现异常
llvm的版本不够高所以进行升级 yum install centos-release-scl-rh wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm yum localinstall epel-release-latest-7.noarch.rpm yum install llvm5.0 llvm5.0-devel clang #重新执行yum install -y postgresql12-devel 安装timescaledb 下载地址:https://github.com/timescale/timescaledb/releases?page=1 本次安装版本为2.5.2
解压
代码语言:javascript复制tar -zxvf timescaledb-2.5.2.tar.gz
安装 cd timescaledb-2.5.2
代码语言:javascript复制./bootstrap
!此处可能会提示cmake(版本需要大于3.1)
代码语言:javascript复制cd ./build && make
代码语言:javascript复制make install
4.安装Cmake(没有提示就跳过此节) 下载地址https://cmake.org/download/
代码语言:javascript复制tar -zxvf cmake-3.23.0-rc2.tar.gz
安装
代码语言:javascript复制cd cmake-3.23.0-rc2
./bootstrap
gmake
make install
5.为postgresql添加timescaleDB扩展 #修改PG配置文件
代码语言:javascript复制vim /var/lib/pgsql/12/data/postgresql.conf
找到shared_preload_libraries 去掉注释添加值为 timescaledb(如果有多个用逗号隔开) 重启数据库(所有节点) systemctl restart postgresql-12
6.从访问节点添加数据节点
代码语言:javascript复制#添加数据节点(数据节点不需要创建数据库)
SELECT add_data_node('node5','192.168.1.136','example',5432, false,true,'123456')
SELECT add_data_node('node6','192.168.1.137','example',5432, false,true,'123456')
SELECT * FROM "hypertable_data_node" #查询数据节点
#创建分布式表(提前创建普通表)自动创建到数据节点。
SELECT create_distributed_hypertable('temp', 'timestamp', 'deviceId');
查看 _timescaledb_internal 模式下的chunk 都为外部服务器由此得出,访问节点并不做存储服务
转载请注明出处
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/184557.html原文链接:https://javaforall.cn