CentOS7双机热备pgpool+replication.docx

上传人:b****7 文档编号:10170542 上传时间:2023-02-09 格式:DOCX 页数:15 大小:26.84KB
下载 相关 举报
CentOS7双机热备pgpool+replication.docx_第1页
第1页 / 共15页
CentOS7双机热备pgpool+replication.docx_第2页
第2页 / 共15页
CentOS7双机热备pgpool+replication.docx_第3页
第3页 / 共15页
CentOS7双机热备pgpool+replication.docx_第4页
第4页 / 共15页
CentOS7双机热备pgpool+replication.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

CentOS7双机热备pgpool+replication.docx

《CentOS7双机热备pgpool+replication.docx》由会员分享,可在线阅读,更多相关《CentOS7双机热备pgpool+replication.docx(15页珍藏版)》请在冰豆网上搜索。

CentOS7双机热备pgpool+replication.docx

CentOS7双机热备pgpool+replication

1.环境信息2

2.postgresql2

1.依赖包2

2.调整内核2

3.服务配置3

4.创建用户3

5.创建目录3

6.建立ssh信任3

7.环境变量4

8.编译安装4

9.初始化实例5

10.运行参数5

11.启动实例7

12.复制备机7

13.注册服务7

3.pgpool8

1.创建用户8

2.开放权限8

3.环境变量8

4.建立ssh信任8

5.编译安装9

6.加载extension9

7.配置pgpool.conf9

8.配置pool_hba.conf10

9.配置pcp.conf11

10.启动pgpool11

11.状态检查11

1.环境信息

操作系统:

CentOS7

数据库:

Postgresql9.3.5

中间层:

Pgpool-II-3.4.0

Primary:

172.15.0.11

Standby:

172.15.0.12

VirtualIP:

172.15.0.10

2.postgresql

1.依赖包

[root主/备]

通过yum安装,需要联网

#yum-yinstallgcc

#yum-yinstallpython-devel

#yum-yinstallncurses-devel

#yum-yinstallreadline-devel

#yum-yinstallzlib-devel

#yum-yinstalllibxml2-devel

#yum-yinstalllibxslt-devel

#yum-yinstallsendmail

2.调整内核

[root主/备]

修改内核

#vi/etc/sysctl.conf

kernel.shmmax=68719476736

kernel.shmall=4294967296

kernel.shmmni=4096

kernel.sem=5010064128000501001280

fs.file-max=7672460

net.ipv4.ip_local_port_range=900065000

net.core.rmem_default=1048576

net.core.rmem_max=4194304

net.core.wmem_default=262144

net.core.wmem_max=1048576

 

生效参数

#/sbin/sysctl-p

 

3.服务配置

[root主/备]

关闭防火墙(也可以设置协议规则,不关闭防火墙)

#systemctlstopfirewalld.service

#systemctldisablefirewalld.service

添加主机名称(方便后续配置和管理)

#vi/etc/hosts

172.15.0.11DBServer01

172.15.0.12DBServer02

 

4.创建用户

[root主/备]

创建用户组

#groupaddpostgres

创建用户

#useradd-d/opt/postgres-s/bin/bash-gpostgres-mpostgres

#passwdpostgres

5.创建目录

[postgres主/备]

修改权限(pgpool用户需要读取pg的环境变量)

#chmod750~

添加目录(源码上传路径)

#mkdir~/src

添加目录(辅助脚本路径)

#mkdir~/script

6.建立ssh信任

[postgres主/备]

生成sshkey(密码设置为空)

#ssh-keygen

设置对端postgres信任,hostname根据实际情况修改

#ssh-copy-idpostgres@DBServer02

7.环境变量

[postgres主/备]

修改profile

#vi~/.bash_profile

exportPGHOME=/opt/postgres

exportPATH=$PATH:

$PGHOME/bin

exportLD_LIBRARY_PATH=$PGHOME/lib

exportLANG=zh_CN.UTF8

exportPGUSER=postgres

exportPGDATA=$PGHOME/data

exportPGLOG=$PGHOME/log

exportPGSCRIPT=$PGHOME/script

 

生效profile

#source~/.bash_profile

8.编译安装

[postgres主/备]

ftp上传postgresql-9.3.5.tar.gz至/opt/postgres/src

#cd~/src

#tar-zxvfpostgresql-9.3.5.tar.gz

#cdpostgresql-9.3.5

#./configure--prefix=/opt/postgres--with-python--with-blocksize=16--enable-debug--with-libxml--with-libxslt

#makeworld

#makeinstall-world

ftp上传pg_main.sh和pg_main.ini至/opt/postgres/script

#chmod750~/script/*

配置pg_main.ini

#vipg_main.ini

#脚本的日志路径

log=$PGLOG

#物理备份路径

base=$PGHOME/backup/base

#WAL日志归档路径

archive=$PGHOME/backup/archive

#备份保存天数的阈值

keepdays=3

#主备机的hostname列表

nodes="DBServer01|DBServer02"

 

9.初始化实例

[postgres主]

初始化实例

#initdb-D$PGDATA--encoding=UTF8-W

10.运行参数

[postgres主]

配置postgresql.conf

#vi~/data/postgresql.conf

#监听所有地址

listen_addresses='*'

#监听端口

port=5432

#WAL日志级别,复制流必须打开

wal_level=hot_standby

#归档模式,复制流必须打开

archive_mode=on

#归档脚本,可按照实际情况配置

archive_command='sh$PGSCRIPT/pg_main.sharchive%p%f'

#复制流WAL日志发送进程数

max_wal_senders=3

#WAL日志段数量

wal_keep_segments=16

#热备模式

hot_standby=on

#系统日志设置为标准输出

log_destination='stderr'

#系统日志转储进程

logging_collector=on

#系统日志目录

log_directory='/opt/postgres/log'

#系统日志格式

log_filename='postgresql-%Y%m%d.log'

 

配置pg_hba.conf(红字部分按实际情况配置)

#vi~/data/pg_hba.conf

hostallall0.0.0.0/0md5

hostreplicationpostgres172.15.0.12/32trust

 

配置recovery.conf(红字部分按实际情况配置)

#cp~/share/recovery.conf.sample~/data/recovery.done

#vi~/data/recovery.done

#备机恢复timeline

recovery_target_timeline='latest'

#备机模式

standby_mode=on

#主机的信息

primary_conninfo='host=DBServer02'

#备机提升为主机的触发文件

trigger_file='/opt/postgres/postgres.trigger'

 

11.启动实例

[postgres主]

启动实例

#pg_ctlstart

12.复制备机

[postgres备]

从主机复制(红字部分按实际情况配置)

#pg_basebackup-D$PGDATA-Fp-Xs-v-P-hDBServer01-Upostgres

修改recovery.conf(红字部分按实际情况配置)

#mv~/data/recovery.done~/data/recovery.conf

#vi~/data/recovery.conf

primary_conninfo='host=DBServer01'

 

修改pg_hba.conf(红字部分按实际情况配置)

#vi~/data/pg_hba.conf

hostreplicationpostgres172.15.0.11/32trust

 

启动实例

#pg_ctlstart

检查进程

#ps-ef|grepreceiver

postgres2152721521020:

01?

00:

00:

00postgres:

walreceiverprocess

 

13.注册服务

[root主/备]

ftp上传postgres至/etc/init.d

(可以从/opt/postgres/src/postgresql-9.3.5/contrib/start-scripts/linux拷贝修改)

#chkconfig--addpostgres

#chkconfigpostgreson

3.pgpool

1.创建用户

[root主/备]

#useradd-d/opt/pgpool-s/bin/bash-gpostgres-mpgpool

#passwdpgpool

2.开放权限

[root主/备]

生成虚拟ip用到

#chmodu+s/sbin/ifconfig

#chmodu+s/sbin/arping

 

3.环境变量

[pgpool主/备]

修改profile

#vi~/.bash_profile

./opt/postgres/.bash_profile

exportPATH=$PATH:

$HOME/bin

 

生效profile

#source~/.bash_profile

4.建立ssh信任

生成sshkey(密码设置为空)

#ssh-keygen

本机postgres信任

#ssh-copy-idpostgres@`hostname`

5.编译安装

[pgpool主/备]

添加目录

#mkdir~/src

解压编译

ftp上传pgpool-II-3.4.0.tar.gz至/opt/pgpool/src

#cd~/src

#tar-zxvfpgpool-II-3.4.0.tar.gz

#cd~/src/pgpool-II-3.4.0

#./configure--prefix=/opt/pgpool--with-pgsql=/opt/postgres

#make

#makeinstall

#cd~/src/pgpool-II-3.4.0/src/sql

#make

#makeinstall

6.加载extension

[pgpool主]

备机会自动复制操作,template1是pg创建database的默认模板

#psql-hDBServer01-Upostgres-dtemplate1-c"createextensionpgpool_regclass;"

#psql-hDBServer01-Upostgres-dtemplate1-c"createextensionpgpool_recovery;"

7.配置pgpool.conf

[pgpool主/备]

以sample-stream为模板,以下列出的是需要更改的配置(红字部分按实际情况配置)

#cp~/etc/pgpool.conf.sample-stream~/etc/pgpool.conf

#vi~/etc/pgpool.conf

#监听地址

listen_addresses='*'

#节点信息

backend_hostname0='DBServer01'

backend_port0=5432

backend_weight0=1

backend_data_directory0='/opt/postgres/data'

backend_flag0='ALLOW_TO_FAILOVER'

backend_hostname1='DBServer02'

backend_port1=5432

backend_weight1=1

backend_data_directory1='/opt/postgres/data'

backend_flag1='ALLOW_TO_FAILOVER'

#认证方式

enable_pool_hba=on

#日志模式

log_connections=on

log_hostname=on

log_statement=on

log_per_node_statement=on

pid_file_name='/opt/pgpool/pgpool.pid'

#状态检查

sr_check_user='postgres'

sr_check_password='postgres'

health_check_period=1

health_check_user='postgres'

health_check_password='postgres'

#切换脚本

failover_command='sshpostgres@DBServer02"$PGSCRIPT/pg_main.shpromote%H"'

#看门狗(避免单点故障)

use_watchdog=on

wd_hostname='DBServer01'

delegate_IP='172.15.0.10'

heartbeat_destination0='DBServer02'

heartbeat_device0='eth0'

other_pgpool_hostname0='DBServer02'

other_pgpool_port0=9999

other_wd_port0=9000

 

8.配置pool_hba.conf

[pgpool主/备]

认证文件

#cp~/etc/pool_hba.conf.sample~/etc/pool_hba.conf

#vi~/etc/pool_hba.conf

hostallall0.0.0.0/0md5

 

密码文件(pgsql中所有user需要在此配置,密码需要一致)

#pg_md5-p-upostgres

9.配置pcp.conf

[pgpool主/备]

执行pcp命令时的用户认证(红字部分密码可以任意修改)

#cp~/etc/pcp.conf.sample~/etc/pcp.conf

#echo"postgres:

"`pg_md5postgres`>>~/etc/pcp.conf

10.启动pgpool

[pgpool主/备]

先启动的pgpool节点会为master状态,后启动的为normal状态

#pgpool-n>/opt/pgpool/pgpool.log2>&1&

11.状态检查

[pgpool主]

使用pgpool的pcp命令,检查watchdog的状态

#pcp_watchdog_info5DBServer019898postgrespostgres

node1999990003

#pcp_watchdog_info5DBServer029898postgrespostgres

Node2999990002

 

watchdog状态说明:

0

1

2

3

4

End

Init

Normal

Master

Down

 

使用通过vip查看据库状态

#psql-h172.15.0.10-p9999-Upostgres-c"showpool_nodes;"

node_id|hostname|port|status|lb_weight|role

---------+----------+------+--------+-----------+---------

0|node1|5432|2|0.500000|primary

1|node2|5432|2|0.500000|standby

 

database状态说明:

0

1

2

3

初始化,从不显示

已启动,未连接

已启动,连接缓冲

节点关闭

 

当主机宕掉,然后重新启动为备机时,需要把节点信息更新一下,pgpool无法自动检测宕掉后重新恢复的节点。

pcp_attach_node[-d]timeouthostnameport#usernamepasswordnodeID

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1