暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Ubuntu 24.04 源码部署timescaledb

原创 高云龙 2025-04-24
566

环境准备

操作系统版本:24.04.2 LTS (Noble Numbat)
PostgreSQL版本:16.8
timescaledb版本:2.19.3

服务器设置

关闭防火墙

--查看防火墙状态
# ufw status

--关闭防火墙
# ufw stop && ufw disable

--查看SELinux状态(Enforcing:安全策略正在执行; Permissive:不执行安全策略,但会记录警告; Disabled: 已关闭)
# getenforce

--关闭SELinux
setenforce 0 && sed -i 's/^SELINUX=.*$/SELINUX=disable/g' /etc/selinux/config

设置时区

时钟同步

设置字符集

# locale
# echo 'LANG="en_US.UTF-8"' > /etc/locale.conf

系统参数设置

安装依赖包

apt -y install gcc g++ libreadline-dev libreadline8t64 zlib1g-dev zlib1g libicu-dev

创建系统用户及目录

# groupadd postgres
# useradd -g postgres postgres -m -s /bin/bash
# mkdir -p /data/pgdata16 /opt/software /opt/app && chown -R postgres: /data/pgdata16 /opt/app

部署PG单机

官网现在PG源码安装包

本地解压编译

# tar -zxvf /opt/software/postgresql-16.8.tar.gz -C /opt/app
# cd /opt/app/postgresql-16.8/
# ./configure --prefix=/app/pg16
# make -j 8 && make install-world -j 8
# ln -s /opt/app/pg16 /opt/app/pgsql && chown -R postgres: pg16 pgsql

配置环境变量

# su - postgres
$ echo 'export PATH=$PATH:/opt/app/pgsql/bin' >> ~/.bashrc
$ echo 'export PGDATA=/data/pgdata16' >> ~/.bashrc
$ echo 'export PGHOST=/tmp' >> ~/.bashrc
$ source ~/.bashrc

初始化数据库

$ initdb -D /data/pgdata16/

配置数据库参数(参考)

listen_addresses = '*'
port = 5432
max_connections = 1000 --(按实际需要)
max_prepared_transactions=1000
shared_buffers = 32GB  --(数据库服务器内存的1/4)
work_mem = 64MB
maintenance_work_mem = 2GB
autovacuum_work_mem = -1
wal_level = replica
synchronous_commit = on
full_page_writes = on
wal_log_hints = on
archive_mode = on       --(必须打开)
archive_command = 'cp %p /data/pgarchive/%f'
autovacuum = on
logging_collector = on
log_min_duration_statement = 1000
log_checkpoints = on
log_connections = on
log_disconnections = on
log_duration = on
log_lock_waits = on
log_statement = 'mod'
log_line_prefix = '%m %d %u %r %a %p v%'
idle_in_transaction_session_timeout = 10000
lc_messages = 'en_US.UTF-8'
lc_monetary = 'en_US.UTF-8'
lc_numeric = 'en_US.UTF-8'
lc_time = 'en_US.UTF-8'

启动数据库

pg_ctl start -D /data/pgdata16/

添加timescaledb

官网下载timescaledb安装包

安装编译依赖包

apt -y install cmake

本地解压编译

# tar -zxvf timescaledb-2.19.3.tar.gz
# chown -R postgres: timescaledb-2.19.3
# cd timescaledb-2.19.3/
# su - postgres
$ cd /opt/software/timescaledb-2.19.3/
$ whereis pg_config
pg_config: /opt/app/pg16/bin/pg_config

$ ./bootstrap -DGP_CONFIG=/opt/app/pg16/bin/pg_config -DUSE_OPENSSL=0
$ cd ./build && make && make install

配置数据库参数

vi $PGDATA/postgresql.conf  
shared_preload_libraries = 'timescaledb'

重启数据库

$ pg_ctl -D /data/pgdata16 restart

安装扩展

$ psql
psql (16.8)
Type "help" for help.

postgres=# \dx
                 List of installed extensions
  Name   | Version |   Schema   |         Description
---------+---------+------------+------------------------------
 plpgsql | 1.0     | pg_catalog | PL/pgSQL procedural language
(1 row)

postgres=# select * from pg_available_extension_versions() where name='timescaledb';
    name     | version | superuser | trusted | relocatable | schema | requires |                              comment
-------------+---------+-----------+---------+-------------+--------+----------+-------------------------------------------------------------------
 timescaledb | 2.19.3  | t         | t       | f           |        |          | Enables scalable inserts and complex queries for time-series data

postgres=# create extension timescaledb ;
CREATE EXTENSION
postgres=# \dx
                                                List of installed extensions
    Name     | Version |   Schema   |                                      Description
-------------+---------+------------+---------------------------------------------------------------------------------------
 plpgsql     | 1.0     | pg_catalog | PL/pgSQL procedural language
 timescaledb | 2.19.3  | public     | Enables scalable inserts and complex queries for time-series data (Community Edition)

添加备节点

请参考PostgreSQL 数据库安装部署

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论