postgresql安装hotstandby详解Word格式.docx
《postgresql安装hotstandby详解Word格式.docx》由会员分享,可在线阅读,更多相关《postgresql安装hotstandby详解Word格式.docx(11页珍藏版)》请在冰豆网上搜索。
fs.aio-max-nr=1048576
net.ipv4.tcp_timestamps=0
使文件修改生效
sysctl-p
vi/etc/security/limits.conf
*softnofile131072
*hardnofile131072
*softnproc131072
*hardnproc131072
*softcoreunlimited
*hardcoreunlimited
*softmemlock50000000
*hardmemlock50000000
2建立数据库用户
给两个节点分别创建postgres用户并设置密码
mkdir/home/postgres
chown-R/home/postgres
groupaddpostgres
useradd-u501-gpostgres-d/home/postgres-s/bin/bashpostgres
passwdpostgres
3ssh免密钥通信
配置两台机器的ssh免密钥登录
ssh-keygen-trsa
主机:
cat~/.ssh/id_rsa.pub>
>
~/.ssh/authorized_keys
chmodgo-rwx~/.ssh/*
cd~/.ssh
scpid_rsa.pubpostgres@192.168.11.157:
/home/postgres/.ssh/id_rsa.pub1
备机:
catid_rsa.pub1>
authorized_keys
scpid_rsa.pubpostgres@192.168.11.156:
/home/postgres/.ssh/id_rsa.pub2
catid_rsa.pub2>
4安装PT数据库软件
安装PG的依赖软件包:
zypperinstalllrzszsysstate4fsprogsntpreadline-develzlibzlib-developensslopenssl-develpam-devellibxml2-devellibxslt-develpython-develtcl-develgccmakeflexbison
创建源码包存储目录
mkdir/app/database
mkdir/app/pgsql
chown-Rpostgres:
users/app/database
users/app/pgsql
su-postgres
postgresql必须用postgres用户安装,安装之前先改变postgresql的将要安装的目录的权限
安装PostgreSQL
wgethttps:
//ftp.postgresql.org/pub/source/v9.5.3/postgresql-9.5.3.tar.gz
cd/app/database
tarzxvfpostgresql-9.5.3.tar.gz
cdpostgresql-9.5.3
./configure--prefix=/app/pgsql--with-pgport=5432--with-perl--with-python--with-openssl--with-pam--without-ldap--with-libxml--with-libxslt--with-blocksize=8
gmakeworld
gmakeinstall-world
主备节点设置相关环境变量(主备节点应该一致)
vi/home/postgres/.bash_profile
exportPGHOME=/app/pgsql
exportLD_LIBRARY_PATH=$PGHOME/lib:
/lib64:
/usr/lib64:
/usr/local/lib64:
/lib:
/usr/lib:
/usr/local/lib:
$LD_LIBRARY_PATH
exportDATE=`date+"
%Y%m%d%H%M"
`
exportPATH=$PGHOME/bin:
$PATH:
.
exportMANPATH=$PGHOME/share/man:
$MANPATH
备机安装pg_standby
进入编译后的/postgresql-9.5.3/contrib./pg_standby目录,执行以下命令
makeinstall
这时便安装好pg_standby。
5主机应用配置
主机初始化数据库
mkdir-pv/app/DB
users/app/DB
cd/app/pgsql/bin
./initdb-D/app/DB
备库(postgres用户安装备节点只需要安装软件,不需要init数据库)
配置监听地址和端口:
vipostgresql.conf
listen_addresses='
*'
port=5432
wal_level=hot_standby
max_wal_senders=1
允许远程连接:
vipg_hba.conf
添加
hostallall192.168.11.0/24trust
hostreplicationpostgres127.0.0.1/0trust
主机设定WAL归档
vipostgres.conf
设定如下参数:
archive_mode=on
archive_command='
scp%p192.168.11.157:
/app/pgsql/backup/standby_log/%f<
/dev/null'
archive_timeout=1200
hot_standby=on
archive_mode参数,开启WAL归档
archive_command参数,设定归档时执行的命令,我们这里通过scp把主机的WAL归档日志传送到备机的/app/pgsql/backup/standby_log/目录下
archive_timeout参数,规定了最多多久执行一次归档,也是发生故障时数据库丢失数据的最长时间。
设定很小的话保证了安全性,增加了网络传输量。
postgresql数据库随系统启动而启动
将启动脚本拷贝到/etc/init.d/目录下,具体执行如下命令:
cd/etc/init.d
cp(第一步解压的安装文件目录)/contrib/start-scripts/linuxpostgresql
chmod+xpostgresql
vipostgresql
prefix=/app/pgsql
PGDATA="
/app/DB"
PGUSER=postgres
PGLOG="
/app/DB/log/pgsql.log"
chkconfig--addpostgresql
启动数据库:
mkdir/app/DB/log
servicepostgresqlstart
6备机应用配置
建立备机数据库
主机开始备份
psqlpostgres(实例名)
selectpg_start_backup('
hotbak'
);
主机压缩备份整个data目录
mkdir/app/pgsql/backup
tar-jcv-f/app/pgsql/backup/baseline.tar.bz2/app/DB/
主机通过scp复制到备机
scp-v/app/pgsql/backup/baseline.tar.bz2192.168.11.157:
/app/pgsql/backup/baseline.tar.bz2
备机解压缩备份文件
sudotar-jxv-fbaseline.tar.bz2-C/
主机结束备份
psqlpostgres
selectpg_stop_backup();
备机进行设置,启动到恢复模式
在/app/DB/目录内建立recovery.conf文件
cp/app/pgsql/share/recovery.conf.sample/app/DB/recovery.conf
virecovery.conf
standby_mode='
on'
primary_conninfo='
host=192.168.11.156port=5432user=postgres'
trigger_file='
/app/DB/pgsql.trigger.5432'
#删除pid文件
rmpostmaster.pid
更改postgres.conf文件中备份设置
把archive_mode、archive_command、archive_timeout三个参数注释掉,这些参数是主机设置的,由于我们备机暂时不需归档,所以注释掉他。
启动备机postgresql数据库
建立postgresql服务
启动数据库
pg_ctl–D/app/DBstart
备机会一直读取主机传送的WAL归档日志进行恢复
---------------另一归档方法(未验证)----------------
cp/app/pgsql/share/postgresql/recovery.conf.sample/app/DB/recovery.conf
restore_command='
pg_standby-d-s2-t/tmp/pgsql.trigger.5432/usr/local/pgsql/backup/standby_log%f%p%r2>
standby.log'
recovery_end_command='
rm-f/tmp/pgsql.trigger.5432'
/tmp目录下创建pgsql.trigger.5432文件,停止备份后会删除该文件防止错误操作
7测试
1)主机登录st