文档目录结构:
一、准备
操作系统版本:rehat7.6
Postgresql:11.2
软件安装目录:/pgsql11/basedir
数据文件存放目录:/pgsql11data/
11.2的下载地址:
https://www.postgresql.org/ftp/source/v11.2/
1.修改防火墙:
vim /etc/selinux/config
修改内容:
SELINUX=disabled
systemctl disable firewalld
systemctl stop firewalld
2.选择deadline IO调度
cat > /etc/udev/rules.d/60-oracle-schedulers.rules<<EOF
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="deadline"
EOF
udevadm control --reload-rules
3.安装依赖包
yum install -y gcc gcc-c++ epel-release llvm5.0 llvm5.0-devel clang libicu-devel perl-ExtUtils-Embed zlib-devel openssl openssl-devel pam-devel libxml2-devel libxslt-devel openldap-devel systemd-devel tcl-devel python-devel llvm*
二、编译安装后操作
安装过程与linux下其他软件的编译安装过程相同,都是:
./configure
make
make install
2.1默认情况安装会用到数据库中的压缩功能这个功能的实现需要第三方的压缩开发包zlib支持,linux包名字一般都包含zlib和dev 两个关键字,dev是develop开发的意思。
操作如下:
创建用户:
groupadd pgsql
useradd -g pgsql pgsql
passwd pgsql
mkdir -p /pgsql11/basedir --这个为安装目录
mkdir -p /pgsql11data --这个放数据文件
chown -R pgsql:pgsql /pgsql11
chown -R pgsql:pgsql /pgsql11data
把上传的包放到/pgsql11/basedir目录并解压。
tar -zxvf postgresql-11.2.tar.gz
vi postgresql-11.2/src/Makefile.global.in
去掉红圈的部分。
安装帮助命令
如果不指定,则默认安装到 /usr/loca/pgsql目录下,这是数据库的安装路径,跟具体的数据(表)存放没有任何关系。
./configure --prefix=/pgsql11/basedir/ --without-readline --without-zlib
生产中建议用较大的数据块提高I/O性能
make
make install
chown -R pgsql:pgsql /pgsql11
三、初始化数据库
1、设置启动配置
su - pgsql
vi .bash_profile
export PGPORT=5432
export PGHOME=/pgsql11/basedir
export PGDATA=/pgsql11data/
export PATH=$PGHOME/bin:$PATH
export MANPATH=$PGHOME/share/man:$MANPATH
export LANG=en_US.UTF-8
export DATE='date +"%Y%m%d%H%M"'
export LD_LIBRARY_PATH=$PGHOME/lib:$LD_LIBRARY_PATH
source .bash_profile
2.初始化数据库
/pgsql11/basedir/bin/initdb -D /pgsql11data/
启动数据库:
/pgsql11/basedir/bin/pg_ctl -D /pgsql11data/ -l logfile start
帮助命令如下:
关闭数据库:
pg_ctl stop -D /pgsql11data/ -m fast
-m是指数据库停止的方法,有三种:
smart,fast,immediate 相当于oracle数据库中的normal,immediate,abort模式,尤其注意,两个数据库immediate模式不一样。
四.参数修改
修改监听的IP和端口
vi /pgsql11data/postgresql.conf
最大连接数
看情况 比如说 500
开启日志:
其中开启syslogger系统日志
日志保留:
日志有3种方法可保留:
1.每天生成一个新的日志文件
2.每当日志写满一定的大小(如20M),则切换一个日志
3.只保留7天的日志,循环覆盖。
我采用第三种:
共享内存的调整:
主要是用户共享数据块。
默认是128M,根据内存大小,进行适当的调整,由于我的是虚拟机,我改成512MB(建议缓存数据库的参数设置成内存的25%—40%)。
有关TCP keepalives的设置:
预写日志设置:
开启归档模式,且归档方式是拷贝到 /pgsql11data/pgarchivelog/ 路径下。
用户访问设置:
比如我的用户:
修改
vi /pgsql11data/pg_hba.conf
注意,默认的是127.0.0.1/32,由于这个表示只能本机登陆,且掩码是32,修改成 192.168.211.0/24 表示掩码是24,且192.168.211这个网段的都可以登陆,后面那个是md5,建议不要用true。
改完后,重启数据库。
配置用户访问前:
配置用户访问后: