04月03, 2021

postgresql源码安装与配置

最近需要做系统扩容,将数据库迁移到AWS R6.8xlarge机型上。由于该机型的预置OS是aws定制的redbhat内核,CPU是ARM系列,且postgresql官方没有提供安装源,只能从源代码安装。

由于安装过程比较繁琐,所以将主要步骤和遇到的问题记录下来,以备以后查阅。

安装postgresql 13.2

按照POSTGRES官方提供的步骤操作即可完成安装,make install完成后,开发工具包也已安装 https://www.postgresql.org/docs/13/install-short.html

安装步骤

  1. 配置编译选项

通常打开两个选项

  • 支持python
  • JIT编译,提高查询速度
  • systemd
./configure --with-python --with-llvm
  1. 编译安装

    make & make install
  2. 安装服务启动脚本

    cd ./contrib/start-scripts
    sudo chmod a+x linux
    sudo cp linux /etc/init.d/postgresql
    # 开机自动启动服务
    sudo chkconfig --add postgresql

安装zhparser插件

zhparser是全文搜索插件 https://github.com/amutu/zhparser

make install后,使用bash test.sh检查是否安装成功

可能遇到的问题有:

问题一:错误"cannot open shared object file No such file or directory“

这个问题代表的含义是,可执行程序在加载libxxx.so库时,找不到该库。至于找不到的情况分为两种:系统里根本不存在libxxx.so库;libxxx.so库在系统中存在,但是ld找不到,即libxxx.so库的位置没有告知ld。

解决办法

对于第一种情况,需要将libxxx.so放到系统ld的搜索路径中;对于第二种情况,通过locate工具定位libxxx.so的位置,然后将其放到ld的搜索路径中。

  1. 通过LD_LIBRARY_PATH环境变量指定

    LD_LIBRARY_PATH=/usr/local/pgsql/lib
    export LD_LIBRARY_PATH
  2. 检查已经生成 .so文件架构是否与当前CPU匹配

由于make install不会删除已经生成的.so文件,如果是从其它机器复制过来的文件,将不能使用;需要删除后重新编译

本文链接:http://57km.cc/post/postgresql-install from source code.html

-- EOF --

Comments