公司使用的数据库时postgresql,一直运行都很流畅,但是最近java新做的管理平台,由于登录用户较多,并发性比较大。另外新系统可能优化也存在问题,所以pg经常崩溃,所以我就开始研究如何事项pg的高性能,高可用的HA的数据库集群解决方案。主要思路是利用postgresql自带的流复制功能,来实现了双机热备,利用pgpool实现数据库的负载均衡、失败接管、在线回复、消除单点故障,从而做到无缝隙无人工参与的主备循环N次切换的高可用。后来经过详细阅读他人的博客和帮助手册。最后逐一实现。下边是思维导图。对于配置过程中参数的含义即配置参数请参考帮助手册和我的代码注释。

参考博客:

宿宝臣在路上(HA): http://dz.sdut.edu.cn/blog/subaochen/?p=451

Guo_guo(实施手册):http://blog.csdn.net/sszgg2006/article/details/38684325

Constantin的博客(PG安装与配置):http://www.cnblogs.com/zhoulf/p/4040768.html

pgpool的中文手册:http://pgpool.projects.pgfoundry.org/pgpool-II/doc/pgpool-zh_cn.html#start

关于PG的安装,我在此简单说明一下,因为我之前并未从事过运维,所以在研究的过程中,学习了很多关于redhat的知识,比如:

  ①  /ect/profile 、/home/user/.bash_profile 、/home/user/.bashrc中设置环境环境变量,并使之生效。

      》使用source 文件名,在本终端中使得该文件生效。/ect/profile是系统级别的,、/home/user/.bash_profile 、/home/user/.bashrc是用户级别的。系统级的对于所有用户都起作用,用户级的只对对应的用户起作用。

      》source .bashrc可以立刻生效,即使是新打开的终端也生效。

      》但source .bash_prifile只能在当前终端生效,新打开的终端不生效,只有当重新启动的时候,才生效。

      》对于export +环境变量,这样的环境变量才能变成全局的。

      》关于详细的描述,参考:http://blog.csdn.net/chenchong08/article/details/7833242

    下边附上我设置的.bashrc

# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi # User specific aliases and functions
export PGHOME=/usr/local/pgsql export POOLHOME=/usr/local/pgpool export PGDATA=/usr/local/pgsql/data export PATH=$PATH:$HOME/bin:$PGHOME/bin:$POOLHOME/bin:/sbin export LANG=GBK export PS1='$HOSTNAME#$LOGNAME:$PWD> ' set -o vi
ulimit -c alias lf="ls -CF"
alias ll="ls -trl"
alias l="ls -l" alias dbc='psql -d postgres -U postgres'
alias pgstart='pg_ctl -D $PGDATA start'
alias pgstop='pg_ctl kill INT `head -1 $PGDATA/postmaster.pid`'

  ②  redhat系列类型与ubuntu系列类型的linux软件包管理的异同。

      》接下来的实验PG的安装采取源码安装,安装的过程,参考这篇博文:Constantin的博客(PG安装与配置):http://www.cnblogs.com/zhoulf/p/4040768.html

      》安装过程会出现或多或少的问题。记住--help永远是最可靠的朋友,如 ./configure --help 就明白了。我安装过程会报readline和另外一个找不到,不过可以查看帮助使用--without,就去检查系统是否存在,当然也可以自行安装,然后指明文件的路径即可,readline是系统的工具,主要是记录记录历史和tab命令补全用的。

PostgreSQL的HA解决方案-项目概述的更多相关文章

  1. PostgreSQL的HA解决方案-2负载均衡(load balance)

    一.部署说明 1.1 实施环境 本文档实验环境如下: PGSQL主机: 192.168.1.45 PGSQL备机: 192.168.1.50 软件和系统版本 Pgsql 版本: pgsql 9.2.4 ...

  2. PostgreSQL的HA解决方案-1主从和备份(master/slave and backup)

    一.部署说明 1.1 实施环境 本文档实验环境如下: PGSQL主机: 192.168.1.45 PGSQL备机: 192.168.1.50 软件和系统版本 Pgsql 版本: pgsql 9.2.4 ...

  3. Web服务器项目详解 - 00 项目概述

    目录 00 项目概述 01 线程同步机制包装类 02 半同步/半反应堆线程池(上) 03 半同步/半反应堆线程池(下) 04 http连接处理(上) 05 http连接处理(中) 06 http连接处 ...

  4. Android快乐贪吃蛇游戏实战项目开发教程-01项目概述与目录

    一.项目简介 贪吃蛇是一个很经典的游戏,也很适合用来学习.本教程将和大家一起做一个Android版的贪吃蛇游戏. 我已经将做好的案例上传到了应用宝,无病毒.无广告,大家可以放心下载下来把玩一下.应用宝 ...

  5. 浅谈web应用的负载均衡、集群、高可用(HA)解决方案(转)

    1.熟悉几个组件 1.1.apache     —— 它是Apache软件基金会的一个开放源代码的跨平台的网页服务器,属于老牌的web服务器了,支持基于Ip或者域名的虚拟主机,支持代理服务器,支持安 ...

  6. Mall电商项目总结(一)——项目概述

    项目概述 此电商项目为本人学习项目,后端 使用nginx实现负载均衡转发请求到多台tomcat服务器,使用多台 redis服务器分布式 缓存用户登录信息. 项目已经部署到阿里云服务器,从阿里云linu ...

  7. CMDB01 /paramiko模块、项目概述、项目架构、项目实现

    CMDB01 /paramiko模块.项目概述.项目架构.项目实现 目录 CMDB01 /paramiko模块.项目概述.项目架构.项目实现 1. paramiko 2. 基于xshell连接服务器 ...

  8. .NET 开源GIS解决方案一 概述

    写在前面 最近开始研究开源GIS,国内开源GIS的资料很少,而基于.net的又是少之又少.所以决定把自己研究的资料进行总结整理,技术在于分享,本系列(计划是写一个系列,如果我可以坚持下来的话)部分是自 ...

  9. java技术栈:项目概述

    学习使用java到现在也有三年多了,这三年基本是以项目驱动的方式学习,有好有坏,个人觉得好处在于,有一个清晰的目标让你解决,这会让你学习非常迅速有效.当然坏处就是片面,不成体系.这种学习方式在学校以小 ...

随机推荐

  1. luogu P2422 良好的感觉 单调栈

    Code: #include<bits/stdc++.h> #define maxn 1000000 #define ll long long using namespace std; v ...

  2. 整理Crontab 定时计划

    一. 什么是crontab? crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令.该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和 ...

  3. python第十周:进程、协程、IO多路复用

    多进程(multiprocessing): 多进程的使用 multiprocessing是一个使用类似于线程模块的API支持产生进程的包. 多处理包提供本地和远程并发,通过使用子进程而不是线程有效地侧 ...

  4. django QuerySet对象转换成字典对象

    >>> from django.contrib.auth.models import User >>> from django.forms.models impor ...

  5. UOJ #131 BZOJ 4199 luogu P2178【NOI2015】品酒大会 (后缀自动机、树形DP)

    水是水,但是写出了不少问题,因此写一发博客. https://www.luogu.org/problemnew/show/P2178 https://www.lydsy.com/JudgeOnline ...

  6. 【ACM】hdu_1093_A+BV_201307261715

    A+B for Input-Output Practice (V)Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 ...

  7. 关于使用sudo命令后找不到JAVA_HOME的问题

    今天在虚拟机搭建zookeeper环境,结果死活运行不起来,唯一的信息只有out文件里“没有java命令”这一个提示,找来找去发现是找不到java运行环境.可是很奇怪,明明我已经配置了,而且在终端执行 ...

  8. windows下mysql5.6.20使用mysqldumpslow.pl分析慢日志

    要想执行mysqldumpslow.pl(这是perl程序),下载perl编译器. 下载地址:http://pan.baidu.com/s/1i3GLKAp 就是ActivePerl_5.16.2.3 ...

  9. Oracle学习(十二):存储过程/存储函数

    1.知识点 --第一个存储过程 /* 打印Hello World create [or replace] PROCEDURE 过程名(參数列表) AS PLSQL子程序体: 调用存储过程: 1. ex ...

  10. 基于aspectj的aop的操作

    1.引入相关的jar包 2.建两个类 public class Book { public void add(){ System.out.println("add-----------&qu ...