This section describes how to upgrade in-use instances of the  for a working deployment of the .

In this example, Postgres 9.3 is upgraded to Postgres 9.6.

Pre-requisites

Backup

Before you begin, please verify that you have a valid backup of each . See Backup and Recovery in the Admin Guide.

Acquire Distribution and Port Information

Before you begin, you must:

For more information, see Install Databases for PostgreSQL.

For more information, see Install Databases for MySQL.

Database Upgrade Process

This procedure describes the process for upgrading the PostgreSQL version in use by the . This procedure assumes the following:

Before You Begin

Using non-default ports

The default port for these commands is port 5432.

If you are using a non-standard port for either the pre- or post-upgrade versions of PostgreSQL, you can use the following parameters with the pg_upgrade command:

ParameterDescription
--old-port=<pre-upgrade_port>The port number of the pre-upgrade instance of PostgreSQL
--new-port=<post-upgrade_port>The port number to use for the post-upgrade instance of PostgreSQL

For more information, see https://www.postgresql.org/docs/9.6/pgupgrade.html.

Upgrade for CentOS/RHEL

  1. Install the Postgres repo for yum. Below, PostgreSQL 9.6 is installed.
    1. For CentOS 7.x:

      wget https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
      sudo yum -y install pgdg-centos96-9.6-3.noarch.rpm
    2. For CentOS 8.x:

      wget https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-8-x86_64/pgdg-centos96-9.6-3.noarch.rpm
      sudo yum -y install pgdg-centos96-9.6-3.noarch.rpm
    3. For Red Hat Enterprise Linux 7.x:

      wget https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
      sudo yum -y install pgdg-redhat96-9.6-3.noarch.rpm
    4. For Red Hat Enterprise Linux 8.x:

      wget https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-8-x86_64/pgdg-centos96-9.6-3.noarch.rpm
      sudo yum -y install pgdg-redhat96-9.6-3.noarch.rpm
  2. Install the upgraded version. Below, PostgreSQL 9.6 is installed.

    sudo yum install postgresql96.x86_64 postgresql96-server.x86_64 postgresql96-contrib.x86_64 -y
  3. Create a new data directory for the new database version:

    1. For CentOS 7.x, CentOS 8.x:

      sudo /usr/pgsql-9.6/bin/postgresql96-setup initdb
    2. For RHEL 7.x, RHEL 8.x:

      sudo /usr/pgsql-9.6/bin/postgresql96-setup initdb
  4. Use the following commands to verify that the upgrade is possible:

    su postgres
    cd ~
    /usr/pgsql-9.6/bin/pg_upgrade --old-bindir=/usr/pgsql-9.3/bin/ --new-bindir=/usr/pgsql-9.6/bin/ --old-datadir=/var/lib/pgsql/9.3/data/ --new-datadir=/var/lib/pgsql/9.6/data/ --check 

    If all is well, you should see a Clusters are compatible message.

  5. Stop the old version of the database service as the root user:
    1. CentOS/RHEL:

      sudo service postgresql-9.3 stop
  6. Run the upgrade as the postgres user:
    1. CentOS/RHEL:

      su postgres
      /usr/pgsql-9.6/bin/pg_upgrade --old-bindir=/usr/pgsql-9.3/bin/ --new-bindir=/usr/pgsql-9.6/bin/ --old-datadir=/var/lib/pgsql/9.3/data/ --new-datadir=/var/lib/pgsql/9.6/data/

Upgrade for Ubuntu 16.04 (Xenial)

Steps:

  1. Stop the platform:

    service trifacta stop
  2. Install the upgraded version. Below, PostgreSQL 9.6 is installed.

    sudo apt-get install postgresql-9.6 postgresql-server-dev-9.6 postgresql-contrib-9.6 -y
  3. Stop PostgreSQL:

    sudo systemctl stop postgresql
    service stop postgresql
    service postgresql stop
  4. Upgrade the PostgreSQL 9.3 version to PostgreSQL 9.6, using the newly installed version:

    sudo su - postgres -c '/usr/lib/postgresql/9.6/bin/pg_upgrade \
    -b /usr/lib/postgresql/9.3/bin -B /usr/lib/postgresql/9.6/bin \
    -d /var/lib/postgresql/9.3/main/ -D /var/lib/postgresql/9.6/main/ \
    -O "-c config_file=/etc/postgresql/9.6/main/postgresql.conf" \
    -o "-c config_file=/etc/postgresql/9.3/main/postgresql.conf"'
  5. Remove the old version of PostgreSQL (9.3):

    sudo apt-get remove postgresql-9.3 -y
  6. Restart PostgreSQL and the platform:

    service postgresql start
    service trifacta start

Upgrade for Ubuntu 18.04 (Bionic Beaver)

PostgreSQL should not be on version 9.3 if you are using this version of the operating system.

Transfer Settings

For all operating systems, you must transfer the settings from your old version of PostgreSQL to the new one.

  1. Update the port number and any other settings in the platform configuration. 
    1. Replace all instances of the PostgreSQL port number for the earlier version and replace with the desired port number for the upgrade version. 
    2. Make the above changes and save the file.
  2. Transfer settings from the configuration files for your old database version to the new one. Please review the old and new versions of these files:

    NOTE: It is risky to perform a straight copy of these configuration files. Settings may change. New ones may be introduced. Setting values specific to to the installation may be overwritten in a copy. Please retain a backup of both versions of each file before migrating settings.

    Path to PostgreSQL 9.3 filePath to PostgreSQL 9.6 file
    /var/lib/pgsql/9.3/data/pg_hba.conf /var/lib/pgsql/9.6/data/pg_hba.conf
    /var/lib/pgsql/9.3/data/postgresql.conf /var/lib/pgsql/9.6/data/postgresql.conf
  3. Start the service:
    1. CentOS/RHEL:

      sudo service postgresql-9.6 start
    2. Ubuntu:

      sudo service postgresql start
    3. When the service restarts, you can check the cluster status using the following script:

      ./analyze_new_cluster.sh
  4. After you have completed the database installation, you must review the port number of the newly installed database, which may have changed between versions of the database software. That new port number must be applied through the . For more information, see Change Database Port.

  5. If all is well, restart the platform. See Start and Stop the Platform in the Install Guide. 

Verify and Cleanup

  1. Verify operations on all databases:
    1. Login to the application.
    2. Load a dataset from Flow View.
    3. Run a job. 
    4. Schedule a job and execute it.
    5. See Verify Operations in the Admin Guide.
  2. If all of the above tests pass, you can use the following script to delete the old PostgreSQL version and its data directory:

    ./delete_old_cluster.sh
  3. Restart the . See Start and Stop the Platform in the Install Guide.