Postgres-XL集群部署与管理指南_MariaDB_青云站长教程网
欢迎来到站长教程网!
  • 秒到短信接口 免费试用
  • 微信支付宝接口 秒结算
  • 中文网站排名|申请加入
  • 搜索引擎全站查询
  • 查询移动网站权重数据
  • 海外主机 台湾公司直销
  • MariaDB

    当前位置:主页 > 数据库 > MariaDB >

    Postgres-XL集群部署与管理指南

    时间:2019-07-22|栏目:MariaDB|点击:
  • Postgres-XL是一个基于PostgreSQL数据库的横向扩展开源SQL数据库集群,具有足够的灵活性来处理不同的数据库工作负载,架构如下图所示:

    Web 2.0

    操作数据存储

    GIS的地理空间

    混合业务工作环境

    OLTP 写频繁的业务

    多租户服务提供商托管环境

    完全ACID,保持事务一致性

    包含JSON的Key-value 存储

    需要MPP并行性商业智能/大数据分析

    Postgres-XL集群部署与管理指南


    各个组件介绍如下:

    Global Transaction Monitor (GTM)
    全局事务管理器,确保群集范围内的事务一致性。GTM负责发放事务ID和快照作为其多版本并发控制的一部分。集群也可以配置一个或多个备用GTM,以改进可用性。此外,可以在协调器间配置GTM代理, 可用于改善可扩展性,减少GTM的通信量。

    GTM Standby
    GTM的备用节点,在pgxc,pgxl中,GTM控制所有的全局事务分配,如果出现问题,就会导致整个集群不可用,为了增加可用性,增加该备用节点。当GTM出现问题时,GTM Standby可以升级为GTM,保证集群正常工作。

    GTM Proxy
    GTM需要与所有的Coordinators通信,为了降低压力,可以在每个Coordinator机器上部署一个GTM Proxy。

    Coordinator
    协调员管理用户会话,并与GTM和数据节点进行交互。协调员解析,并计划查询,并给语句中的每一个组件发送下一个序列化的全局性计划。为节省机器,通常此服务和数据节点部署在一起。

    Data Node
    数据节点是数据实际存储的地方。数据的分布可以由DBA来配置。为了提高可用性,可以配置数据节点的热备以便进行故障转移准备。
    总之,GTM是负责ACID的,保证分布式数据库全局事务一致性。得益于此,就算数据节点是分布的,但是在主节点操作增删改查事务时,就如同只操作一个数据库一样简单。Coordinator是调度的,将操作指令发送到各个数据节点。datanodes是数据节点,分布式存储数据。 1、安装Postgres-XL 1.1 集群规划

    四台机器规划如下图所示:

    Postgres-XL集群部署与管理指南

    1.2 操作系统配置

    禁用防火墙、selinux。各个节点通过yum安装以下软件包:

    [root@pg01 ~]# yum -y install bzip2 readline-devel flex make gcc rsync

    另外,各个节点创建postgres用户:

    [root@pg01 ~]# groupadd postgres;useradd -g postgres postgres;echo RedHat|passwd --stdin postgres

    用户创建完成后,还需要在各个节点配置postgres用户的免密码登录(略)。然后编辑postgres用户的环境变量,加入如下内容:

    [root@pg01 ~]# mkdir /u01;chown postgres:postgres /u01 [root@pg01 ~]# su - postgres [postgres@pg01 ~]$ vi .bashrc export PGUSER=postgres export PGHOME=/usr/local/pgsql export PGXC_CTL_HOME=/u01/pgxl/pgxc_ctl export LD_LIBRARY_PATH=$PGHOME/lib export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib export PATH=$PGHOME/bin:$PATH:$HOME/.local/bin:$HOME/bin 1.3 Postgres-XL安装

    在各个节点以root用户进行安装,默认的安装目录是/usr/local/pgsql。

    [root@pg01 ~]# wget https://×××w.postgres-xl.org/downloads/postgres-xl-10r1.tar.gz;tar -xzf postgres-xl-10r1.tar.gz;cd postgres-xl-10r1;./configure&&make&&make install [root@pg01 postgres-xl-10r1]# cd contrib;make && make install 2、配置Postgres-XL集群 2.1 生成pgxc_ctl配置文件

    在一个节点操作即可。

    [postgres@pg01 ~]$ pgxc_ctl PGXC prepare PGXC exit

    编辑生成的配置文件,内容如下:

    pgxcInstallDir=/u01 pgxcOwner=$USER pgxcUser=$pgxcOwner tmpDir=/tmp localTmpDir=$tmpDir #--------GTM Master-------- gtmName=gtm_master gtmMasterServer=pg01 gtmMasterPort=20001 gtmMasterDir=$pgxcInstallDir/pgxl/nodes/gtm gtmExtraConfig=none gtmMasterSpecificExtraConfig=none #-------GTM Slave--------- gtmSlave=y gtmSlaveName=gtm_slave gtmSlaveServer=pg02 gtmSlavePort=20001 gtmSlaveDir=$pgxcInstallDir/pgxl/nodes/gtm_slave gtmSlaveSpecificExtraConfig=none #-------GTM Proxy-------- gtmProxyDir=$pgxcInstallDir/pgxl/nodes/gtm_pxy gtmProxy=y gtmProxyNames=(gtm_pxy1 gtm_pxy2) gtmProxyServers=(pg01 pg02) gtmProxyPorts=(20002 20002) gtmProxyDirs=($gtmProxyDir $gtmProxyDir) gtmPxyExtraConfig=none gtmPxySpecificExtraConfig=(none none) #-----Coordinators Master---------- coordMasterDir=$pgxcInstallDir/pgxl/nodes/coord coordSlaveDir=$pgxcInstallDir/pgxl/nodes/coord_slave coordArchLogDir=$pgxcInstallDir/pgxl/nodes/coord_archlog coordNames=(coord1 coord2) coordPorts=(5433 5433) poolerPorts=(5434 5434) coordPgHbaEntries=(0.0.0.0/0) coordMasterServers=(pg01 pg02) coordMasterDirs=($coordMasterDir $coordMasterDir) coordMaxWALsernder=5 coordMaxWALSenders=($coordMaxWALsernder $coordMaxWALsernder) #-----Coordinators Slave---------- coordSlave=y coordSlaveSync=y coordSlaveServers=(pg03 pg04) coordSlavePorts=(5433 5433) coordSlavePoolerPorts=(5434 5434) coordSlaveDirs=($coordSlaveDir $coordSlaveDir) coordArchLogDirs=($coordArchLogDir $coordArchLogDir) coordExtraConfig=coordExtraConfig cat > $coordExtraConfig <<EOF log_destination = 'stderr' logging_collector = on log_directory = 'pg_log' listen_addresses = '*' max_connections = 1000 EOF coordSpecificExtraConfig=(none none) coordExtraPgHba=none coordSpecificExtraPgHba=(none none) #------Datanodes Master---------- datanodeMasterDir=$pgxcInstallDir/pgxl/nodes/dnmaster datanodeSlaveDir=$pgxcInstallDir/pgxl/nodes/dnslave datanodeArchLogDir=$pgxcInstallDir/pgxl/nodes/dn_archlog primaryDatanode=pg03 datanodeNames=(datanode1 datanode2) datanodePorts=(5436 5436) datanodePoolerPorts=(5437 5437) datanodePgHbaEntries=(0.0.0.0/0) datanodeMasterServers=(pg03 pg04) datanodeMasterDirs=($datanodeMasterDir $datanodeMasterDir) datanodeMaxWalSender=0 datanodeMaxWALSenders=($datanodeMaxWalSender $datanodeMaxWalSender) datanodeSlave=n 2.2 Posgres-XL集群初始化

    上一篇:PostgreSQL之Foreign Data Wrappers使用指南

    栏    目:MariaDB

    下一篇:使用RPM软件包安装Oracle Database 18c

    本文标题:Postgres-XL集群部署与管理指南

    本文地址:http://www.jh-floor.com/shujuku/Mariadb/8670.html

    广告投放 | 联系我们 | 版权申明

    重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

    如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

    联系QQ:888888 | 邮箱:888888#qq.com(#换成@)

    Copyright © 2002-2017 青云站长教程网 版权所有 琼ICP备xxxxxxxx号