首先,来一张pg官网截图,名曰世界上功能最强大的开源关系型数据库。
PostgreSQL以其强大的功能、活跃的社区、开放的开源协议,以及稳定可靠等优点得以在通信、政府机构乃至金融等行业广泛应用。功能上和Oracle具有极高的兼容性,而且是目前唯一能做到数据零丢失的开源数据库产品,适用OLTP在线交易类和OLAP报表分析类系统。
PS:本文目的在于对pg进行兴趣学习。
一、基础环境介绍:
宿主机:Windows2010 8G
虚拟机:VMware-Linux centos7.6
pg版本:postgresql-v11.5
二、postgresql的版本介绍:
1.DB版本介绍
当前共享的pg大版本有:v12、11.5、11.4、10.9、9.6.15、9.5.18、9.4.23、9.3,其中9.3版本已经停止更新支持。本文使用11.5版本。
从10版本开始,版本号的第一位代表大版本号,第二位代表小版本号。
2.如何获取DB安装介质
2.1.发行版:Linux Redhat平台:https://www.postgresql.org/download/linux/redhat/
2.2.源码版:https://www.postgresql.org/ftp/source/
三、安装前配置:
1.操作系统环境配置
是否关闭防火墙和selinux,根据各自系统资源配置的实际情况,修改sysctl.conf和limits.conf,进行相应的内核参数和资源限制调整。
2. 环境变量和pg属主用户
2.1 创建postgres用户
# useradd postgres
2.2 编辑pg用户环境变量
vi .bash_profile添加内容如下:
export PS1="[$USER@`/bin/hostname -s`]$"
export PGUSER=postgres
export PGDATABASE=postgres
export PGPORT=5432
export PGDATA=/aken/data/pgsql/1105/data
export PGHOME=/aken/dbapp/pgsql/1105
export PGLOCALEDIR=$PGHOME/share/locale
export LD_LIBRARY_PATH=$PGHOME/lib:/lib64:/usr/lib64:/usr/local/lib64:/lib:/usr/lib:/usr/local/lib:$LD_LIBRARY_PATH
export PATH=$PGHOME/bin:$PATH:.
export MANPATH=$PGHOME/share/man:$MANPATH
export LANG=en_US.utf8
export DATA=`date +"%Y%m%d%H%M"`
四、编译源码安装:
1. 源码安装一般由3个步骤组成:root用户执行。
1).配置:configure
2).编译:make
3).安装:make install
2.获取源码包并解压:
[postgres@akendb01]$cd aken/dbapp/dbsoft
[postgres@akendb01]$ls
postgresql-11.5.tar.bz2
[postgres@akendb01]$bunzip2 postgresql-11.5.tar.bz2
[postgres@akendb01]$
3.解决依赖关系:root用户执行
yum install gcc gcc-c++ zlib-devel readline-devel
yum install perl-ExtUtils-Embed pam-devel libxml2-devel libxslt-devel
yum install openldap-devel python-devel openssl-devel cmake tcl tcl-devel
4. configure配置及选项介绍
1)选项介绍
--prefix:指定安装路径
--with-openssl:对openssl进行扩展支持
--with-python:对Python进行扩展支持
--with-perl:对Perl进行扩展支持
--with-libxml:对xml进行扩展支持
更多选项可以通过--help查看
2)进行配置:root用户执行,注意要将所有选项放到一行里面。
./configure --prefix=/aken/dbapp/pgsql/1105 --with-pgport=5432 --with-wal-blocksize=16 --with-blocksize=8 --with-openssl --with-perl --with-python --with-libxml --with-pam --with-tcl --with-ldap --with-libxslt --enable-thread-safety --enable-dtrace --enable-debug
5. 进行gmake编译:root用户执行。
gmake world #包括第三方插件全部编译
gmake check-world #这个使用普通用户执行,可选,耗时较长
6. 进行安装:root用户执行
gmake install-world
注意:
1)如果遇到依赖的动态库缺失,将相关的库安装重新编译安装即可。
2)使用gmake world安装,包含了文档、所有的contrib。
7. DB集簇初始化
1)pg数据库为多域架构,即一个DB server可以有多个database。
2)一台物理机可有多个DB server,通过port和data路径进行区分。
3)编译安装的数据库,需要initdb手工初始化,相当于Oracle中的dbca操作。
4)执行初始化
$PGHOME/bin/initdb -D $PGDATA -E UTF8 --locale=C -U postgres -W
#可以使用initdb --help查看选项详细信息
8 启动数据库前修改配置文件
1)pg_hba.conf用于控制访问数据库的来源。
2)postgresql.conf是数据库的主配置文件的重要参数,另外pg的alert日志默认不开启,需求手工修改对应参数为on以启用。
9.查看进程并验证登录
10.查看默认参数