postgres-xl 基于pgxc_ctl搭建安装

来源:互联网 发布:修改电脑mac地址不成功 编辑:程序博客网 时间:2024/04/28 02:48

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等问题。
 
 
 
 
 
 

 

 

0 0