Open l1t1 opened 4 years ago
you can use virtual machine in one host. It works.
readme is relatively simple to write, if you do not understand, you can refer to it in detail:
https://github.com/Tencent/TBase/wiki/1%E3%80%81TBase_Quick_Start
Copy the content of the configuration file pgxc_ctl.conf here and change the IP directly
install a simple cluster on a local machine with 1 Coordinator, 2 Datanodes and 1 GTM ( https://www.postgres-xl.org/documentation/install-short.html )
it works, but no network config.
https://www.pgxl-xl.org/downloads/pgxl-xl-10r1.1.tar.gz
./configure
gmake
su
gmake install
adduser pgxl
mkdir /usr/local/pgsql/data_coord1
mkdir /usr/local/pgsql/data_datanode_1
mkdir /usr/local/pgsql/data_datanode_2
mkdir /usr/local/pgsql/data_gtm
chown pgxl /usr/local/pgsql/data_coord1
chown pgxl /usr/local/pgsql/data_datanode_1
chown pgxl /usr/local/pgsql/data_datanode_2
chown pgxl /usr/local/pgsql/data_gtm
su - pgxl
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data_coord1 \
--nodename coord1
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data_datanode_1 \
--nodename datanode_1
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data_datanode_2 \
--nodename datanode_2
/usr/local/pgsql/bin/initgtm -D /usr/local/pgsql/data_gtm -Z gtm
/usr/local/pgsql/bin/gtm -D /usr/local/pgsql/data_gtm >logfile 2>&1 &
/usr/local/pgsql/bin/postgres --datanode -p 15432 -c pooler_port=40101 \
-D /usr/local/pgsql/data_datanode_1 >logfile 2>&1 &
/usr/local/pgsql/bin/postgres --datanode -p 15433 -c pooler_port=40102 \
-D /usr/local/pgsql/data_datanode_2 >logfile 2>&1 &
/usr/local/pgsql/bin/postgres --coordinator -c pooler_port=40100 \
-D /usr/local/pgsql/data_coord1 >logfile 2>&1 &
/usr/local/pgsql/bin/psql -c "ALTER NODE coord1 \
WITH (TYPE = 'coordinator', PORT = 5432)" postgres
/usr/local/pgsql/bin/psql -c "CREATE NODE datanode_1 \
WITH (TYPE = 'datanode', PORT = 15432)" postgres
/usr/local/pgsql/bin/psql -c "CREATE NODE datanode_2 \
WITH (TYPE = 'datanode', PORT = 15433)" postgres
/usr/local/pgsql/bin/psql -c "EXECUTE DIRECT ON (datanode_1) \
'ALTER NODE datanode_1 WITH (TYPE = ''datanode'', PORT = 15432)'" postgres
/usr/local/pgsql/bin/psql -c "EXECUTE DIRECT ON (datanode_1) \
'CREATE NODE datanode_2 WITH (TYPE = ''datanode'', PORT = 15433)'" postgres
/usr/local/pgsql/bin/psql -c "EXECUTE DIRECT ON (datanode_1) \
'CREATE NODE coord1 WITH (TYPE = ''coordinator'', PORT = 5432)'" postgres
/usr/local/pgsql/bin/psql -c "EXECUTE DIRECT ON (datanode_2) \
'ALTER NODE datanode_2 WITH (TYPE = ''datanode'', PORT = 15433)'" postgres
/usr/local/pgsql/bin/psql -c "EXECUTE DIRECT ON (datanode_2) \
'CREATE NODE datanode_1 WITH (TYPE = ''datanode'', PORT = 15432)'" postgres
/usr/local/pgsql/bin/psql -c "EXECUTE DIRECT ON (datanode_2) \
'CREATE NODE coord1 WITH (TYPE = ''coordinator'', PORT = 5432)'" postgres
/usr/local/pgsql/bin/psql -c "SELECT pgxc_pool_reload()" postgres
/usr/local/pgsql/bin/psql -c "EXECUTE DIRECT ON (datanode_1) \
'SELECT pgxc_pool_reload()'" postgres
/usr/local/pgsql/bin/psql -c "EXECUTE DIRECT ON (datanode_2) \
'SELECT pgxc_pool_reload()'" postgres
/usr/local/pgsql/bin/createdb test
/usr/local/pgsql/bin/psql test
then connect and query by
[pgxl@VM_0_13_centos ~]$ /usr/local/pgsql/bin/createdb test
[pgxl@VM_0_13_centos ~]$ /usr/local/pgsql/bin/psql test
psql (PGXL 10r1.1, based on PG 10.6 (Postgres-XL 10r1.1))
Type "help" for help.
test=# 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
datanode_1 | D | 15432 | localhost | f | f | -675012441
datanode_2 | D | 15433 | localhost | f | f | -1047623914
(3 rows)
the ip address must use that ifconfig command returns
install commands of tbase ,copied from (https://github.com/Tencent/TBase/wiki/5%E3%80%81TBase%E7%BB%84%E4%BB%B6%E5%AE%89%E8%A3%85%E5%8F%8A%E7%AE%A1%E7%90%86)
adduser tbase21
mkdir /data/tbase21/data_cn1
mkdir /data/tbase21/data_dn1
mkdir /data/tbase21/data_dn2
mkdir /data/tbase21/data_gtm
chown tbase21 /data/tbase21/data_cn1
chown tbase21 /data/tbase21/data_dn1
chown tbase21 /data/tbase21/data_dn2
chown tbase21 /data/tbase21/data_gtm
su - tbase21
export PATH="$PATH:/data/tbase21/bin"
export LD_LIBRARY_PATH=/data/tbase21/lib:${LD_LIBRARY_PATH}
initgtm -D /data/tbase21/data_gtm -Z gtm
gtm -D /data/tbase21/data_gtm >logfile 2>&1 &
initdb -D /data/tbase21/data_cn1 --nodename cn1 --nodetype coordinator --master_gtm_nodename gtm --master_gtm_ip localhost --master_gtm_port 5552
initdb -D /data/tbase21/data_dn1 --nodename dn1 --nodetype datanode --master_gtm_nodename gtm --master_gtm_ip localhost --master_gtm_port 5552
initdb -D /data/tbase21/data_dn2 --nodename dn2 --nodetype datanode --master_gtm_nodename gtm --master_gtm_ip localhost --master_gtm_port 5552
postgres --datanode -p 15552 -c pooler_port=45552 -D /data/tbase21/data_dn1 >logfile 2>&1 &
postgres --datanode -p 15553 -c pooler_port=45553 -D /data/tbase21/data_dn2 >logfile 2>&1 &
postgres --coordinator -c pooler_port=45500 -D /data/tbase21/data_cn1 >logfile 2>&1 &
psql -c "ALTER NODE cn1 WITH (TYPE ='coordinator', PORT = 5552)" postgres
psql -c "CREATE NODE dn1 WITH (TYPE ='datanode', PORT = 15552)" postgres
psql -c "CREATE NODE dn2 WITH (TYPE ='datanode', PORT = 15553)" postgres
psql -c "EXECUTE DIRECT ON (dn1) 'ALTER NODE dn1 WITH (TYPE =''datanode'', PORT = 15552)'" postgres
psql -c "EXECUTE DIRECT ON (dn1) 'CREATE NODE dn2 WITH (TYPE =''datanode'', PORT = 15553)'" postgres
psql -c "EXECUTE DIRECT ON (dn1) 'CREATE NODE cn1 WITH (TYPE =''coordinator'', PORT = 5552)'" postgres
psql -c "EXECUTE DIRECT ON (dn2) 'ALTER NODE dn2 WITH (TYPE =''datanode'', PORT = 15553)'" postgres
psql -c "EXECUTE DIRECT ON (dn2) 'CREATE NODE dn1 WITH (TYPE =''datanode'', PORT = 15552)'" postgres
psql -c "EXECUTE DIRECT ON (dn2) 'CREATE NODE cn1 WITH (TYPE =''coordinator'', PORT = 5552)'" postgres
psql -c "SELECT pgxc_pool_reload()" postgres
psql -c "EXECUTE DIRECT ON (dn1) 'SELECT pgxc_pool_reload()'" postgres
psql -c "EXECUTE DIRECT ON (dn2) 'SELECT pgxc_pool_reload()'" postgres
createdb test
psql test
in the installation of https://github.com/Tencent/TBase/issues/60#issuecomment-661486868,
postgres --coordinator -c pooler_port=45500 -D /data/tbase21/data_cn1 >logfile 2>&1 &
the port of cn1 is 5432, not 5552,
[tbase21@aaa ~]$ psql test -h localhost -p 5552
psql: server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
[tbase21@aaa ~]$ psql test -h localhost -p 5432
psql (PostgreSQL 10.0 TBase V2)
Type "help" for help.
postgres --datanode -p 15552 -c pooler_port=45552 -D /data/tbase21/data_dn1 >logfile 2>&1 &
direct >logfile is dangerous, it will fill the /home directory
-rw-rw-r-- 1 tbase21 tbase21 6802851932 Jul 21 11:57 logfile
in the installation of #60 (comment),
postgres --coordinator -c pooler_port=45500 -D /data/tbase21/data_cn1 >logfile 2>&1 &
the port of cn1 is 5432, not 5552,[tbase21@aaa ~]$ psql test -h localhost -p 5552 psql: server closed the connection unexpectedly This probably means the server terminated abnormally before or while processing the request. [tbase21@aaa ~]$ psql test -h localhost -p 5432 psql (PostgreSQL 10.0 TBase V2) Type "help" for help.
The correct command should be "pg_ctl -Z coordinator -D xxx start" not "postgres --coordinator xxx"
i followed the build steps at https://github.com/Tencent/TBase, and got bin files now. I want to run it on one host, what are the additional steps?
i move the install directory which includes compiled files to /data/tbase/install then i create a user tbase and set it the owner of /data/tbase then run ssh-copy-id -i ~/.ssh/id_rsa.pub tbase@my_hostname
then edit the /home/tbase/.bash_profile
then create the file /home/tbase/pgxc_ctl/pgxc_ctl.conf as following
but execute the pgxc_ctl, it reports many errors.