|
|
|
# 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 ?
|
|
|
|
|