# Postgres-XL https://www.postgres-xl.org https://www.postgres-xl.org/documentation/install-short.html https://www.postgres-xl.org/documentation/install-procedure.html # Set up 9 servers Data nodes: pgxl1 pgxl2 pgxl3 pgxl4 pgxl5 GTM: pgxl-gtm-1 pgxl-gtm-2 Coordinators: pgxl-coord-1 pgxl-coord-2 pgxl-coord-3 # Set up SSH between hosts ssh-keygen -t ed25519 set up root ssh between all nodes # /etc/hosts set up /etc/hosts with all cluster name/IPs. Set up /etc/hosts with all cluster name/IPs for Postgres interface, with pg- prefix # Get source Binary: wget https://www.postgres-xl.org/downloads/postgres-xl-10r1.tar.gz Git (better): git clone https://git.postgresql.org/git/postgres-xl.git # Install Dependencies apt install build-essential bison flex libreadline-dev zlib1g-dev # Build git checkout remotes/origin/XL_10_STABLE mkdir build_dir cd build_dir ../configure make -j8 sudo make install # Configure adduser postgres Run this as root: /sbin/ldconfig /usr/local/pgsql/lib XXX no? Add this to ~/.bashrc LD_LIBRARY_PATH=/usr/local/pgsql/lib export LD_LIBRARY_PATH Add this to ~/.bashrc PATH=/usr/local/pgsql/bin:$PATH export PATH XXX set up user postgres to ssh to all nodes ? https://www.postgres-xl.org/documentation/pgxc-ctl.html Log into pgxl1, run: sudo su - postgres pgxc_ctl At PGXC promt run: prepare config empty add gtm master name host port dir add gtm slave name host port dir add gtm_proxy name host port dir add coordinator master name host port pooler dir extraServerConf extraPgHbaConf add coordinator slave name host port pooler dir archDir add datanode master name host port pooler dir waldir extraServerConf extraPgHbaConf add datanode slave name host port pooler dir waldir archDir XLDIR=/usr/local/pgsql/ pgxc_ctl prepare config empty pgxc_ctl add gtm master gtm_1 pg-pgxl-gtm-1 20001 "$XLDIR/gtm" XXX slave or proxy? pgxc_ctl add gtm slave gtm_2 pg-pgxl-gtm-2 20001 "$XLDIR/gtm" pgxc_ctl add gtm_proxy gtm_2 pg-pgxl-gtm-2 20001 "$XLDIR/gtm" pgxc_ctl add coordinator master coord_1 pg-pgxl-coord-1 30001 31001 "$XLDIR/coord-1" none none XXX master or slaves? pgxc_ctl add coordinator master coord_2 pg-pgxl-coord-2 30001 31001 "$XLDIR/coord-2" none none pgxc_ctl add coordinator master coord_3 pg-pgxl-coord-3 30001 31001 "$XLDIR/coord-3" none none pgxc_ctl add datanode master datanode_1 pg-pgxl1 40001 41001 "$XLDIR/data-1" none none none XXX master or slaves? pgxc_ctl add datanode master datanode_2 pg-pgxl2 40001 41001 "$XLDIR/data-2" none none none pgxc_ctl add datanode master datanode_3 pg-pgxl3 40001 41001 "$XLDIR/data-3" none none none pgxc_ctl add datanode master datanode_4 pg-pgxl4 40001 41001 "$XLDIR/data-4" none none none pgxc_ctl add datanode master datanode_5 pg-pgxl5 40001 41001 "$XLDIR/data-5" none none none pgxc_ctl monitor all createdb -p 30001 test # Open Up firewall. Open up firewall ports for postgres and others..... # OmniDB wget https://omnidb.org/dist/2.12.0/omnidb-server_2.12.0-debian-amd64.deb dpkg -i omnidb-server_2.12.0-debian-amd64.deb Open firewall port 8000 and 25482 This file isn't used: /opt/omnidb-server/omnidb.conf In the pre-packaged .deb, it runs as root... Config is here: /root/.omnidb/omnidb-server/omnidb.conf listening_address = 0.0.0.0 Add Postgres-XL plugin: wget https://omnidb.org/dist/plugins/omnidb-xl_1.0.0.zip unzip omnidb-xl_1.0.0.zip sudo cp -r plugins/ static/ /opt/omnidb-server/OmniDB_app/ sudo systemctl restart omnidb Log in with admin/admin and set up users/pass. # Notes Maybe add build dependency python3-dev (?) for PL/Python shared library. Maybe gettext. Maybe OpenSSL. XXX change prefix ?