实验环境
操作系统: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挂载数据盘放置数据,可以通过SHOW data_directory;
查询
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 初始化
切换至postgres用户
initdb -D /pgsqlData/ -k -E utf8
2.5 修改配置文件
修改/pgsqlData/postgresql.conf中
listen_addresses = '*'
port = 5432
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 -p5432
即可通过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 -p5432 -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 -p5432 -W -dzabbix -f ./schema.sql
psql -h192.168.145.135 -Uzabbix -p5432 -W -dzabbix -f ./images.sql
psql -h192.168.145.135 -Uzabbix -p5432 -W -dzabbix -f ./data.sq
psql -h192.168.145.135 -Uzabbix -p5432 -W -dzabbix -f ./timescaledb.sql
即可使用