1.关闭防火墙和selinux
--关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
--关闭selinux
vi /etc/selinux/config
SELINUX=disabled
2.创建组和用户
useradd postgres
groupadd postgres
3.编译安装
./configure --prefix=/pg_data/pg14.3 --with-perl --with-python
make
make install
注意:官方要求make命令的版本要在3.8以上,使用make --version进行检查。
[root@pg pg_data]# make --version
GNU Make 3.82
4.设置环境变量
vi .bash_profile
export PATH=/pg_data/pg14.3/bin:$PATH
export LD_LIBRARY_PATH=/pg_data/pg14.3/lib
5.创建数据库实例
--设置数据库的数据目录的环境变量
export PGDATA=/pg_data/pg14.3/data
--创建数据库簇
initdb
6.安装contrib目录下的工具(可选)
/pg_data/postgresql-14.3/contrib
make
make install
7.启动和关闭数据库
pg_ctl start -D $PGDATA
pg_ctl start -D /pg_data/pg14.3/data
pg_ctl stop -D $PGDATA -m smart/fast/immediate
关闭数据库模式如下:
(1)smart:等所有连接中止后,关闭数据库。如果客户端连接不终止,则无法关闭数据库。
(2)fast:快速关闭数据库,断开客户端的连接,让已有的事务回滚,然后正常关闭数据库。相当于Oracle数据库关闭时的immediate模式。
(3)immediate:立即关闭数据库,相当于数据库进程立即停止,直接退出,下次启动数 据库需要进行恢复。相当于Oracle数据库关闭时的shutdown abort模式。
8.数据库安装后的配置
8.1.允许其他地址连接数据库
--默认创建的数据库无法接受远程连接,因为默认情况下$PGDATA/pg_hba.conf文件中没有相应的配置。
该命令允许任何用户远程连接本数据库,连接时需要提供密码。
pg_hba.conf文件是一个黑白名单的访问控制文件,可以控制允许哪些IP地址的机器访问数据库。
vi pg_hba.conf
host all all 0/0 md5
8.2.修改监听的ip和端口
vi postgresql.conf
listen_addresses = '*'
port = 5432
重启数据库生效。
8.3.修改日志相关参数
--只保留7天的日志,进行循环覆盖
vi postgresql.conf
logging_collector = on
log_directory = 'log'
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'
log_rotation_age = 7d
log_rotation_size = 0
log_truncate_on_rotation = on
重启数据库生效。
8.4.打开数据块的checksum功能
--数据库关闭状态下,使用以下命令进行检查是否打开
pg_checksums -c
--打开/关闭checksum功能(安装数据库后)
pg_checksums -e -P
pg_checksums -d -P
--初始化数据库时
initdb -k/--data-checksums
9.编译过程中遇到的问题及解决办法
运行“./configure”时报“error:zlib library not found”错误
yum install zlib-devel* -y