下载PostgreSQL源码包,放在任意目录
设置/etc/sysctl.conf,增加以下内容
kernel.shmmni= 4096
kernel.sem =501000 6412800000 501000 12800
fs.file-max =767246
net.ipv4.ip_local_port_range= 1024 65000
net.core.rmem_default= 1048576
net.core.rmem_max= 1048576
net.core.wmem_default= 262144
net.core.wmem_max= 262144
net.ipv4.tcp_tw_recycle=1
net.ipv4.tcp_max_syn_backlog=4096
net.core.netdev_max_backlog=10000
vm.overcommit_memory=0
net.ipv4.ip_conntrack_max=655360
sysctl -p 生效
如果这里出现最后一个参数未生效可:
modprobeip_conntrack
echo"modprobe ip_conntrack" >> /etc/rc.local
设置/etc/security/limits.conf 增加以下内容
* soft nofile 131072
* hard nofile 131072
* soft nproc 131072
* hard nproc 131072
* soft core unlimited
* hard core unlimited
* soft memlock 50000000
* hard memlock 50000000
--vi/etc/pam.d/login
sessionrequired pam_limits.so
设置环境变量
#vi .bash_profile 在文件尾添加
exportPATH=$PATH:/usr/local/pgsql/bin
exportMANPATH=$MANPATH:/usr/local/pgsql/man
exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/pgsql/lib
export PGDATA=/opt/pgdata
先修改好两台机器的名称
[root@primary ~]# groupadd postgres
[root@primary ~]# useradd -g postgres postgres
[root@primary ~]# passwd postgres
[postgres@primary~]$ tar -zxvf postgresql-9.3.0.tar.gz
[postgres@primary~]$ cd postgresql-9.3.0
[postgres@primary postgresql-9.3.0]$ ./configure --prefix /home/proxy_pg/pgsql #配置安装目录
[postgres@primary postgresql-9.3.0]$ make #这里需要安装基础的库(gcc、readline、zlib、) 可以不必理会,make时会提示
[root@primary ~]# mkdir /home/proxy_pg
[root@primary ~]# chown -R postgres /home/proxy_pg
[postgres@primary postgresql-9.3.0]$ make install#安装
[postgres@primary pgsql]$ mkdir /home/proxy_pg/pgsql/data #在你想要存放数据的地方创建data文件夹
[postgres@primary bin]$ ./initdb -D ../data/ #初始化数据库
[postgres@primarydata]$ vi postgresql.conf #修改data/postgresql.conf
port = 5432 #可以任意更改你想要的,这里直接用5432
wal_level = hot_standby #主库设置成 hot_standby ,从库才能以READ-ONLY模式打开
max_wal_senders = 30 #WAL STREAM 日志发送进程数
log_connections = on #设置日志参数,记录连接信息
logging_collector = on #开启csvlog输出功能(默认为off)
log_directory = 'pg_log' #设置csv日志输出目录($PGDATA目录下,如果不存在该目录,则会自动新建)
log_destination = 'csvlog' #设置输出的日志式(类型),pg中的日志类型有stderr、csvlog、syslog以及eventlog,本例中设置为csvlog
#该选项默认为stderr类型
archive_mode= on
archive_command = 'test ! -f /archive/pg93/archive_active || cp %p/archive/pg93/%f' #备注:归档标识文件 archive_active 需要手工创建。
wal_keep_segments = 1024 #主库设置的 wal_keep_segments 参数为 1024,一个较大的 wal_keep_segments 设置,允许
备库在宕机较长的时间内依然能够重新追上主库,当然这与主库的繁忙程度有关,主库越忙,
产生的 WAL 日