一、安装环境

   操作系统:银河麒麟v10 spx86_64

   内核版本:4.19.90-23.8.v2101.ky10

   PostgreSQL版本:11.16

二、安装过程

2.1 下载源码包

    创建目录 mkdir -p /tools/postgresql

   wget https://ftp.postgresql.org/pub/source/v11.16/postgresql-11.16.tar.gz -P /tools/postgresql  

2.2 安装依赖包及准备

   yum -y install openssl-devel libxml2-devel libxslt-devel python-devel cmake gcc-c++ zlib-devel bzip2 readline-devel expect git uuid-devel systemd-devel gcc automake autoconf libtool make vim wget

创建用户:

useradd postgres

修改密码:

echo "PGsql@123456" | passwd --stdin postgres

创建安装目录及修改权限

mkdir -p /usr/local/postgresql

 chown -R postgres:postgres /usr/local/postgresql

2.3源码编译安装

   2.3.1 解压源码包  

cd /tools/postgresql

tar -xvf postgresql-11.16.tar.gz

   2.3.2 执行configure

    cd postgresql-11.16/

    ./configure \

        --prefix=/usr/local/postgresql \

        --with-pgport=5432 \

        --with-openssl \

        --with-libxml \

        --with-libxslt \

        --with-ossp-uuid \

        --with-systemd

   2.3.3 编译

        gmake -j 8 world

   2.3.4 安装

        gmake install-world

   备注:

1.编译时使用了gmake world和gmake install-world, 表示安装所有插件

2./configure编译参数详解:

--prefix     指定安装目录。

--bindir     指定可执行程序的目录

--sysconfdir     默认设置各种配置文件的目录。

--libdir          设置安装库和动态可加载模块的位置。

--includedir     设置安装C和C ++头文件的目录

--datarootdir     设置各种类型的只读数据文件的根目录。share目录。

--datadir         设置已安装程序使用的只读数据文件的目录。默认值为DATAROOTDIR。

--localedir       设置用于安装区域设置数据的目录。默认值为DATAROOTDIR/locale。

--mandir     PostgreSQL附带的手册页将安装在这个目录下. man目录。

--docdir          设置安装文档文件的根目录。

--htmldir   PostgreSQL的HTML格式文档将安装在此目录下。默认值为DATAROOTDIR。

--with-extra-version = STRING   将STRING附加到PostgreSQL版本号

--with-libraries    用于搜索库。

--enable-nls        启用本机语言支持(NLS),即以英语以外的语言显示程序消息的功能。

--with-pgport       设置为服务器和客户端的默认端口号。默认值为5432。

--with-perl     支持perl语言。

--with-python       支持python语言。

--with-TCL     支持PL/Tcl语言。

--with-tclconfig    包含构建与Tcl接口的模块所需的配置信息。

--with-GSSAPI       构建支持GSSAPI身份验证。

--with-openssl     构建支持SSL(加密)连接

--with-pam     使用PAM(可插入身份验证模块)支持构建.

--with-ldap     使用LDAP支持构建身份验证和连接参数查找.

--without-readline 禁用psql中的命令行编辑和历史记录 .

--with-libedit-preferred        有利于使用BSD许可的libedit库.默认使用Readline。

--with-bonjour 使用Bonjour支持构建

--with-uuid=LIBRARY 使用指定的UUID库构建uuid-ossp模块.

--with-libxml 使用libxml构建(启用SQL/XML支持).

--with-libxslt 在构建xml2 模块时使用libxslt 。xml2依赖于此库来执行XML的XSL转换。

--disable-integer-datetimes      禁用对时间戳和间隔的64位整数存储的支持,并将日期时间值存储为浮点数。

--disable-float4-byval      禁用“按值”传递float4值,导致它们“通过引用”传递。此选项会降低性能.

--disable-float8-byval      禁用“按值”传递float8值,导致它们“通过引用”传递。此选项会降低性能.

--with-segsize=SEGSIZE   

设置段大小,以千兆字节为单位。大表分为多个操作系统文件,每个文件的大小等于段大小

--with-blocksize=BLOCKSIZE  

设置块大小,以千字节为单位。这是表中的存储单元和I / O. 默认值为8千字节

--with-wal-segsize=SEGSIZE  

设置WAL段大小,以兆字节为单位。这是WAL日志中每个文件的大小。

调整此大小以控制WAL日志传送的粒度可能很有用。默认大小为16兆字节。该值必须是1到64(兆字节)之间的2的幂.

--with-wal-blocksize=BLOCKSIZE

设置WAL块大小,以千字节为单位。这是WAL日志中的存储和I / O单位。默认值为8千字节.该值必须是1到64(兆字节)之间的2的幂.

--disable-spinlocks        禁用环形锁。

--disable-thread-safety    禁用线程安全,禁用客户端库的线程安全性。

--with-system-tzdata=DIRECTORY

PostgreSQL包含自己的时区数据库,它需要日期和时间操作.默认与linux时区兼容。

--without-zlib  防止使用Zlib 库。

--enable-debug   使用调试符号编译所有程序和库。

--enable-depend  启用自动依赖关系跟踪。

--enable-dtrace   编译PostgreSQL,支持动态跟踪工具DTrace。

--enable-tap-tests  使用Perl TAP工具启用测试。

三、初始化数据

  3.1 配置环境变量

vim /etc/profile.d/pgdb.sh

        export PGDATA=/usr/local/postgresql/data

        export PATH=/usr/local/postgresql/bin:$PATH

source /etc/profile.d/pgdb.sh

    3.2 初始化数据

 su - postgres

/usr/local/postgresql/bin/initdb -D /usr/local/postgresql/data --encoding=UTF8 --lc-collate=en_US.UTF-8 --lc-ctype=en_US.UTF-8

    3.3 启动postgresql数据库

        /usr/local/postgresql/bin/pg_ctl -D /usr/local/postgresql/data -l logfile start

四、验证

   查看当前数据库版本

附:银河麒麟v10 sp1 arm服务器 postgresql 11.16的rpm安装包已经上传网盘,减轻了编译安装的时间及调试  https://pan.baidu.com/s/1PPj3DGfJ7jd8kmVxScEaEA 提取码: p49h 
 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐