[Postgres-xl-bugs] met a question in cluster installation, How can I fix it?

郑晓红 zhengxiaohong at clinkworld.com
Mon Dec 22 01:15:16 PST 2014


hello all:


I install and configure postgres-xl like following step, and finally I met some question:


* machine plan 
master (gtm) 
vm01 (gtm_proxy,coordinator,datanode) 
vm02 (gtm_proxy,coordinator,datanode) 

* IP、HostName configuration 
# vi /etc/hosts 
192.168.61.20 master 
192.168.61.21 vm01 
192.168.61.22 vm02 


* compile and install 
# yum install -y flex bison readline-devel zlib-devel openjade docbook-style-dsssl 
# wget http://softlayer-dal.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 




* create user
# useradd postgres 


* set environment   variables
# su - postgres 
$ vi .bash_profile 
export PGHOME=/usr/local/pgsql 
export PGUSER=postgres 
export LD_LIBRARY_PATH=$PGHOME/lib 
export PATH=$PGHOME/bin:$PATH 



* initalization 


install GTM
[root at master ~]# mkdir /usr/local/pgsql/data_gtm 
[root at master  ~]# chown postgres:postgres /usr/local/pgsql/data_gtm/ 
[root at master  ~]# su - postgres 
[postgres at master ~]$ initgtm -D /usr/local/pgsql/data_gtm/ -Z gtm 

in machine vm01 run following commands:

[root at vm01 ~]# mkdir -p /usr/local/pgsql/data/data_gtm_proxy 
[root at vm01 ~]# mkdir -p /usr/local/pgsql/data/data_coord1 
[root at vm01 ~]# mkdir -p /usr/local/pgsql/data/data_datanode1 
[root at vm01 ~]# chown -R postgres:postgres /usr/local/pgsql/data/ 
[root at vm01 ~]# su - postgres 
[postgres at vm01 ~]$ initdb -D /usr/local/pgsql/data/data_coord1/ --nodename coord1 
[postgres at vm01 ~]$ initdb -D /usr/local/pgsql/data/data_datanode1/ --nodename datanode1 
[postgres at vm01 ~]$ initgtm -D /usr/local/pgsql/data/data_gtm_proxy/ -Z gtm_proxy 

in machine vm02 run following commands:

[root at vm02 ~]# mkdir -p /usr/local/pgsql/data/data_gtm_proxy 
[root at vm02 ~]# mkdir -p /usr/local/pgsql/data/data_coord2 
[root at vm02 ~]# mkdir -p /usr/local/pgsql/data/data_datanode2 
[root at vm02 ~]# chown -R postgres:postgres /usr/local/pgsql/data/ 
[root at vm02 ~]# su - postgres 
[postgres at vm02 ~]$ initdb -D /usr/local/pgsql/data/data_coord2/ --nodename coord2 
[postgres at vm02 ~]$ initdb -D /usr/local/pgsql/data/data_datanode2/ --nodename datanode2 
[postgres at vm02 ~]$ initgtm -D /usr/local/pgsql/data/data_gtm_proxy/ -Z gtm_proxy 




* configuration


GTM configuration
on gtm machine: 

[postgres at gtm ~]$ vi /usr/local/pgsql/data_gtm/gtm.conf 
nodename = 'gtm' 
listen_addresses = '*' 
port = 6666 
startup = ACT 
keepalives_idle = 60 
keepalives_interval = 10 
keepalives_count = 10 
log_file = 'gtm.log' 
log_min_messages = WARNING 




* gtm_proxy configuration 

on machine vm01 run following commands: 

[postgres at vm01 ~]$ vi /usr/local/pgsql/data/data_gtm_proxy/gtm_proxy.conf 
nodename = 'gtm_proxy1' 
listen_addresses = '*' 
port = 6661 
worker_threads = 1 
gtm_host = 'master'
gtm_port = 6666 
gtm_connect_retry_interval = 5 
keepalives_idle = 60 
keepalives_interval = 10 
keepalives_count = 10 
log_file = 'gtm_proxy1.log' 
log_min_messages = WARNING 


on machine vm02 run following commands: 


[postgres at vm02 ~]$ vi /usr/local/pgsql/data/data_gtm_proxy/gtm_proxy.conf 
nodename = 'gtm_proxy2' 
listen_addresses = '*' 
port = 6662 
worker_threads = 1 
gtm_host = 'master' 
gtm_port = 6666 
gtm_connect_retry_interval = 5 
keepalives_idle = 60 
keepalives_interval = 10 
keepalives_count = 10 
log_file = 'gtm_proxy2.log' 
log_min_messages = WARNING 


* coordinator configuraton 

on machine vm01 run following commands:

[postgres at vm01 ~]$ vi /usr/local/pgsql/data/data_coord1/postgresql.conf 
listen_addresses = '*' 
port = 5432 
pooler_port = 6667 
max_pool_size = 100 
pool_conn_keepalive = 600 
pool_maintenance_timeout = 30 
max_coordinators = 16 
max_datanodes = 16 
gtm_host = 'localhost' 
gtm_port = 6661 
pgxc_node_name = 'coord1' 

[postgres at vm01 ~]$ vi /usr/local/pgsql/data/data_coord1/pg_hba.conf 
[add follow line] 
host all all 192.168.61.0/24 trust 

on machine vm02 run following commands:

[postgres at vm02 ~]$ vi /usr/local/pgsql/data/data_coord1/postgresql.conf 
listen_addresses = '*' 
port = 5432 
pooler_port = 6667 
max_pool_size = 100 
pool_conn_keepalive = 600 
pool_maintenance_timeout = 30 
max_coordinators = 16 
max_datanodes = 16 
gtm_host = 'localhost' 
gtm_port = 6662 
pgxc_node_name = 'coord2' 

[postgres at vm02 ~]$ vi /usr/local/pgsql/data/data_coord1/pg_hba.conf 
[添加] 
host all all 192.168.61.0/24 trust 


* datanode configuration 

on machine vm01 run following commands:

[postgres at vm01 ~]$ vi /usr/local/pgsql/data/data_datanode1/postgresql.conf 
listen_addresses = '*' 
port = 15432 
pooler_port = 6668 
max_pool_size = 100 
pool_conn_keepalive = 600 
pool_maintenance_timeout = 30 
max_coordinators = 16 
max_datanodes = 16 
gtm_host = 'localhost' 
gtm_port = 6661 
pgxc_node_name = 'datanode1' 

[postgres at vm01 ~]$ vi /usr/local/pgsql/data/data_coord1/pg_hba.conf 
[add following line] 
host all all 192.168.61.0/24 trust 

on machine vm02 run following commands:

[postgres at vm02 ~]$ vi /usr/local/pgsql/data/data_datanode1/postgresql.conf 
listen_addresses = '*' 
port = 15432 
pooler_port = 6668 
max_pool_size = 100 
pool_conn_keepalive = 600 
pool_maintenance_timeout = 30 
max_coordinators = 16 
max_datanodes = 16 
gtm_host = 'localhost' 
gtm_port = 6662 
pgxc_node_name = 'datanode2' 

[postgres at vm02 ~]$ vi /usr/local/pgsql/data/data_coord1/pg_hba.conf 
[添加] 
host all all 192.168.61.0/24 trust


* start  up


start GTM

[postgres at master ~]$ gtm_ctl start -Z gtm -D /usr/local/pgsql/data_gtm/ 
server starting 

[postgres at master ~]$ tail /usr/local/pgsql/data_gtm/gtm.log 
1:140169430058752:2014-06-12 07:51:17.652 CST -LOG: Starting GTM server at (*:6666) -- control file /usr/local/pgsql/data_gtm/gtm.control 
LOCATION: main, main.c:601 
1:140169430058752:2014-06-12 07:51:17.652 CST -LOG: Restoring last GXID to 10000 

LOCATION: GTM_RestoreTxnInfo, gtm_txn.c:2673 
1:140169430058752:2014-06-12 07:51:17.652 CST -LOG: Started to run as GTM-Active. 
LOCATION: main, main.c:682 




start up gtm_proxy

on machine vm01run following commands:

[postgres at vm01 ~]$ gtm_ctl start -Z gtm_proxy -D /usr/local/pgsql/data/data_gtm_proxy/ 
server starting 
[postgres at vm01 ~]$ tail /usr/local/pgsql/data/data_gtm_proxy/gtm_proxy1.log 
1:139860198487808:2014-06-12 07:53:59.665 CST -LOG: Starting GTM proxy at (*:6661) 
LOCATION: main, proxy_main.c:805 

on machine vm02 run following commands:

[postgres at vm02 ~]$ gtm_ctl start -Z gtm_proxy -D /usr/local/pgsql/data/data_gtm_proxy/ 
server starting 
[postgres at vm02 ~]$ tail /usr/local/pgsql/data/data_gtm_proxy/gtm_proxy2.log 
1:140266037184256:2014-06-12 07:54:16.440 CST -LOG: Starting GTM proxy at (*:6662) 
LOCATION: main, proxy_main.c:805 






start up datanode

on machine vm01 run following commands:

[postgres at vm01 ~]$ pg_ctl start -Z datanode -D /usr/local/pgsql/data/data_datanode1/ 


on machine vm2 run following commands:

[postgres at vm02 ~]$ pg_ctl start -Z datanode -D /usr/local/pgsql/data/data_datanode2/ 





start up coordinator

on machine vm01 run following commands:

[postgres at vm01 ~]$ pg_ctl start -Z coordinator -D /usr/local/pgsql/data/data_coord1/ 


on machine vm2 run following commands:

[postgres at vm02 ~]$ pg_ctl start -Z coordinator -D /usr/local/pgsql/data/data_coord2/ 


* registe node information 

[postgres at vm01 ~]$ psql -p 5432 -c "select * from pgxc_node" 
node_name | node_type | node_port | node_host | nodeis_primary | nodeis_preferred | node_id 
-----------+-----------+-----------+-----------+----------------+------------------+------------ 
coord1 | C | 5432 | localhost | f | f | 1885696643 
(1 row) 


[postgres at vm02 ~]$ psql -p 5432 -c "select * from pgxc_node" 
node_name | node_type | node_port | node_host | nodeis_primary | nodeis_preferred | node_id 
-----------+-----------+-----------+-----------+----------------+------------------+------------- 
coord2 | C | 5432 | localhost | f | f | -1197102633 
(1 row) 






* execute registration 

vm01: 

psql -p 5432 -c "delete from pgxc_node"
psql -p 5432 -c "select * from pgxc_node"
psql -p 5432 -c "CREATE NODE coord1 WITH (TYPE='coordinator',HOST='vm01',PORT=5432)"
psql -p 5432 -c "CREATE NODE coord2 WITH (TYPE='coordinator',HOST='vm02',PORT=5432)"
psql -p 5432 -c "CREATE NODE datanode1 WITH (TYPE='datanode',HOST='vm01',PORT=15432)"
psql -p 5432 -c "CREATE NODE datanode2 WITH (TYPE='datanode',HOST='vm02',PORT=15432)"
psql -p 5432 -c "select pgxc_pool_reload()"




check:

[postgres at vm01 ~]$ psql -p 5432 -c "select * from pgxc_node" 
node_name | node_type | node_port | node_host | nodeis_primary | nodeis_preferred | node_id 
-----------+-----------+-----------+-----------+----------------+------------------+------------- 
coord1 | C | 5432 | vm01 | f | f | 1885696643 
coord2 | C | 5432 | vm02 | f | f | -1197102633 
datanode1 | D | 15432 | vm01 | f | f | 888802358 
datanode2 | D | 15432 | vm02 | f | f | -905831925 
(4 rows) 

reload:

[postgres at vm01 ~]$ psql -p 5432 -c "select pgxc_pool_reload()" 
pgxc_pool_reload 
------------------ 
t 
(1 row) 




vm02:


psql -p 5432 -c "delete from pgxc_node"
psql -p 5432 -c "select * from pgxc_node"
psql -p 5432 -c "CREATE NODE coord1 WITH (TYPE='coordinator',HOST='vm01',PORT=5432)"
psql -p 5432 -c "CREATE NODE coord2 WITH (TYPE='coordinator',HOST='vm02',PORT=5432)"
psql -p 5432 -c "CREATE NODE datanode1 WITH (TYPE='datanode',HOST='vm01',PORT=15432)" 
psql -p 5432 -c "CREATE NODE datanode2 WITH (TYPE='datanode',HOST='vm02',PORT=15432)"
psql -p 5432 -c "select pgxc_pool_reload()"


check:

[postgres at vm02 ~]$ psql -p 5432 -c "select * from pgxc_node" 
node_name | node_type | node_port | node_host | nodeis_primary | nodeis_preferred | node_id 
-----------+-----------+-----------+-----------+----------------+------------------+------------- 
coord2 | C | 5432 | vm02 | f | f | -1197102633 
coord1 | C | 5432 | vm01 | f | f | 1885696643 
datanode1 | D | 15432 | vm01   | f | f | 888802358 
datanode2 | D | 15432 | vm02   | f | f | -905831925 
(4 rows) 


reload: 

[postgres at vm02 ~]$ psql -p 5432 -c "select pgxc_pool_reload()" 
pgxc_pool_reload 
------------------ 
t 
(1 row) 



* question 

when I run command to create database ERROR happend: 

postgres=# create database pgxc; 
LOG: Will fall back to local snapshot for XID = 19764, source = 0, 
gxmin = 0, autovac launch = 0, autovac = 0, normProcMode = 0, postEnv = 1 
ERROR: node "coord1_19791" does not exist 
STATEMENT: SET global_session TO coord1_19791; 
ERROR: node "coord1_19791" does not exist 
STATEMENT: SET global_session TO coord1_19791; 
CREATE DATABASE 



Is this a bug?
How can I to fix it?
Thanks!
 









zhengxiaohong at clinkworld.com
2014/12/22 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.postgres-xl.org/private.cgi/postgres-xl-bugs-postgres-xl.org/attachments/20141222/23de14a1/attachment.htm>


More information about the postgres-xl-bugs mailing list