Postgresql standby(备机只读)环境搭建

本文详细介绍了如何在PostgreSQL中设置备用服务器(standby)环境。首先,涉及源码安装、系统配置(如sysctl.conf和limits.conf)、环境变量设定以及主机名更改。接着,通过pg_start_backup()和pg_stop_backup()进行基础备份,并通过scp复制到备用服务器。在备用服务器上,修改postgres.conf并启动服务。通过监控wal sender和wal receiver进程确保流复制正常工作。最后,测试表明备用服务器为只读状态,能实时同步主服务器的读操作,但无法执行写操作。
摘要由CSDN通过智能技术生成

下载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 日
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值