配置双机热备

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/ziptop/article/details/47128251

、测试说明
本文档是以数据库本身自带的Hot Standby方式进行验证HighGo DB容灾能力的测试文档。
本测试中使用的是一主(master)一备(standby)。
2、测试环境
这里写图片描述

3、安装
3.1 、获取安装包
3.2 、安装
注意:master和standby安装完数据库后最好pg_ctl stop关闭服务,然后进行接下来的配置
3.2.1 、master安装数据库
注意:安装前需要配置环境变量HG_HOME

[highgo@masker ~]$ vi .bash_profile
export HG_HOME=/home/highgo/hgdb

执行安装,根据提示的步骤进行安装

[highgo@masker ~]$ cd hgdb_linux64_3.0_5.x
[highgo@masker hgdb_linux64_3.0_5.x]$ ./runinstall

3.2.2 、以相同的方式在standby上安装数据库
在安装过程中的参数设置均与master一致。
4 、配置
4.1 、主库master配置
4.1.1 、关闭进程
由于数据库在初始安装成功后是开启状态,为了便于配置,先关闭服务。

[highgo@masker ~]$ pg_ctl stop
waiting for server to shut down....LOG:  received smart shutdown request
LOG:  autovacuum launcher shutting down
LOG:  shutting down
LOG:  database system is shut down
 done
server stopped

4.1.2 、配置用户环境变量

[highgo@masker ~]$ vi .bash_profile
export LD_LIBRARY_PATH=$HG_HOME/lib
export PGDATA=$HG_HOME/data
PATH=$PATH:$HOME/bin:$HG_HOME/bin

export PATH
--使配置生效
[highgo@masker ~]$ source .bash_profile

4.1.3 、数据库配置
配置postgresql.conf

wal_level = hot_standby
max_wal_senders = 1
wal_keep_segments = 500
archive_mode = on
archive_command = 'cp %p /home/highgo/hgdb/data/xxfarchivedir/%f'
listen_addresses = '*'
port = 5866

注意:需要在hgdb/data目录下新建xxfarchivedir目录

主库创建超级用户以供备库连接主库时使用

[highgo@masker data]$ pg_ctl start
server starting
[highgo@masker data]$ LOG:  database system was shut down at 2015-07-28 23:03:56 PDT
LOG:  MultiXact member wraparound protections are now enabled
LOG:  autovacuum launcher started
LOG:  database system is ready to accept connections 
[highgo@masker data]$ psql
psql (3.0.0)
Type "help" for help.

highgo=# create user standby SUPERUSER LOGIN password 'highgo';
CREATE ROLE

配置pg_hba.conf

# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
host    replication     standby        192.168.100.190/32     trust

4.1.4 、重启数据库,使配置生效

[highgo@masker data]$ pg_ctl restart
LOG:  received smart shutdown request
LOG:  autovacuum launcher shutting down
LOG:  shutting down
waiting for server to shut down......LOG:  database system is shut down
. done
server stopped
server starting
[highgo@masker data]$ LOG:  database system was shut down at 2015-07-28 23:01:46 PDT
LOG:  MultiXact member wraparound protections are now enabled
LOG:  autovacuum launcher started
LOG:  database system is ready to accept connections

4.1.5 、执行一次基础备份

[highgo@masker data]$ psql -c "select pg_start_backup('backupxxf728')"
 pg_start_backup 
-----------------
 0/3000028
(1 row)
[highgo@masker data]$ scp -r ../data/* 192.168.100.190:/home/highgo/hgdb/data/
[highgo@masker data]$ psql -c "select pg_stop_backup()"
NOTICE:  pg_stop_backup complete, all required WAL segments have been archived
 pg_stop_backup 
----------------
 0/3000160
(1 row)

4.2 、备库standby配置

//配置用户环境变量
参见master主库环境变量配置。
//删除data目录下的postmaster.pid文件
[highgo@standby data]$ rm -rf postmaster.pid

配置postgresql.conf
hot_standby = on

然后新建recovery.conf并编辑
standby_mode = on
restore_command = 'cp /home/highgo/hgdb/data/xxfarchivedir/%f %p'
primary_conninfo = 'host=192.168.100.195 port=5866 user=standby password=highgo'

5 、启动standby,测试
注意:关闭防火墙
5.1 、主库连接,进行测试

(1)在主库新建mask_tab表,查看备库中是否存在该表
[highgo@masker data]$ psql
psql (3.0.0)
Type "help" for help.

highgo=# create table mask_tab(i int);
CREATE TABLE
highgo=# select * from mask_tab ;
 i 
---
(0 rows)

备库中查询是否有mask_tab表
[highgo@standby bin]$ psql
psql (3.0.0)
Type "help" for help.

highgo=# \dt
         List of relations
 Schema |   Name   | Type  | Owner  
--------+----------+-------+--------
 public | mask_tab | table | highgo
 (2 rows)
highgo=# select * from mask_tab ;
 i 
---
(0 rows)
(2)主库中向mask_tab表中插入数据
highgo=# insert into mask_tab select * from generate_series(1,5);
INSERT 0 5

备库中查询mask_tab表中数据
highgo=# select * from mask_tab ;
 i 
---
 1
 2
 3
 4
 5
(5 rows)

5.2 、主库查看WAL_SENDER进程

这里写图片描述

5.3 、备库查看WAL_RECEIVER进程
这里写图片描述

5.4、关闭master,模拟主机宕机
然后在备机执行pg_ctl promote命令进行切换

猜你喜欢

转载自blog.csdn.net/ziptop/article/details/47128251