postgresql + timescaledb离线安装笔记(zabbix数据库准备工作)

发布时间 2023-03-30 14:45:41作者: virtualzzf

实验环境

操作系统:centos 7.6
PostgreSQL:14.6
timescaledb:2.8.1
网络:本地无网络

1 编译源码安装

1.1 准备工作

useradd postgres
mkdir /usr/pgsql12/
chown -R postgres:postgres /usr/pgsql12/
mkdir /pgsqlData
chown -R postgres:postgres /pgsqlData

/usr/pgsql12用于防止二进制文件
/pgsqlData挂载数据盘放置数据

1.2 安装依赖包

依赖包可以在 http://www.rpmfind.net/ 预先下载

1.2.1 readline-devel

rpm -ivh ncurses-devel-5.9-14.20130511.el7_4.x86_64.rpm
rpm -Uvh readline-6.2-11.el7.x86_64.rpm
rpm -ivh readline-devel-6.2-11.el7.x86_64.rpm

1.2.2 gcc

rpm -ivh mpfr-3.1.1-4.el7.x86_64.rpm 
rpm -ivh libmpc-1.0.1-3.el7.x86_64.rpm
rpm -ivh cpp-4.8.5-44.el7.x86_64.rpm 
rpm -Uvh libgomp-4.8.5-44.el7.x86_64.rpm
rpm -Uvh libgcc-4.8.5-44.el7.x86_64.rpm
rpm -ivh kernel-headers-3.10.0-1160.el7.x86_64.rpm
rpm -Uvh glibc-common-2.17-317.el7.x86_64.rpm glibc-2.17-317.el7.x86_64.rpm
rpm -ivh glibc-headers-2.17-317.el7.x86_64.rpm
rpm -ivh glibc-devel-2.17-317.el7.x86_64.rpm
rpm -ivh gcc-4.8.5-44.el7.x86_64.rpm

1.2.3 zlib

rpm -ivh zlib-devel-1.2.7-18.el7.x86_64.rpm

1.3 postgresql

1.3.1 准备工作

下载源码文件

chown -R postgres:postgres postgresql-14.6
tar -zxvf postgresql-14.6.tar.gz

1.3.2 编译

进入postgresql-14.6目录

./configure --prefix=/usr/pgsql12/
make 
make install

2 rpm安装

2.1 准备工作

useradd postgres
mkdir /pgsqlData
chown -R postgres:postgres /pgsqlData

2.2 安装

rpm包可以在有网络环境下参考 https://www.postgresql.org/download/linux/redhat/ 预先下载完成

rpm -ivh libicu-50.2-4.el7_7.x86_64.rpm
rpm -ivh postgresql14-libs-14.6-1PGDG.rhel7.x86_64.rpm
rpm -ivh postgresql14-14.6-1PGDG.rhel7.x86_64.rpm
rpm -ivh postgresql14-server-14.6-1PGDG.rhel7.x86_64.rpm

2.3 添加环境变量

在/etc/profile.d目录下新增postgres-env.sh文件,内容为:

export PG_HOME=/usr/pgsql-14
export PATH=$PATH:$PG_HOME/bin
export PGDATA=/pgsqlData

source /etc/profile立即生效

2.4 初始化

initdb -D /pgsqlData/ -k -E utf8

2.5 修改配置文件

修改/pgsqlData/postgresql.conf中

listen_addresses = '*' 
port = 15432
max_connections = 512
data_directory = '/pgsqlData' 
hba_file = '/pgsqlData/pg_hba.conf'
ident_file = '/pgsqlData/pg_ident.conf

2.6 修改socket目录权限

chown postgres:postgres /var/run/postgresql

2.7 启动

使用postgres用户

pg_ctl start

2.8 登录

2.8.1 socket登录

psql -p15432

即可通过socket直接登录

2.8.2 网络登录

/pgsqlData/pg_hba.conf新增:

host    all             postgres        192.168.145.135/32         scram-sha-256

意为允许192.168.145.135/32以postgres访问所有数据库
重启PG

pg_ctl restart

socket登录后:

set password_encryption="scram-sha-256";
alter user postgres password '123';

即可通过 psql -h192.168.145.135 -Upostgres -p15432 -W postgres 登录

3 timescaledb插件

3.1 rpm包安装

rpm包可以参考 https://packagecloud.io/timescale/timescaledb/packages/el/7/timescaledb-2-postgresql-14-2.8.1-0.el7.x86_64.rpm?distro_version_id=140 预先下载

rpm -ivh timescaledb-tools-0.14.2-0.el7.x86_64.rpm
rpm -ivh timescaledb-2-loader-postgresql-14-2.8.1-0.el7.x86_64.rpm
rpm -ivh timescaledb-2-postgresql-14-2.8.1-0.el7.x86_64.rpm
timescaledb-tune --pg-config=/usr/pgsql-14/bin/pg_config 

全部yes即可
重启postgres

4 导入数据

登录PG

create database zabbix;
create user zabbix with password '123';
GRANT ALL PRIVILEGES ON DATABASE zabbix TO zabbix;
\c zabbix;
create EXTENSION IF NOT EXISTS timescaledb;

下载zabbix源码并解压,按照postgres用户设置允许zabbix用户通过ip登录

cd database/postgresql
psql -h192.168.145.135 -Uzabbix -p15432 -W -dzabbix -f ./schema.sql
psql -h192.168.145.135 -Uzabbix -p15432 -W -dzabbix -f ./images.sql 
psql -h192.168.145.135 -Uzabbix -p15432 -W -dzabbix -f ./data.sq
psql -h192.168.145.135 -Uzabbix -p15432 -W -dzabbix -f ./timescaledb.sql  

即可使用