PostgresXL使用说明文档.docx

上传人:b****5 文档编号:6208726 上传时间:2023-01-04 格式:DOCX 页数:32 大小:724.32KB
下载 相关 举报
PostgresXL使用说明文档.docx_第1页
第1页 / 共32页
PostgresXL使用说明文档.docx_第2页
第2页 / 共32页
PostgresXL使用说明文档.docx_第3页
第3页 / 共32页
PostgresXL使用说明文档.docx_第4页
第4页 / 共32页
PostgresXL使用说明文档.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

PostgresXL使用说明文档.docx

《PostgresXL使用说明文档.docx》由会员分享,可在线阅读,更多相关《PostgresXL使用说明文档.docx(32页珍藏版)》请在冰豆网上搜索。

PostgresXL使用说明文档.docx

PostgresXL使用说明文档

Postgres-XL使用说明文档

一、知识点介绍

Postgres-XL是一个基于PostgreSQL数据库的横向扩展开源SQL数据库集群,XL代表eXtensibleLattice,即可扩展的PG“格子”之意,以下简称PGXL。

官方称其既适合写操作压力较大的OLTP应用,又适合读操作为主的大数据应用。

它的前身是Postgres-XC(简称PGXC),PGXC是在PG的基础上加入了集群功能,主要适用于OLTP应用;PGXL是在PGXC的基础上的升级产品,加入了一些适用于OLAP应用的特性,如MassivelyParallelProcessing(MPP)特性。

通俗的说PGXL的代码是包含PG代码的,使用PGXL安装PG集群并不需要单独安装PG。

总体感觉PGXL这款工具还是相当成熟的,有官方网站http:

//www.postgres-xl.org/,文档也比较完善,也有商业公司2ndQuadrant在支持。

上面这张图就是PGXL集群的架构图,来自官方网站。

所有节点中分为三种角色:

GTM(全局事务管理器)、Coordinator(协调器)和Datanode(数据节点)。

需要注意一点是图中的LoadBalance组件并不属于PGXL集群本身,需要其他负载均衡工具实现。

GTM:

全局事务控制节点,保证集群数据的一致性,与Coordinator节点和Datanode节点不断通信,是整个集群的核心节点,只存在一个,可以存在一个GTMStandby节点,对GTM实时备份。

GTM一旦故障,整个集群立刻无法访问,此时可以切换到GTMStandby节点上。

如果部署了GTMStandby节点,就应该同时部署GTMProxy,一般和Coordinator、Datanode部署在同一台服务器上。

GTMProxy的作用代理Coordinator和Datanode对GTM的访问,起到减轻GTM负载的作用,另外一个重要的作用是帮助完成GTM的故障切换,当GTM节点发生故障后,GTMStandby成为新的GTM,此时Coordinator和Datanode节点并不需要重新指定GTM地址,只需要GTMProxy重新连接到新的GTM地址即可。

Coordinator:

接收数据访问请求的节点,本质上是由PG后台进程组成。

接收的一条查询后,Coordinator节点执行查询计划,然后会根据查询数据涉及的数据节点将查询分发给相关的数据节点。

写入数据时,也会根据不同的数据分布策略将数据写入相关的节点。

可以说Coordinator节点上保存着集群的全局数据位置。

Coordinator节点可以任意扩展,各个节点之间除了访问地址不同以外是完全对等的,通过一个节点更新的数据可以在另一个节点上立刻看到。

每个Coordinator节点可以配置一个对应的standby节点,避免单点故障。

Datanode:

实际存取数据的节点,接收Coordinator的请求并执行SQL语句存取数据,节点之间也会互相通信。

一般的,一个节点上的数据并不是全局的,数据节点不直接对外提供数据访问。

一个表的数据在数据节点上的分布存在两种模式:

复制模式和分片模式,复制模式下,一个表的数据在指定的节点上存在多个副本;分片模式下,一个表的数据按照一定的规则分布在多个数据节点上,这些节点共同保存一份完整的数据。

这两种模式的选择是在创建表的时候执行CREATETABLE语句指定的,具体语法如下:

CREATETABLEtable_name(...)

DISTRIBUTEBY

HASH(col)|MODULO(col)|ROUNDROBIN|REPLICATION

TONODE(nodename1,nodename2...)

可以看到,如果DISTRIBUTEBY后面是REPLICATION,则是复制模式,其余则是分片模式,HASH指的是按照指定列的哈希值分布数据,MODULO指的是按照指定列的取摩运算分布数据,ROUNDROBIN指的是按照轮询的方式分布数据。

TONODE指定了数据分布的节点范围,如果没有指定则默认所有数据节点参与数据分布。

如果没有指定分布模式,即使用普通的CREATETABLE语句,PGXL会默认采用分片模式将数据分布到所有数据节点。

二、安装说明

1.下载安装包

https:

//www.postgres-xl.org/download/

当前最新版本为:

postgres-xl-9.5r1.6.tar.bz2

2.主机规划

服务器分配:

(手动配置分配)

操作系统

IP地址

主机名称

节点类型

其他

Kylin3.2

192.168.51.2

scada_server1

gtm,coordinator1,coordinator2

Kylin3.2

192.168.51.125

scada_server2

datanode1,datanode2

Kylin3.2

192.168.51.120

scada_server3

datanode3,datanode4

服务器分配:

(自动配置分配)

操作系统

IP地址

主机名称

节点类型

其他

Kylin3.2

192.168.51.2

scada_server1

gtm

Kylin3.2

192.168.51.125

scada_server2

coordinator1,datanode1,datanode2

Kylin3.2

192.168.51.120

scada_server3

coordinator2,datanode3,datanode4

各个节点划分:

(手动配置划分)

节点名称

所在机器

节点类型

端口号

连接池端口号

gtm

scada_server1@192.168.51.2

gtm

6666

coord1

scada_server1@192.168.51.2

coordinator

5301

6701

coord2

scada_server1@192.168.51.2

coordinator

5302

6702

dn1

scada_server2@192.168.51.125

datanode

5401

6801

dn2

scada_server2@192.168.51.125

datanode

5402

6802

dn3

scada_server3@192.168.51.120

datanode

5401

6801

dn4

scada_server4@192.168.51.120

datanode

5402

6802

各个节点划分:

(自动配置划分)

节点名称

所在机器

节点类型

端口号

连接池端口号

gtm

scada_server1@192.168.51.2

gtm

20001

gtm_pxy

scada_server2@192.168.51.125

gtm_proxy

20001

coord1

scada_server2@192.168.51.125

coordinator

20004

20010

gtm_pxy

scada_server3@192.168.51.120

gtm_proxy

20001

coord2

scada_server3@192.168.51.120

coordinator

20004

20010

dn1

scada_server2@192.168.51.125

datanode

20008

20012

dn2

scada_server2@192.168.51.125

datanode

20009

20013

dn3

scada_server3@192.168.51.120

datanode

20008

20012

dn4

scada_server4@192.168.51.120

datanode

20009

20013

3.修改节点Host配置

每个节点已root用户执行下面操作:

#vi/etc/hosts

在文件后面追加以下内容:

192.168.51.2scada_server1

192.168.51.125scada_server2

192.168.51.120scada_server3

4.安装依赖软件包

需要安装的依赖包:

openssh-clients,flex,bison,readline-devel,zlib-devel,openjade,docbook-style-dsssl,gcc

检查需要依赖的包:

#rpm-qa|grepxxx

如果上述命令能够输出包的信息则说明该包已经存在。

(kylin3.2操作系统自带上述所有包!

5.卸载系统自带PostgreSQL数据库

以root用户执行:

查询系统是否安装自带软件:

查询:

#rpm-qa|greppostgresql

若有则删除已安装软件:

删除:

#rpm-qa|greppostgresql|xargsrpm-e--nodeps

查询是否删除干净:

查询:

#rpm-qa|greppostgresql

6.每个节点添加postgres用户

以root用户执行:

建立组:

#groupaddpostgres

建立用户:

#useradd-m-d/home/postgrespostgres-gpostgres

初始化密码:

#passwdpostgres

输入密码:

abcd.135(举例)

注:

如果需要删除postgres用户,可以以root用户执行命令:

#userdel-rpostgres

7.配置无密码登录

既需要配置postgres用户,还需要配置root用户。

-------root用户-----------------------------------------

---scada_server1节点

[root@scada_server1~]#ssh-keygen

[root@scada_server1~]#ssh-copy-id-i~/.ssh/id_rsa.pubroot@scada_server1

[root@scada_server1~]#ssh-copy-id-i~/.ssh/id_rsa.pubroot@scada_server2

[root@scada_server1~]#ssh-copy-id-i~/.ssh/id_rsa.pubroot@scada_server3

---scada_server2节点

[root@scada_server2~]#ssh-keygen

[root@scada_server2~]#ssh-copy-id-i~/.ssh/id_rsa.pubroot@scada_server2

[root@scada_server2~]#ssh-copy-id-i~/.ssh/id_rsa.pubroot@scada_server1

[root@scada_server2~]#ssh-copy-id-i~/.ssh/id_rsa.pubroot@scada_server3

---scada_server3节点

[root@scada_server3~]#ssh-keygen

[root@scada_server3~]#ssh-copy-id-i~/.ssh/id_rsa.pubroot@scada_server3

[root@scada_server3~]#ssh-copy-id-i~/.ssh/id_rsa.pubroot@scada_server1

[root@scada_server3~]#ssh-copy-id-i~/.ssh/id_rsa.pubroot@scada_server2

--------用户postgres------------------------------------

---scada_server1节点

[postgres@scada_server1~]$ssh-keygen

[postgres@scada_server1~]$ssh-copy-id-i~/.ssh/id_rsa.pubpostgres@scada_server1

[postgres@scada_server1~]$ssh-copy-id-i~/.ssh/id_rsa.pubpostgres@scada_server2

[postgres@scada_server1~]$ssh-copy-id-i~/.ssh/id_rsa.pubpostgres@scada_server3

---scada_server2节点

[postgres@scada_server2~]$ssh-keygen

[postgres@scada_server2~]$ssh-copy-id-i~/.ssh/id_rsa.pubpostgres@scada_server2

[postgres@scada_server2~]$ssh-copy-id-i~/.ssh/id_rsa.pubpostgres@scada_server1

[postgres@scada_server2~]$ssh-copy-id-i~/.ssh/id_rsa.pubpostgres@scada_server3

---scada_server3节点

[postgres@scada_server3~]$ssh-keygen

[postgres@scada_server3~]$ssh-copy-id-i~/.ssh/id_rsa.pubpostgres@scada_server3

[postgres@scada_server3~]$ssh-copy-id-i~/.ssh/id_rsa.pubpostgres@scada_server1

[postgres@scada_server3~]$ssh-copy-id-i~/.ssh/id_rsa.pubpostgres@scada_server2

8.修改内核参数

执行:

#vi/etc/sysctl.conf

添加以下参数

kernel.sem=50100128256000501002560

执行:

#sysctl-p

使参数生效

执行:

#ipcs-ls

验证参数是否生效。

------SemaphoreLimits--------

maxnumberofarrays=2560

maxsemaphoresperarray=50100

maxsemaphoressystemwide=128256000

maxopspersemopcall=50100

semaphoremaxvalue=32767

9.配置防火墙

9.1关闭防火墙(以root用户执行)

#serviceiptablesstop

#chkconfigiptablesoff --重启后生效

9.2在防火墙中开放端口

具体需要开放的端口参加(主机规划部分),以5302为例:

使用这些命令来永久打开一个新端口(如TCP/5302)。

#sudofirewall-cmd--zone=public--add-port=5302/tcp--permanent

#sudofirewall-cmd--reload

注:

需要保证防火墙是开启的才能执行。

注:

查看防火墙状态命令:

systemctlstatusfirewalld

注:

开启防火墙:

systemctlstartfirewalld

注:

关闭防火墙:

systemctlstopfirewalld

10.关闭SELinux

查看SELinux状态,执行:

#/usr/sbin/sestatus-v

##如果SELinux status参数为enabled即为开启状态

永久关闭,执行:

#vi/etc/selinux/config --重启后生效

将SELINUX=enforcing改为SELINUX=disabled

11.安装Postgres-XL软件

11.1执行postgrex-xl软件安装

--scada_server1节点--

[root@scada_server1~]#cd/mytmp

[root@scada_server1mytmp]#tar-jxvfpostgres-xl-9.5r1.6.tar.bz2

[root@scada_server1mytmp]#chown-Rpostgres:

postgrespostgres-xl-9.5r1.6

[root@scada_server1mytmp]#su-postgres

[postgres@scada_server1~]$cd/mytmp/postgres-xl-9.5r1.6

[postgres@scada_server1postgres-xl-9.5r1.6]$./configure--prefix=/home/postgres/pgxl9.5

[postgres@scada_server1postgres-xl-9.5r1.6]$make

[postgres@scada_server1postgres-xl-9.5r1.6]$makeinstall

--安装拓展--

[postgres@scada_server1postgres-xl-9.5r1.6]$cdcontrib

[postgres@scada_server1contrib]$make

[postgres@scada_server1contrib]$makeinstall

--scada_server2节点--

[root@scada_server2~]#cd/mytmp

[root@scada_server2mytmp]#tar-jxvfpostgres-xl-9.5r1.6.tar.bz2

[root@scada_server2mytmp]#chown-Rpostgres:

postgrespostgres-xl-9.5r1.6

[root@scada_server2mytmp]#su-postgres

[postgres@scada_server2~]$cd/mytmp/postgres-xl-9.5r1.6

[postgres@scada_server2postgres-xl-9.5r1.6]$./configure--prefix=/home/postgres/pgxl9.5

[postgres@scada_server2postgres-xl-9.5r1.6]$make

[postgres@scada_server2postgres-xl-9.5r1.6]$makeinstall

--安装拓展--

[postgres@scada_server2postgres-xl-9.5r1.6]$cdcontrib

[postgres@scada_server2contrib]$make

[postgres@scada_server2contrib]$makeinstall

--scada_server3节点--

[root@scada_server3~]#cd/mytmp

[root@scada_server3mytmp]#tar-jxvfpostgres-xl-9.5r1.6.tar.bz2

[root@scada_server3mytmp]#chown-Rpostgres:

postgrespostgres-xl-9.5r1.6

[root@scada_server3mytmp]#su-postgres

[postgres@scada_server3~]$cd/mytmp/postgres-xl-9.5r1.6

[postgres@scada_server3postgres-xl-9.5r1.6]$./configure--prefix=/home/postgres/pgxl9.5

[postgres@scada_server3postgres-xl-9.5r1.6]$make

[postgres@scada_server3postgres-xl-9.5r1.6]$makeinstall

--安装拓展--

[postgres@scada_server3postgres-xl-9.5r1.6]$cdcontrib

[postgres@scada_server3contrib]$make

[postgres@scada_server3contrib]$makeinstall

11.2配置环境变量

修改三个服务器节点的环境变量,执行以下操作:

#su-postgres

#vi.bashrc

添加如下内容:

exportPGHOME=/home/postgres/pgxl9.5

exportPGUSER=postgres

exportLD_LIBRARY_PATH=$PGHOME/lib:

$LD_LIBRARY_PATH

exportPATH=$PGHOME/bin:

$PATH

效果如下图所示:

使环境变量生效:

#source~/.bashrc

验证环境变量是否生效:

pg_ctl--version

输出:

pg_ctl(PostgreSQL)9.5.8(Postgres-XL9.5r1.6)

11.3创建gtm、coordinator、datanode相关目录

--scada_server1节点--

[postgres@scada_server1~]$cd$PGHOME

[postgres@scada_server1pgxl9.5]$mkdirdata

[postgres@scada_server1pgxl9.5]$cddata

[postgres@scada_server1data]$mkdirgtm

[postgres@scada_server1data]$mkdircoord1

[postgres@scada_server1data]$mkdircoord2

--scada_server2节点--

[postgres@scada_ser

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1