失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > postgresql12-timescaleDB多节点部署安装

postgresql12-timescaleDB多节点部署安装

时间:2020-12-07 08:07:10

相关推荐

postgresql12-timescaleDB多节点部署安装

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 /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

配置环境变量

root用户环境变量配置:

su - rootcd ~echo 'PGHOME=/usr/pgsql-12export PGHOMEPATH=$PATH:$PGHOME/binexport PATHPGDATA=/var/lib/pgsql/12/dataexport PGDATA' >> .bash_profile

立即生效环境变量 & 检查是否生效

# source .bash_profile# echo $PGHOME && echo $PGDATA

postgres用户环境变量配置:

$ su - postgres$ cd ~echo 'PGHOME=/usr/pgsql-12export PGHOMEPATH=$PATH:$PGHOME/binexport PATHPGDATA=/var/lib/pgsql/12/dataexport PGDATA' >> .bash_profile

立即生效环境变量 & 检查是否生效

$ source .bash_profile$ echo $PGHOME && echo $PGDATA

修改数据库配置(所有节点)

vim /var/lib/pgsql/12/data/postgresql.conf

listen_addresses = ‘*’ #数据库服务监听IP地址,默认只监听localhost,外部无法访问。

max_connections = 5000 #默认100,连接数限制根据实际业务需求修改

vim /var/lib/pgsql/12/data/pg_hba.conf

末尾添加下面内容,不限制任何主机并允许远程登录以及信任节点的无密码访问:(以数据节点2为例,添加主节点无需密码就可以访问当前节点,其他数据节点也可以无需密码访问,其余的访问需要密码)

Host all all node1的IP/0trustHost all all node3的IP/0trusthost 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 /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

下载地址:/timescale/timescaledb/releases?page=1

本次安装版本为2.5.2

解压

tar -zxvf timescaledb-2.5.2.tar.gz

安装

cd timescaledb-2.5.2

./bootstrap

!此处可能会提示cmake(版本需要大于3.1)

cd ./build && make

make install

4.安装Cmake(没有提示就跳过此节)

下载地址/download/

tar -zxvf cmake-3.23.0-rc2.tar.gz

安装

cd cmake-3.23.0-rc2./bootstrapgmakemake install

5.为postgresql添加timescaleDB扩展

#修改PG配置文件

vim /var/lib/pgsql/12/data/postgresql.conf

找到shared_preload_libraries 去掉注释添加值为 timescaledb(如果有多个用逗号隔开)

重启数据库(所有节点) systemctl restart postgresql-12

6.从访问节点添加数据节点

#添加数据节点(数据节点不需要创建数据库)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 都为外部服务器由此得出,访问节点并不做存储服务

转载请注明出处

如果觉得《postgresql12-timescaleDB多节点部署安装》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。