一、安装前准备
1.一、主机硬件配置
4G内存,40G磁盘html
1.二、配置OS内核参数
kernel.shmall、kernel.shmmax、kernel.shmmni共享内存相关参数,在9.2以及之前的版本,数据库启动时,对共享内存段的内存需求很是大。后期版本要求不大,但可参考此设置。python
1.三、配置OS资源限制
vi /etc/security/limits.conflinux
* soft nofile 131072 * hard nofile 131072 * soft nproc 131072 * hard nproc 131072 * soft core unlimited * hard core unlimited * soft memlock 500000000 * hard memlock 500000000
1.四、配置OS防火墙
iptables -Fweb
1.五、selinux
若是没这方面需求,建议关闭。sql
# vi /etc/sysconfig/selinux SELINUX=disabled SELINUXTYPE=targeted
1.六、建立用户
useradd pg12
二、数据库安装
2.一、下载postgresql源码
前往https://www.postgresql.org/ftp/source/ ,下载相关源码包数据库
2.二、安装postgresql
安装依赖包:
root用户下,使用yum 安装依赖包bash
yum -y install coreutils glib2 lrzsz mpstat dstat sysstat e4fsprogs xfsprogs ntp readline-devel zlib-devel openssl-devel pam-devel libxml2-devel libxslt-devel python-devel tcl-devel gcc make smartmontools flex bison perl-devel perl-Ext Utils* openldap-devel jadetex openjade bzip2
编译安装postgresql:
pg12用户下,编译安装PostgreSQL,
su - pg12
[pg12@oracle ~]$ tar -jxvf postgresql-12beta2.tar.bz2
[pg12@oracle ~]$ cd postgresql-12.2
[pg12@oracle postgresql-12.2]$ ./configure --prefix=/home/pg12/pgsql12.2 --with-perl --with-python
[pg12@oracle postgresql-12.2]$ make world -j 8
[pg12@oracle postgresql-12.2]$ make install-world
注: 若是不须要调用perl和python编写函数,能够不添加—with-perl —with-python。oracle
2.三、配置linux用户环境变量
在pg12用户下配置环境变量:app
su - pg12
vi ~/.bash_profiledom
追加
export PS1="$USER@`/bin/hostname -s`-> " export PGPORT=1921 export PGDATA=/home/pg12/pgdata export LANG=en_US.utf8 export PGHOME=/home/pg12/pgsql12.2 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 DATE=`date +"%Y%m%d%H%M"` export MANPATH=$PGHOME/share/man:$MANPATH export PGHOST=$PGDATA export PGUSER=postgres export PGDATABASE=postgres alias rm='rm -i' alias ll='ls -lh'
使环境变量生效:
[pg12@oracle ~]$ source ~/.bash_profile
2.四、初始化数据库集群
pg12@oracle-> cd pgsql12,2/bin/
pg12@oracle-> initdb -D
PGDATA目录中
pg12@oracle-> vi postgresql.conf
追加
listen_addresses = '0.0.0.0' port = 1921 max_connections = 200 unix_socket_directories = '.' tcp_keepalives_idle = 60 tcp_keepalives_interval = 10 tcp_keepalives_count = 10 shared_buffers = 512MB dynamic_shared_memory_type = posix vacuum_cost_delay = 0 bgwriter_delay = 10ms bgwriter_lru_maxpages = 1000 bgwriter_lru_multiplier = 10.0 bgwriter_flush_after = 0 old_snapshot_threshold = -1 backend_flush_after = 0 wal_level = replica synchronous_commit = off full_page_writes = on wal_buffers = 16MB wal_writer_delay = 10ms wal_writer_flush_after = 0 checkpoint_timeout = 30min max_wal_size = 2GB min_wal_size = 128MB checkpoint_completion_target = 0.05 checkpoint_flush_after = 0 random_page_cost = 1.3 log_destination = 'csvlog' logging_collector = on log_truncate_on_rotation = on log_checkpoints = on log_connections = on log_disconnections = on log_error_verbosity = verbose autovacuum = on log_autovacuum_min_duration = 0 autovacuum_naptime = 20s autovacuum_vacuum_scale_factor = 0.05 autovacuum_freeze_max_age = 1500000000 autovacuum_multixact_freeze_max_age = 1600000000 autovacuum_vacuum_cost_delay = 0 vacuum_freeze_table_age = 1400000000 vacuum_multixact_freeze_table_age = 1500000000 datestyle = 'iso, mdy' timezone = 'PRC' lc_messages = 'C' lc_monetary = 'C' lc_numeric = 'C' lc_time = 'C' default_text_search_config = 'pg_catalog.english' shared_preload_libraries='pg_stat_statements'
配置pg_hba.conf:
pg12@oracle-> vi pg_hba.conf
追加
host all all 0.0.0.0/0 md5
2.六、启动数据库集群
pg12@oracle-> pg_ctl start
看到提示’server started’则表示启动成功。
2.七、链接数据库
pg12@oracle-> psql
psql (12beta2)
Type “help” for help.
postgres=#