zoukankan      html  css  js  c++  java
  • PostgreSQL的HA解决方案-项目概述

      公司使用的数据库时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 10000000
    
    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命令补全用的。

  • 相关阅读:
    .Net控件创建热键
    .Net字符串处理
    C++ 中通过函数名字的字符串调用函数
    将.Net应用程序依赖的库文件部署到其他目录下
    VS2012生成事件
    visual studio导出项目模板
    .Net Program Unable to copy a file from objDebug to binDebug
    VBA引用.Net类库
    .Net 自定义事件
    VB.Net 解决winForm界面卡死
  • 原文地址:https://www.cnblogs.com/cz-blog/p/4818851.html
Copyright © 2011-2022 走看看