[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