Stado搭建PostgreSQL集群
(一) 版本信息
系统:LINUX CENTOS 6.4
POSTGRE: postgresql-8.4
STADO:Stado2.5
This software requires the Java Runtime Environment 5, version 1.5.0_12 or later.
(二) 环境架构
服务器-VMWARE虚拟机三台
Coordinate node0: host:192.168.204.134 安装stado以及存储元数据的postgresql数据库
Coordinate node2: host:192.168.204.134 安装postgresql数据库,作为节点1
Coordinate node3: host:192.168.204.134安装postgresql数据库,作为节点2
(三) 在三台服务器上安装POSTGRESQL数据库
安装过程略。
3.1需要将postgre安装目录授权给postgres
#useradd postgres
#su - postgres
#/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
以下是配置postgresql数据库:【每个node下】
3.1.1修改postgresql配置文件(postgresql.conf)
listen_address='*'
数据库服务的监听地址(去掉只在127.0.0.1这个地址上进行监听的限制)当一台服务器上启动多个服务,可以设定每个服务在不同 的网卡和IP地址上进行监听
3.1.2修改postgresql配置文件(pg_hba.conf)
允许哪个账户和客户端可以连接到本服务器
############################################
# TYPE DATABASE USER CIDR-ADDRESS METHOD
host all all 192.168.204.0/24 md5
############################################
备注:
以上设置可以使IP段为192.169.204.*的所有客户端连接到本服务器,加密方式为MD5,如果允许所有地址都能连接则设为:0.0.0.0/0,如果只限定某个IP,设置为192.168.204.123/32
4.建立postgresql数据库用户【每个node下】
/usr/local/pgsql/bin/createuser –d –E stado –U postgres -P
8.4版本中createuser位于/usr/bin/目录下
5. 在coordinator 【本例中为node0】上建立密码文件
#touch /home/user/.pgpass 其中user为linux系统用户。
#chmod 600 /home/user/.pgpass 降低访问权限
文件格式:hostname:port:database:username:password
文件内容:
########################################
192.168.204.134:5432:*:stado:stado
192.168.204.135:5432:*:stado:stado
192.168.204.136:5432:*:stado:stado
########################################
----------------------------------------------------------------------------------------------------------------------------
#gedit ~/.pgpass
#chmod ~/.pgpass 降低访问权限
文件格式:hostname:port:database:username:password
文件内容:
########################################
192.168.204.134:5432:*:stado:stado
192.168.204.135:5432:*:stado:stado
192.168.204.136:5432:*:stado:stado
########################################
这样从node0(192.168.204.134)连接到各个underlying database的node上,就不需要输入密码了。在pgagmin中可以查看.pgpass文件。
之后可以进行测试,测试连接underlying db是否能够无需密码连通
[如果不行,请核对以上设置,否则接下来的步骤无法完成]
#/usr/local/pgsql/bin/createdb -h 192.168.204.134 -U stado testdb
#/usr/local/pgsql/bin/createdb -h 192.168.204.135 -U stado testdb
#/usr/local/pgsql/bin/createdb -h 192.168.204.136 -U stado testdb
(四) 在node0即coordinate上安装stado
1. 将下好的stado2.5解压,将stado文件夹解压到/usr/local/目录中。
2. 设置权限:
#chown postgres:postgres -R /usr/local/stado
#chmod 700 /usr/local/stado/bin/*.sh
#chmod 775 /usr/local/stado/log
#chmod 755 /usr/local/stado/bin/gs-cmdline.sh
#chmod 600 /usr/local/stado/config/*
3. 在node0上修改stado的配置文件/usr/local/stado/conf/stado.config
修改连接underlying database node 的默认用户名、密码、端口号
xdb.default.dbusername=stado
xdb.default.dbpassword=stado
xdb.default.dbport=5432
修改node的个数及IP地址
xdb.nodecount=2
xdb.node.1.dbhost=192.168.204.135
xdb.node.2.dbhost=192.168.204.136
元数据库名称及IP地址
xdb.metadata.database=XDBSYS
xdb.metadata.dbhost=localhost
4)初始化gridsql 并启动相关服务
创建初始化数据库XDBSYS,并创建默认用户admin,密码admin
#gs-createmddb.sh -u admin -p admin
这里的用户是指stado的用户。
启动gridsql服务
#gs-server.sh【备注:每修改一次都需要重新执行gs-server的启动】
创建数据库
#gs-createdb.sh -d xtest -u admin -p admin -n 1,2
其中,-n为config中的结点编号。
将数据库bring online
gs-server.sh -d xtest
测试数据库
#gs-cmdline.sh -d xtest -u admin -p admin
Stado->create table mytable (id int) partitioning key id on all;
Stado ->select * from mytable;
Stado ->drop table mytable;
#gs-dbstart.sh -d xtest -u admin -p admin
备注:本例中,所建数据库名称为xtest1516
节点一中,存在xtest1516__N1数据库
节点二中,存在xtest516__N2数据库