【入门教程】PostgreSQL+SequoiaDB HA 实践

【入门教程】PostgreSQL+SequoiaDBHA 实践

前言

SequoiaDB作为分布式数据库,从设计之初就已经支持SQL访问。目前,SequoiaDB自研的SQL访问组件SequoiaSQL作为企业版的功能之一已经提供给上百家企业用户使用,并且已经实现分布式架构下的SQL 2003支持。

 

对于SequoiaDB社区版用户,我们可以通过SequoiaDB对接PostgreSQL 实现社区版的分布式SQL访问。这一应用方式基本也可以满足大部分的社区版需求。

 

本文就主要探讨如何使用PostgreSQL引擎对接SequoiaDB社区版实现HA高可用架构。

操作环境介绍

在一台机上分别安装centos 6.5、SequoiaDB 2.6、postgresql 9.3.4 、pgpool II 3.6.2,其中SequoiaDB为默认安装,PostgreSQL数据库则手动安装,安装在不同的目录中,使用不同的端口号。pgpool II 3.6.2则单独手动安装一个,并设好免密认证。

 

注:需要先配好PostgreSQL数据库之间免密登录及关闭防火墙。

安装部署PostgreSQL复制流

1. PostgreSQL的安装

Step1

./configure --without-readline--without-zlib --prefix=/opt/postgresql/data02/pgpool/master

注:--prefix=path,是指PostgreSQL的二进制程序和文档将被安装到这个目录。默认值为 /usr/local

 

Step2:编译 

                   make

Step3:安装

                    makeinstall 

Step4:修改文件权限

  chown -R sdbadmin:sdbadmin_group/opt/postgresql/data02/pgpool/master

当安装完成后,可通过echo $? 命令验证,如果为0则表示安装成功,非0表示失败。安装成功如图1所示:


                          图1

2.PostgreSQL复制流部署

先配置主库,再配置备库。

1)配置主库

Step1:初始化数据库

mkdir  /opt/postgresql/data02/pgpool/master /pg_data
/opt/postgresql/data02/pgpool/master /bin/initdb-D pg_data/

初始化成功则如图2所示:

图2

 

Step2:修改postgresql.conf配置文件

listen_addresses = '*'
port = 7654
wal_level = hot_standby    #这个是设置主为wal的主机
archive_mode = on  #开启日志归档
archive_command = 'cp %p/opt/postgresql/data02/pgpool/master/pg_data/backup/%f' #WAL归档路径。     
max_wal_senders = 1  #这个设置了可以最多有几个流复制连接,差不多有几个从,就设置几个
wal_keep_segments = 250  #设置log file 的段大小
wal_sender_timeout = 60s  #设置流复制主机发送数据的超时时间
max_connections = 100  # 这个设置要注意下,从库的max_connections必须要大于主库的。

在搭建流复制环境时,并不必须设置 archive_mode 参数为 on ,很多资料在介绍搭建流复制环境时设置这个参数为 on ,可能是出于开启 WAL 归档更安全的原因,因为在主库宕机并且较长时间不能恢复时,从库依然可以读取归档目录的 WAL,从而保证不丢数据; 另一方面,如果主库设置了较大的 wal_keep_segments ,也可以不用开启archive_mode,因为主库保留了足够的 WAL,从而大大降低了因从库所需要的 WAL 被主库覆盖而需要从归档去取 WAL 的情况。所以从这方面说,archive_mode 参数的设置与搭建流复制并没有直接关系。提示:对于比较繁忙的库,在搭建流复制从库时,建议主库设置较大的 wal_keep_segments 参数。

其实可以在同一个postgresql.conf中把所有主从属性配置都配好,postgresql数据库能够自动识别哪些是主库参数,哪些是从库参数,但注意,有些参数在主库中不能配置,否则出错,比如不能再主库中开启热备模式(hot_standby = on)。配置完成后我们可以拷贝该库都另一个目录,当成备库。

 

注:当日志报“xxxxxxxxxxxxxxxxxxx WAL已经被移异常”时,有可能是 WAL被覆盖引起的或者DBA不小心把主库或从库的某个日志文件删了(如果开启了归档,则包含归档文件),即主库有而备库没有,或者备库有而主库没有都会引起该异常。解决方法:如果是主备日志文件异常(某个库缺个日志文件)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值