当前位置: 首页 > 工具软件 > Postgres-X2 > 使用案例 >

postgres-xl 基于pgxc_ctl搭建安装

公孙茂学
2023-12-01

1引言

Postgres-XL 是一个通用的 ACID 开源的、可方便进行水平扩展的 SQL 数据库解决方案。基于 PostgreSQL 数据库构建。Postgres-XL 可用于商业智能、大数据分析、Web 2.0、传统应用等场合。

此搭建过程是基于pgxc_ctl进行的安装的,除此外还有手动安装。

搭建过程参考:

http://blog.chinaunix.net/uid-20498361-id-4719153.html

http://blog.163.com/digoal@126/blog/static/163877040201441423449445/

http://files.postgres-xl.org/documentation/install-short.html 

http://www.postgres-xl.org/

 

主机规划:

cnode1 (gtm,coordinator,datanode)

cnode2(gtm_proxy,coordinator,datanode) 

cnode3(gtm_proxy,coordinator,datanode) 

 

2搭建过程

host设置

vi/etc/hosts

192.168.1.132cnode1

192.168.1.134 cnode2

192.168.1.133 cnode3

 

创建用户 
为每台主机创建用户postgres。
# useradd postgres

#passwd postgres

#输入密码postgres

l  权限设置

安装过程中需要在datanode上创建目录,所以需要有$PGHOME目录的写权限。 
在每台datanode和coordinator主机上执行以下命令: 
chown -R postgres:postgres /usr/local/pgsql 

 

设置环境变量  (到home路径最好,不然可能会没写权限)
# su - postgres 
$ vi .bashrc  
  exportPGHOME=/usr/local/pgsql 
  exportPGUSER=postgres 
  exportLD_LIBRARY_PATH=$PGHOME/lib 
  exportPATH=$PGHOME/bin:$PATH 

source ~/.bashrc //即时生效

 

 安装 

#yum install -y flex bison readline-devel zlib-devel openjade docbook-style-dsssl 

#wget http://jaist.dl.sourceforge.net/project/postgres-xl/Releases/Version_9.2rc/ postgres-xl-v9.2-src.tar.gz 
# tar -zxvf postgres-xl-v9.2-src.tar.gz 
# cd postgres-xl 


# ./configure 
# make 
# make install 

 

pgxc_ctl免密码运行(postgres用户下 )(gtm端)

mkdir~/.ssh

chmod 700~/.ssh

cd ~/.ssh

ssh-keygen-t rsa (一路回车 密码设空)

catid_rsa.pub >> authorized_keys

在 本机(cnode1) cnode2 cnode3 端 chmod 600 authorized_keys 

把该文件的内容添加到其他需要安装的机器的authorized_keys文件中。 
scp authorized_keys postgres@cnode2:/home/postgres/.ssh/ 
scp authorized_keys postgres@cnode3:/home/postgres/.ssh/ 
这样posgres用户就可以免密码登陆cnode2到cnode3主机了。 

#ssh cnode2

 

 pgxc_ctl的配置 (on gtm) 

/home/postgres/pgxc_ctl/pgxc_ctl.conf

# user and path
pgxcOwner=postgres
pgxcUser=$pgxcOwner
pgxcInstallDir=/usr/local/pgsql/
#gtm and gtmproxy
gtmMasterDir=/usr/local/pgsql/gtm
gtmMasterPort=6666
gtmMasterServer=cnode1
gtmSlave=n
#gtm proxy
gtmProxy=y
gtmProxyDir=/usr/local/pgsql
gtmProxyNames=(gtm_pxy1 gtm_pxy2)
gtmProxyServers=(cnode2 cnode3)
gtmProxyPorts=(20001 20001)
gtmProxyDirs=($gtmProxyDir/gtm_pxy1 $gtmProxyDir/gtm_pxy2)
gtmPxyExtraConfig=none
gtmPxySpecificExtraConfig=(none none)
#coordinator
coordMasterDir=/usr/local/pgsql
coordNames=(coord coord1 coord2)
coordPorts=(5432 5432 5432)
poolerPorts=(21011 21010 21012)
coordPgHbaEntries=(192.168.1.0/24)
coordMasterServers=(cnode1 cnode2 cnode3)
coordMasterDirs=($coordMasterDir/coord $coordMasterDir/coord1 $coordMasterDir/coord2)
coordMaxWALsernder=0
coordMaxWALSenders=($coordMaxWALsernder $coordMaxWALsernder $coordMaxWALsernder)
coordSlave=n
coordSpecificExtraConfig=(none none none)
coordSpecificExtraPgHba=(none node none)
#datanode
datanodeNames=(datanode datanode1 datanode2)
datanodePorts=(15431 15432 15433)
datanodePoolerPorts=(20011 20012 20012)
datanodePgHbaEntries=(192.168.1.0/24)
datanodeMasterServers=(cnode1 cnode2 cnode3)
datanodeMasterDir=/usr/local/pgsql
datanodeMasterDirs=($datanodeMasterDir/datanode $datanodeMasterDir/datanode1 $datanodeMasterDir/datanode2)
datanodeMaxWalSender=0
datanodeMaxWALSenders=($datanodeMaxWalSender $datanodeMaxWalSender $datanodeMaxWalSender)
datanodeSlave=n
primaryDatanode=datanode

 

至此搭建完成。

 

3运行

执行命令 (gtm端  /home/posgres/pgxc_ctl/)
#su - postgres 
启动: 
#pgxc_ctl -c pgxc_ctl.conf init all 
关闭:
 #pgxc_ctl -c pgxc_ctl.conf kill all
启动完成后可以在任意节点进入postgresql进行操作,如:
#psql
# select * from pgxc_node; #查看xl集群的所有节点
或者创建一个数据库
#create database testdb;
其他端可以通过 \c testdb 连接使用。
 
建议测试时关闭防火墙,否则可能会出现连接不到gtm等问题。
 
 
 
 
 
 

 

 

 类似资料: