Installing the SynxDB Software

Describes how to install the SynxDB software binaries on all of the hosts that will comprise your SynxDB system, how to enable passwordless SSH for the gpadmin user, and how to verify the installation.

Perform the following tasks in order:

  1. Install SynxDB.
  2. Enable Passwordless SSH.
  3. Confirm the software installation.
  4. Perform next steps.

Installing SynxDB

You must install SynxDB on each host machine of the SynxDB cluster.

Synx Data Labs distributes the SynxDB software via a repository that must be installed on each cluster host. This guide assumes that each host can access the Synx Data Labs repositories. If your environment restricts internet access, or if you prefer to host repositories within your infrastructure to ensure consistent package availability, contact Synx Data Labs to obtain a complete repository mirror for local hosting.

Perform the following steps on each host machine of your cluster:

Follow these steps to securely install SynxDB to your system:

  1. Login to your Enterprise Linux 8 or 9 system as the root user.

  2. Import the Synx Data Labs GPG key so you can use it to validate downloaded packages:

    wget -nv https://synxdb-repo.s3.us-west-2.amazonaws.com/gpg/RPM-GPG-KEY-SYNXDB
    rpm --import RPM-GPG-KEY-SYNXDB
    
  3. Verify that you have imported the keys:

    rpm -q gpg-pubkey --qf "%{NAME}-%{VERSION}-%{RELEASE} %{SUMMARY}\n" | grep SynxDB
    

    You should see output similar to:

    gpg-pubkey-df4bfefe-67975261 gpg(SynxDB Infrastructure <infrastructure@synxdata.com>)
    
  4. Download the SynxDB repository package:

    wget -nv https://synxdb-repo.s3.us-west-2.amazonaws.com/repo-release/synxdb2-release-1-1.rpm
    
  5. Verify the package signature of the repository package you just downloaded.

    rpm --checksig synxdb2-release-1-1.rpm
    

    Ensure that the command output shows that the signature is OK. For example:

    synxdb2-release-1-1.rpm: digests signatures OK
    
  6. After verifying the package signature, install the SynxDB repository package. For Enterprise Linux 9:

    dnf install -y synxdb2-release-1-1.rpm
    

    The repository installation shows details of the installation process similar to:

    Last metadata expiration check: 2:11:29 ago on Mon Mar 10 18:53:32 2025.
    Dependencies resolved.
    =========================================================================
     Package            Architecture   Version          Repository      Size
    =========================================================================
    Installing:
     synxdb-release     noarch         1-1              @commandline    8.1 k
    
    Transaction Summary
    =========================================================================
    Install  1 Package
    
    Total size: 8.1 k
    Installed size: 0  
    Downloading Packages:
    Running transaction check
    Transaction check succeeded.
    Running transaction test
    Transaction test succeeded.
    Running transaction
      Preparing        :                                                 1/1 
      Running scriptlet: synxdb2-release-1-1.noarch                      1/1 
      Installing       : synxdb2-release-1-1.noarch                      1/1 
      Verifying        : synxdb2-release-1-1.noarch                      1/1 
    
    Installed:
      synxdb2-release-1-1.noarch
    
    Complete!
    

    Note: The -y option in the dnf install command automatically confirms and proceeds with installing the software as well as dependent packages. If you prefer to confirm each dependency manually, omit the -y flag.

  7. After you have installed the repository package, install SynxDB with the command:

    dnf install -y synxdb
    

    The installation process installs all dependencies required for SynxDB 2 in addition to the SynxDB software.

  8. Verify the installation with:

    rpm -qi synxdb
    

    You should see installation details similar to:

    Name        : synxdb
    Version     : 2.27.2
    Release     : 1.el8
    Architecture: x86_64
    Install Date: Fri Mar 14 17:22:59 2025
    Group       : Applications/Databases
    Size        : 1541443881
    License     : ASL 2.0
    Signature   : RSA/SHA256, Thu Mar 13 10:36:01 2025, Key ID b783878edf4bfefe
    Source RPM  : synxdb-2.27.2-1.el8.src.rpm
    Build Date  : Thu Mar 13 09:55:50 2025
    Build Host  : cdw
    Relocations : /usr/local/synxdb 
    Vendor      : Synx Data Labs, Inc.
    URL         : https://synxdatalabs.com
    Summary     : High-performance MPP database for enterprise analytics
    Description :
    
    SynxDB is a high-performance, enterprise-grade, massively parallel
    processing (MPP) database designed for advanced analytics on
    large-scale data sets. Derived from PostgreSQL and the last
    open-source version of Greenplum, SynxDB offers seamless
    compatibility, powerful analytical capabilities, and robust security
    features.
    
    Key Features:
    - Massively parallel processing for optimized query performance
    - Advanced analytics for complex data workloads
    - Seamless integration with ETL pipelines and BI tools
    - Broad compatibility with diverse data sources and formats
    - Enhanced security and operational reliability
    
    Disclaimer & Attribution:
    
    SynxDB is derived from the last open-source version of Greenplum,
    originally developed by Pivotal Software, Inc., and maintained under
    Broadcom Inc.'s stewardship. Greenplum® is a registered trademark of
    Broadcom Inc. Synx Data Labs, Inc. and SynxDB are not affiliated with,
    endorsed by, or sponsored by Broadcom Inc. References to Greenplum are
    provided for comparative, interoperability, and attribution purposes
    in compliance with open-source licensing requirements.
    
    For more information, visit the official SynxDB website at
    https://synxdatalabs.com.
    
    

    Also verify that the /usr/local/synxdb directory points to the specific version of SynxDB that you downloaded:

    ls -ld /usr/local/synxdb*
    

    For version 2.27.2 the output is:

    lrwxrwxrwx  1 root root   24 Feb 19 10:05 /usr/local/synxdb -> /usr/local/synxdb-2.27.2
    drwxr-xr-x 10 root root 4096 Mar 10 21:07 /usr/local/synxdb-2.27.2
    
  9. If you have not yet created the gpadmin administrator user and group, execute these steps:

    # groupadd gpadmin
    # useradd gpadmin -r -m -g gpadmin
    # passwd gpadmin
    New password: <changeme>
    Retype new password: <changeme>
    
  10. Login as the gpadmin user and set the SynxDB environment:

    su - gpadmin
    source /usr/local/synxdb/synxdb_path.sh
    
  11. Finally, verify that the following SynxDB executable paths and versions match the expected paths and versions for your installation:

    # which postgres
    /usr/local/synxdb-2.27.2/bin/postgres
    # which psql
    /usr/local/synxdb-2.27.2/bin/psql
    # postgres --version
    postgres (SynxDB) 9.4.26
    # postgres --gp-version
    postgres (SynxDB) 6.27.2+SynxDB_GA build 1
    # psql --version
    psql (PostgreSQL) 9.4.26
    
    
    

Enabling Passwordless SSH

The gpadmin user on each SynxDB host must be able to SSH from any host in the cluster to any other host in the cluster without entering a password or passphrase (called “passwordless SSH”). If you enable passwordless SSH from the master host to every other host in the cluster (“1-n passwordless SSH”), you can use the SynxDB gpssh-exkeys command-line utility to enable passwordless SSH from every host to every other host (“n-n passwordless SSH”).

  1. Log in to the master host as the gpadmin user.

  2. Source the path file in the SynxDB installation directory.

    $ source /usr/local/synxdb/synxdb_path.sh
    

    Note Add the above source command to the gpadmin user’s .bashrc or other shell startup file so that the SynxDB path and environment variables are set whenever you log in as gpadmin.

  3. Use the ssh-copy-id command to add the gpadmin user’s public key to the authorized_hosts SSH file on every other host in the cluster.

    $ ssh-copy-id smdw
    $ ssh-copy-id sdw1
    $ ssh-copy-id sdw2
    $ ssh-copy-id sdw3
    . . .
    

    This enables 1-n passwordless SSH. You will be prompted to enter the gpadmin user’s password for each host. If you have the sshpass command on your system, you can use a command like the following to avoid the prompt.

    $ SSHPASS=<password> sshpass -e ssh-copy-id smdw
    
  4. In the gpadmin home directory, create a file named hostfile_exkeys that has the machine configured host names and host addresses (interface names) for each host in your SynxDB system (master, standby master, and segment hosts). Make sure there are no blank lines or extra spaces. Check the /etc/hosts file on your systems for the correct host names to use for your environment. For example, if you have a master, standby master, and three segment hosts with two unbonded network interfaces per host, your file would look something like this:

    mdw
    mdw-1
    mdw-2
    smdw
    smdw-1
    smdw-2
    sdw1
    sdw1-1
    sdw1-2
    sdw2
    sdw2-1
    sdw2-2
    sdw3
    sdw3-1
    sdw3-2
    
  5. Run the gpssh-exkeys utility with your hostfile_exkeys file to enable n-n passwordless SSH for the gpadmin user.

    $ gpssh-exkeys -f hostfile_exkeys
    

Confirming Your Installation

To make sure the SynxDB software was installed and configured correctly, run the following confirmation steps from your SynxDB master host. If necessary, correct any problems before continuing on to the next task.

  1. Log in to the master host as gpadmin:

    $ su - gpadmin
    
  2. Use the gpssh utility to see if you can log in to all hosts without a password prompt, and to confirm that the SynxDB software was installed on all hosts. Use the hostfile_exkeys file you used to set up passwordless SSH. For example:

    $ gpssh -f hostfile_exkeys -e 'ls -l /usr/local/synxdb-<version>'
    

    If the installation was successful, you should be able to log in to all hosts without a password prompt. All hosts should show that they have the same contents in their installation directories, and that the directories are owned by the gpadmin user.

    If you are prompted for a password, run the following command to redo the ssh key exchange:

    $ gpssh-exkeys -f hostfile_exkeys
    

About Your SynxDB Installation

  • synxdb_path.sh — This file contains the environment variables for SynxDB. See Setting SynxDB Environment Variables.
  • bin — This directory contains the SynxDB management utilities. This directory also contains the PostgreSQL client and server programs, most of which are also used in SynxDB.
  • docs/cli_help — This directory contains help files for SynxDB command-line utilities.
  • docs/cli_help/gpconfigs — This directory contains sample gpinitsystem configuration files and host files that can be modified and used when installing and initializing a SynxDB system.
  • ext — Bundled programs (such as Python) used by some SynxDB utilities.
  • include — The C header files for SynxDB.
  • lib — SynxDB and PostgreSQL library files.
  • sbin — Supporting/Internal scripts and programs.
  • share — Shared files for SynxDB.

Next Steps