---
schema_version: "1"
id: b4c3587458036ff7af9c3a5b181990f2b77c915540ab47645fbedb3a1f007034
title: Part 4 - Installing and Configuring Tableau Server
collection: tableau
version: next
locale: en-gb
portal_url: https://docs.salesforce.com/tableau/next/en-gb/guides/enterprise-deployment/edg_part4.md
canonical_url: https://help.tableau.com/v0.0/guides/enterprise-deployment/en-gb/edg_part4.htm
source_site: help.tableau.com
content_type: documentation
content_hash: f6502dcd0829c9fe91f3ff62d7e02115c018a13dbc4f50f378e75380c01dae33
description: "Part 4: install and configure Tableau Server with an external PostgreSQL repository on AWS."
---
[Skip to main content](#main-content)

# Part 4 - Installing and Configuring Tableau Server

**Note**: Tableau no longer updates the Enterprise Deployment Guide. Although we still recommend the reference architecture described here as a valid deployment model for Tableau Server in AWS, specific configuration procedures may have changed since the last update. Always cross-reference these steps with the latest [Tableau Server Help](https://help.tableau.com/current/server/en-gb/get_started_server.htm) documentation to ensure accuracy.

This topic describes how to finish installing and configuring the baseline Tableau Server deployment. The procedure here continues with the AWS and Linux reference architecture example.

The Linux examples throughout the installation procedures show commands for RHEL-like distributions. Specifically, the commands here have been developed with the Amazon Linux 2 distribution. If you are running the Ubuntu distribution, edit the commands accordingly.

## Before you begin

You must prep and validate your environment as described in [Part 3 - Preparing for Tableau Server Enterprise Deployment](https://help.tableau.com/v0.0/guides/enterprise-deployment/en-gb/edg_part3.htm).

## Install, configure and tar PostgreSQL

This PostgreSQL instance hosts the external repository for the Tableau Server deployment. You must install and configure PostgreSQL before you install Tableau.

You can run PostgreSQL on Amazon RDS or on an EC2 instance. For more information about the differences between running the repository on RDS vs an EC2 instance, see _Tableau Server External Repository_ ([Linux](https://help.tableau.com/current/server-linux/en-gb/server_external_repo.htm)).

By way of example, the procedure below shows how to install and configure Postgres on an Amazon EC2 instance. The example shown here is a generic installation and configuration for PostgreSQL in the reference architecture. Your DBA should optimise your PostgreSQL deployment based on the size of your data and performance needs.

Requirements: Note that you must be running PostgreSQL 1.6 and you must install the uuid-ossp module.

### PostgreSQL versioning

You must install compatible major versions of PostgreSQL for the Tableau Server external repository. Additionally, minor versions must also meet minimum requirements.

<table style="width: 100%;" class="simple-table"><colgroup><col><col></colgroup><tbody><tr><th>Tableau Server versions</th><th>PostgreSQL&nbsp;minimum compatible versions</th></tr><tr><td><p>2022.3.0 - 2022.3.7</p><p>2023.1.0 - 2023.1.4</p></td><td>13.7</td></tr><tr><td>2022.1.17 - 2022.1.19<p>2022.3.8 - 2022.3.19</p><p>2023.1.5 - 2023.1.15</p><p>2023.3.0 - 2023.3.8</p></td><td>13.11</td></tr><tr><td>2022.3.20 - 2022.3.x<p>2023.1.16 - 2023.1.x</p><p>2023.3.9 - 2023.3.x</p></td><td>13.14</td></tr><tr><td>2024.0 - 2024.2.8</td><td>15.6</td></tr><tr><td>2024.2.9 - 2024.2.13<p>2025.1.0 - 2025.1.6</p></td><td>15.10</td></tr><tr><td>2024.2.14 - 2024.2.16 <p>2025.1.7 - 2025.1.9</p></td><td>15.13</td></tr><tr><td><p>2024.2.17</p><p>2025.1.10</p><p>2025.3 - 2025.3.5</p></td><td>15.14</td></tr><tr><td>2025.3.6</td><td>15.16</td></tr><tr><td><p>2026.2.x</p></td><td>17.7</td></tr></tbody></table>

### Install PostgreSQL

This example installation procedure describes how to install PostgreSQL version 13.6.

Sign into the EC2 host that you created in the previous Part.

1. Run update to apply latest fixes to the Linux OS:
    
    `sudo yum update`
2. Create and edit the file pgdg.repo. in the `/etc/yum.repos.d/` path. Populate the file with the following configuration information:
    
    \[pgdg13\]
    name=PostgreSQL 13 for RHEL/CentOS 7 - x86\_64
    baseurl=https://download.postgresql.org/pub/repos/yum/13/redhat/rhel-7-x86\_64
    enabled=1
    gpgcheck=0
3. Install Posgres 13.6:
    
    sudo yum install postgresql13-server-13.6-1PGDG.rhel7.x86\_64
4. Install the uuid-ossp module:
    
    sudo yum install postgresql13-contrib-13.6-1PGDG.rhel7.x86\_64
5. Initialise Postgres:
    
    sudo /usr/pgsql-13/bin/postgresql-13-setup initdb

### Configure Postgres

Finish the base installation by configuring Postgres:

1. Update the pg\_hba configuration file, `/var/lib/pgsql/13/data/pg_hba.conf`, with the following two entries. Each entry must include the mask of the subnets where your Tableau Servers will be running: 
    
    `host all all 10.0.30.0/24 password`
    
    `host all all 10.0.31.0/24 password`
2. Update the PostgreSQL file, `/var/lib/pgsql/13/data/postgresql.conf`, by adding this line:
    
    `listen_addresses = '*'`
3. Configure to start Postgres on reboot:
    
    sudo systemctl enable --now postgresql-13
4. Set superuser password:
    
    sudo su - postgres 
    
    psql -c "alter user postgres with password 'StrongPassword'"
    
    **Note**: Set a strong password. Do not use `'StrongPassword`' as shown in the example here.
    
    exit
5. Restart Postgres:
    
    sudo systemctl restart postgresql-13

## Take PostgreSQL Step 1 tar backup

Create a tar backup of the PostgreSQL configuration. Creating a tar snapshot of the current configuration will save you time if you encounter failures as you continue the deployment.

We'll refer to this as the "Step 1" backup.

On PostgreSQL host:

1. Stop the Postgres database instance:
    
    sudo systemctl stop postgresql-13
2. Run the following commands to create the tar backup:
    
    sudo su
    
    cd /var/lib/pgsql
    
    tar -cvf step1.13.bkp.tar 13
    
    exit
3. Start Postgres database:
    
    sudo systemctl start postgresql-13

Restore Step 1

Restore to Step 1 if the Tableau Server initial node fails during installation.

1. On the computer running Tableau, run the obliterate script to completely remove Tableau Server from the host:
    
    sudo /app/tableau\_server/packages/scripts.<version\_code>/./tableau-server-obliterate -a -y -y -y -l
2. Restore the PostgreSQL Stage 1 tar. On the computer running Postgres, run the following commands:
    
    sudo su
    
    systemctl stop postgresql-13
    
    cd /var/lib/pgsql
    
    tar  -xvf step1.13.bkp.tar
    
    systemctl start postgresql-13
    
    exit

Resume the installation process of installing the initial node of Tableau Server.

## Before you install

If you are deploying Tableau according to the example AWS/Linux implementation described in this Guide, then you may be able to run the automated installation script TabDeploy4EDG. The TabDeploy4EDG script automates the example installation of the four-node Tableau deployment that is described in procedures that follow. See [Appendix - AWS Deployment Toolbox](https://help.tableau.com/v0.0/guides/enterprise-deployment/en-gb/edg_part_app-aws.htm).

## Install initial node of Tableau Server

This procedure describes how to install the initial node of Tableau Server as defined by the reference architecture. With the exception of the package installation and the initialisation of TSM, the procedure here uses the TSM command line whenever possible. In addition to being platform-agnostic, using TSM CLI allows a more seamless installation into virtualised and headless environments.

### Run installation package and initialise TSM

Sign in to the Node 1 host server.

1. Run update to apply latest fixes to the Linux OS:
    
    sudo yum update
2. Copy the installation package from [Tableau Downloads page](https://www.tableau.com/en-gb/support/releases/server) to the host computer that will be running Tableau Server.
    
    For example, on a computer running Linux RHEL-like operating system, run
    
    wget https://downloads.tableau.com/esdalt/2022<version>/tableau-server-<version>.rpm
    
    where `<version>` is the release number.
3. Download and install dependencies:
    
    sudo yum deplist tableau-server-<version>.rpm | awk '/provider:/ {print $2}' | sort -u | xargs sudo yum -y install
4. Create the `/app/tableau_server` path in the root directory:
    
    sudo mkdir -p /app/tableau\_server
5. Run the installation program and specify the `/app/tableau_server` install path. For example, on a Linux RHEL-like operating system, run:
    
    sudo rpm -i --prefix /app/tableau\_server tableau-server-<version>.x86\_64.rpm
6. Change to the `/app/tableau_server/packages/scripts.<version_code>/` directory and run the `initialize-tsm` script located there:
    
    sudo ./initialize-tsm -d /data/tableau\_data --accepteula
7. After initialisation is complete, exit the shell:
    
    exit

### Activate and register Tableau Server

1. Sign in to the Node 1 host server.
2. Provide the Tableau Server product key(s) in this step. Run the following command for each licence key that you have purchased:
    
    tsm licenses activate -k <product key>
3. Create a json registration file with the format as shown here:
    
    {
    "zip" : "97403",
    "country" : "USA",
    "city" : "Springfield",
    "last\_name" : "Simpson",
    "industry" : "Energy",
    "eula" : "yes",
    "title" : "Safety Inspection Engineer",
    "company\_employees" : "100",
    "phone" : "5558675309",
    "company" : "Example",
    "state" : "OR",
    "opt\_in" : "true",					
    "department" : "Engineering",
    "first\_name" : "Homer",
    "email" : "homer@example.com"
    }
4. After saving changes to the file, pass it with the `--file` option to register Tableau Server:
    
    tsm register --file path\_to\_registration\_file.json

### Configure identity store

**Note**: If your deployment will use external storage for the Tableau File Store, you need to enable External File Store before you configure the identity store. See _Install Tableau Server with External File Store_ ([Linux](https://help.tableau.com/current/server-linux/en-gb/server_external_filestore_storage_new_install.htm)).

The default reference architecture uses a local identity store. Configure the initial host with local identity store by passing the `config.json` file with the `tsm settings import` command.

Import the `config.json` file according to your operating system:

The `config.json` file is included in the scripts.<version> directory path (for example, `scripts.20204.21.0217.1203`), and is formatted to configure the identity store.

Run the following command to import the `config.json` file:

tsm settings import -f /app/tableau\_server/packages/scripts.<version\_code>/config.json

### Configure external Postgres

1. Create an external database json file with the following configuration settings:
    
    {
    "flavor":"generic",
    "masterUsername":"postgres",
    "host":"<instance ip address>",
    "port":5432
    }
2. After saving changes to the file, pass the file with the following command:
    
    tsm topology external-services repository enable -f <filename>.json --no-ssl
    
    You will be prompted for the Postgres master username password.
    
    The option, `--no-ssl`, configures Tableau to use SSL/TLS only when the Postgres server is configured for SSL/TLS. If Postgres is not configured for SSL/TLS, then the connection is not encrypted. [Part 6 - Post-Installation Configuration](https://help.tableau.com/v0.0/guides/enterprise-deployment/en-gb/edg_part6.htm) describes how to enable SSL/TLS for the Postgres connection after you have completed the first phase of deployment.
3. Apply the changes.
    
    Run this command to apply the changes and restart Tableau Server:
    
    tsm pending-changes apply
4. Delete the configuration file that you used in Step 1.

### Finish Node 1 installation

1. After Tableau Server has installed, you must initialise the server.
    
    Run the following command:
    
    tsm initialize --start-server --request-timeout 1800
2. When initialisation is finished, you must create a Tableau Server administrator account.
    
    Unlike the computer account that you are using to install and manage TSM operating-system components, the Tableau Server administrator account is an application account that used for creating Tableau Server users, projects and sites. The Tableau Server administrator also applies permissions to Tableau resources. Run the following command to create the initial administrator account. In the following example, the user is called `tableau-admin`:
    
    tabcmd initialuser --server http://localhost --username "tableau-admin"
    
    Tabcmd will prompt you to set a password for this user.

### Verification: Node 1 configuration

1. Run the following command to verify that TSM services are running:
    
    tsm status -v
    
    Tableau should return the following:
    
    external: 
    Status: RUNNING
    'Tableau Server Repository 0' is running (Active Repository).
    node1: localhost
    Status: RUNNING
    'Tableau Server Gateway 0' is running.
    'Tableau Server Application Server 0' is running.
    'Tableau Server Interactive Microservice Container 0' is running.
    'MessageBus Microservice 0' is running.
    'Relationship Query Microservice 0' is running.
    'Tableau Server VizQL Server 0' is running. 
    ...
    
    All of the services will be listed.
2. Run the following command to verify that Tableau administrative site is running:
    
    curl localhost
    
    The first few lines should show Vizportal html, similar to this:
    
    <!DOCTYPE html>
    <html xmlns:ng="" xmlns:tb="">
    <head ng-csp>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="initial-scale=1, maximum-scale=2, width=device-width, height=device-height, viewport-fit=cover">
    <meta name="format-detection" content="telephone=no">
    <meta name="vizportal-config ...

## Take Step 2 tar backups

After you have verified the initial installation, take two tar backups:

- PostgreSQL
- Tableau initial node (Node 1)

In most cases, you can recover your installation of the initial node by restoring these tar files. Restoring the tar files is much quicker than reinstalling and reinitialising the initial node.

Create Step 2 tar files

1. On the initial node of Tableau, stop Tableau:
    
    tsm stop
    
    Wait for Tableau to stop before continuing to the next step.
2. On the PostgreSQL host, stop the Postgres database instance:
    
    sudo systemctl stop postgresql-13
3. Run the following commands to create the tar backup:
    
    sudo su
    
    cd /var/lib/pgsql
    
    tar -cvf step2.13.bkp.tar 13
    
    exit
4. Verify that the Postgres tar file is created with root permissions:
    
    sudo ls -al /var/lib/pgsql
5. On the Tableau host, stop Tableau administrative services:
    
    sudo /app/tableau\_server/packages/scripts.<version\_code>/./stop-administrative-services
6. Run the following commands to create the tar backup:
    
    cd /data
    
    sudo tar -cvf step2.tableau\_data.bkp.tar tableau\_data
7. On the Postgres host, start the Postgres database:
    
    sudo systemctl start postgresql-13
8. Start Tableau administrative services:
    
    sudo /app/tableau\_server/packages/scripts.<version\_code>/./start-administrative-services
9. Run the `tsm status` command to monitor TSM state before restarting.
    
    In most cases, the command will first return a status of DEGRADED or ERROR. Wait a few minutes and run the command again. If the status of ERROR or DEGRADED is returned, continue waiting. Do not attempt to start TSM until the status, STOPPED is returned. And then run the following command:
    
    tsm start

Restore Step 2

This process restores the Tableau Node 1 and the Postgres instance to Step 2. After you have restored to this step, you can then redeploy the remaining Tableau Nodes.

1. Stop the tsm services on the initial Tableau host (Node 1):
    
    tsm stop
2. Stop Tableau administrative services on all nodes of the Tableau Server deployment. Run the following command on each node, in order (Node 1, Node 2 and then Node 3):
    
    sudo /app/tableau\_server/packages/scripts.<version\_code>/./stop-administrative-services
3. After Tableau services have stopped, restore the PostgreSQL Step 2 tar. On the computer running Postgres, run the following commands:
    
    - sudo su
        
        systemctl stop postgresql-13
        
        cd /var/lib/pgsql
        
        tar  -xvf step2.13.bkp.tar
        
        systemctl start postgresql-13
        
        exit
4. Restore the Tableau Step 2 tar. On the initial Tableau host, run the following commands:
    
    cd /data
    
    sudo rm -rf tableau\_data
    
    sudo tar  -xvf step2.tableau\_data.bkp.tar
5. On the Tableau Node 1 computer, remove the following files:
    
    - sudo rm /data/tableau\_data/data/tabsvc/appzookeeper/0/version-2/currentEpoch
    - sudo rm /data/tableau\_data/data/tabsvc/appzookeeper/0/version-2/acceptedEpoch
    - sudo rm /data/tableau\_data/data/tabsvc/tabadminagent/0/servicestate.json
6. Start the Tableau administrative services:
    
    sudo /app/tableau\_server/packages/scripts.<version\_code>/./start-administrative-services
7. Reload the Tableau systmctl files and then run `start-administrative-services` again:
    
    sudo su -l tableau -c "systemctl --user daemon-reload"
    
    sudo /app/tableau\_server/packages/scripts.<version\_code>/./start-administrative-services
8. On Node 1, run the `tsm status` command to monitor TSM state before restarting.
    
    In some cases, you will get an error, `Cannot connect to server...`. This error occurs because the tabadmincontroller service has not restarted. Continue to run `tsm status` periodically. If this error does not go away after 10 minutes, run the `start-administrative-services` command again.
    
    After a few moments, the `tsm status` command will return a status of DEGRADED and then ERROR. Do not start TSM until the status, STOPPED is returned. And then run the following command:
    
    tsm start

Resume the installation process to install Tableau Server on remaining nodes.

## Install Tableau Server on remaining nodes

To continue the deployment, copy the Tableau installer to each node.

Node configuration overview

This section describes the process to configure Nodes 2-4. The sections that follow provide detailed configuration and validation procedures for each step.

Installation of Tableau Server Nodes 2-4 requires that you generate, copy and reference a bootstrap file during node installation.

To generate the bootstrap file, you run a TSM command on the initial node. You will then copy the bootstrap file to the target node, where you run it as part of the node initialisation.

The following json content shows an example of a bootstrap file. (The certificate and crypto-related values have been truncated to make the example file easier to read.)

{
"initialBootstrapSettings" : {
	"certificate" : "-----BEGIN CERTIFICATE-----\\r\\...=\\r\\n-----END CERTIFICATE-----",
	"port" : 8850,
	"configurationName" : "tabsvc",
	"clusterId" : "tabsvc-clusterid",
	"cryptoKeyStore" : "zs7OzgAAAAIAAAABAAAAA...w==",
	"toksCryptoKeystore" : "LS0tLS1CRUdJTiBUT00tLS0tCjM5MDBh...L",
	"sessionCookieMaxAge" : 7200,
	"nodeId" : "node1",
	"machineAddress" : "ip-10-0-1-93.us-west-1.compute.internal",
	"cryptoEnabled" : true,
	"sessionCookieUser" : "tsm-bootstrap-user",
	"sessionCookieValue" : "eyJjdHkiOiJKV1QiLCJlbmMiOiJBMTI4Q0JDLUhQ...",
	"sessionCookieName" : "AUTH\_COOKIE"
	}
}

The bootstrap file includes connection-based validation to authenticate Node 1 and creates an encrypted channel for the bootstrap process. The bootstrap session is time-limited, and configuring and validating nodes is time consuming. Plan on creating and copying new bootstraps as you configure the nodes.

After you run the bootstrap file, you then sign in to the initial Tableau Server node and configure the processes for the new node. When you finish configuring the nodes, you must apply changes and restart the initial node. The new node is configured and started. As you add nodes, the configuration and restart of the deployment will take consecutively longer to complete.

The Linux examples throughout the installation procedures show commands for RHEL-like distributions. If you are running the Ubuntu distribution, edit the commands accordingly.

1. Run update to apply latest fixes to the Linux OS:
    
    sudo yum update
2. Download and install dependencies:
    
    sudo yum deplist tableau-server-<version>.rpm | awk '/provider:/ {print $2}' | sort -u | xargs sudo yum -y install
3. Create the `/app/tableau_server` path in the root directory:
    
    sudo mkdir -p /app/tableau\_server
4. Run the installation program and specify the `/app/tableau_server` install path. For example, on a Linux RHEL-like operating system, run:
    
    sudo rpm -i --prefix /app/tableau\_server tableau-server-<version>.x86\_64.rpm

## Generate, copy and use the bootstrap file to initialise TSM

The following procedure shows how to generate, copy and use a bootstrap file when initialising TSM on another node. In this example, the bootstrap file is named `boot.json`.

In this example, the host computers are running in AWS, where EC2 hosts are running Amazon Linux 2.

1. Connect to the initial node (Node 1) and run the following command:
    
    tsm topology nodes get-bootstrap-file --file boot.json
2. Copy the bootstrap file to Node 2.
    
    scp boot.json ec2-user@10.0.31.83:/home/ec2-user/
3. Connect to Node 2 and switch to the Tableau Server scripts directory:
    
    cd /app/tableau\_server/packages/scripts.<version\_number>
4. Run the `initialize-tsm` command and reference the bootstrap file:
    
    sudo ./initialize-tsm -d /data/tableau\_data -b /home/ec2-user/boot.json --accepteula
5. After `initialize-tsm` has completed, delete `boot.json` and then exit or log out of the session.

## Configure processes

You must configure the Tableau Server cluster on the node where the Tableau Server Administration Controller (TSM controller) is running. The TSM controller runs on the initial node.

![Process status window showing the real-time status of process running in Tableau Server.](/tableau/next/en-gb/guides/enterprise-deployment/en-gb/Img/edg-process-config.png)

### Configure Node 2

1. After you have initialised TSM using the bootstrap file on Node 2, sign in to the initial node.
2. On the initial node (`node1`), run the following commands to configure processes on Node 2.:
    
    tsm topology set-process -n node2 -pr clustercontroller -c 1
    tsm topology set-process -n node2 -pr gateway -c 1
    tsm topology set-process -n node2 -pr vizportal -c 1
    tsm topology set-process -n node2 -pr vizqlserver -c 2
    tsm topology set-process -n node2 -pr cacheserver -c 2
    tsm topology set-process -n node2 -pr searchserver -c 1
    tsm topology set-process -n node2 -pr dataserver -c 2
    tsm topology set-process -n node2 -pr clientfileservice -c 1
    tsm topology set-process -n node2 -pr tdsservice -c 1
    tsm topology set-process -n node2 -pr collections -c 1
    tsm topology set-process -n node2 -pr contentexploration -c 1
    
    If you are installing version 2022.1 or later, add the Index and Search service as well:
    
    tsm topology set-process -n node2 -pr indexandsearchserver -c 1
    
    If you are installing version 2023.3 or later, only include the Index and Search service. Do not add the Search and Browse (searchserver) service
3. Review the configuration before you apply it. Run the following command:
    
    tsm pending-changes list
4. After you have verified that your changes are in the pending list (there will be other services in the pending list as well), apply the changes:
    
    tsm pending-changes apply
    
    The changes will require a restart. Configuration and restart will take some time.
5. Verify Node 2 configuration. Run the following command:
    
    tsm status -v

### Configure Node 3

Initialise TSM using the bootstrap process on Node 3, and then run the `tsm topology set-process` commands below.

There is a Coordination Service warning that will display each time you set a process. You can ignore this warning as you set the processes.

1. After you initialise TSM using the bootstrap file on Node 3, sign in to the initial node (`node1`) and run the following commands to configure processes:
    
    tsm topology set-process -n node3 -pr clustercontroller -c 1
    tsm topology set-process -n node3 -pr clientfileservice -c 1
    tsm topology set-process -n node3 -pr backgrounder -c 4
    tsm topology set-process -n node3 -pr filestore -c 1
    
    If you are installing version 2022.1 or later, add the Index and Search service as well:
    
    tsm topology set-process -n node3 -pr indexandsearchserver -c 1
2. Review the configuration before you apply it. Run the following command:
    
    tsm pending-changes list
3. After you have verified that your changes are in the pending list (the list will include other services that are automatically configured), apply the changes:
    
    tsm pending-changes apply --ignore-warnings
    
    The changes will require a restart. Configuration and restart will take some time.
4. Verify the configuration by running the following command:
    
    tsm status -v

## Deploy coordination service ensemble to Nodes 1-3

For standard reference architecture four-node deployment, run the following procedure:

1. Run the following commands on Node 1:
    
    tsm stop
    tsm topology deploy-coordination-service -n node1,node2,node3
    
    The process includes a restart of TSM, which will take some time.
2. After the coordination service is deployed, start TSM:
    
    tsm start

## Take Step 3 tar backups

After you have verified the installation, take four tar backups:

- PostgreSQL
- Tableau initial node (Node 1)
- Tableau Node 2
- Tableau Node 3

Create Step 3 tar files

1. On the initial node of Tableau, stop Tableau:
    
    tsm stop
2. After TSM has stopped, stop Tableau administrative services on each node. Run the following command on each node, in order (Node 1, Node 2 and then Node 3):
    
    sudo /app/tableau\_server/packages/scripts.<version\_code>/./stop-administrative-services
3. On the PostgreSQL host, stop the Postgres database instance:
    
    sudo systemctl stop postgresql-12
4. Run the following commands to create the tar backup:
    
    sudo su
    
    cd /var/lib/pgsql
    
    tar -cvf step3.12.bkp.tar 12
    
    exit
5. Verify that Postgres tar file is created with root permissions:
    
    sudo ls -al /var/lib/pgsql
6. On the Postgres host, start the Postgres database:
    
    sudo systemctl start postgresql-12
7. Create the tar backup on Node 1, Node 2 and Node 3. Run the following commands on each node:
    
    - cd /data
        
        sudo tar -cvf step3.tableau\_data.bkp.tar tableau\_data
    - Verify that the Tableau tar file is created with root permissions:
        
        ls -al
8. Start Tableau administrative services on each node in order (Node 1, Node 2 and then Node 3):
    
    sudo /app/tableau\_server/packages/scripts.<version\_code>/./start-administrative-services
9. Run the `tsm status` command to monitor TSM state before restarting.
    
    In most cases, the command will return a status of DEGRADED and then ERROR. Wait a few moments and run the command again. If the status of ERROR or DEGRADED is returned, continue waiting. Do not attempt to start TSM until the status, STOPPED is returned. And then run the following command:
    
    tsm start

Restore Step 3

This process restores the Tableau Node 1, Node 2 and Node 3. It also restores the Postgres instance to Step 3. After you have restored to this step, you can then deploy coordination service, Node 4 and then final node configurations.

1. Stop the tsm service on the initial Tableau host (Node 1):
    
    tsm stop
2. After TSM has stopped, stop Tableau administrative services on Node 1, Node 2 and Node 3. Run the following command on each node:
    
    sudo /app/tableau\_server/packages/scripts.<version\_code>/./stop-administrative-services
3. Restore the PostgreSQL Step 3 tar. On the computer running Postgres, run the following commands:
    
    sudo su
    
    systemctl stop postgresql-12
    
    cd /var/lib/pgsql
    
    tar -xvf step3.12.bkp.tar
    
    systemctl start postgresql-12
    
    exit
4. Restore the Tableau Step 3 tar on Node 1, Node 2 and Node 3. Run the following commands on each Tableau node:
    
    cd /data
    
    sudo rm -rf tableau\_data
    
    sudo tar  -xvf step3.tableau\_data.bkp.tar
5. On the Tableau Node 1 computer, remove the following files:
    
    - sudo rm /data/tableau\_data/data/tabsvc/appzookeeper/1/version-2/currentEpoch
    - sudo rm /data/tableau\_data/data/tabsvc/appzookeeper/1/version-2/acceptedEpoch
    - sudo rm /data/tableau\_data/data/tabsvc/tabadminagent/0/servicestate.json
    
    If the shell returns a "file not found" error, you may need to change the path name to increment the number `<n>` in this section of the path: `.../appzookeeper/<n>/version-2/...`.
6. Restart the administrative services on Node 1, Node 2 and Node 3. Run the following commands on each node:
    
    sudo /app/tableau\_server/packages/scripts.<version\_code>/./start-administrative-services
    
    sudo su -l tableau -c "systemctl --user daemon-reload"
    
    sudo /app/tableau\_server/packages/scripts.<version\_code>/./start-administrative-services
7. On Node 1, run the `tsm status` command to monitor TSM state before restarting.
    
    In some cases, you will get an error, `Cannot connect to server...`. This error occurs because the tabadmincontroller service has not restarted. Continue to run `tsm status` periodically. If this error does not go away after 10 minutes, run the `start-administrative-services` command again.
    
    After a few moments, the `tsm status` command will return a status of DEGRADED and then ERROR. Do not start TSM until the STOPPED status is returned. And then run the following command:
    
    `tsm start`

Resume the installation process to deploy coordination service on Nodes 1-3.

## Configure Node 4

The process for configuring Node 4 is the same as Node 3.

Set the same processes as you set for Node 3, running the same set of commands as shown above, but specifying `node4` in the commands rather than `node3`.

As with Node 3 verification, verify the Node 4 configuration by running `tsm status -v`.

Before you proceed, wait for the File Store process on Node 4 to finish synchronising. The File Store service status will return `is synchronizing` until it finishes. When the File Store service status returns `is running`, you can proceed.

## Final process configuration and verification

The final step to process configuration is to remove redundant processes from Node 1.

1. Connect to the initial node (`node1`).
2. Decommission the file store on Node 1. This will cause a warning about removing the file store from a co-located controller. You can ignore the warning. Run the following command:
    
    tsm topology filestore decommission -n node1
3. When file store is decommissioned, run the following command to remove the backgrounder process from Node 1:
    
    tsm topology set-process -n node1 -pr backgrounder -c 0
4. Review the configuration before you apply it. Run the following command:
    
    tsm pending-changes list
5. After you have verified that your changes are in the pending list, apply the changes:
    
    tsm pending-changes apply
    
    The changes will require a restart. Configuration and restart will take some time.
6. Verify the configuration:
    
    `tsm status -v`.
    
    Before you proceed, wait for the File Store process on Node 4 to finish synchronising. The File Store service status will return `is synchronizing` until it finishes. When the File Store service status returns `is running`, you can proceed.

## Perform backup

A full recovery of Tableau Server requires a backup portfolio that includes three components:

- A backup file of the repository and file store data. This file is generated by the `tsm maintenance backup` command.
- A topology and configuration export file. This file is generated by the `tsm settings export` command.
- Authentication certificate, key and keytab files.

For a full description of the backup and restore process, see the Tableau Server topic, _Perform a Full Backup and Restore of Tableau Server_ ([Linux](https://help.tableau.com/current/server-linux/en-gb/backup_restore.htm)).

At this stage of your deployment, all relevant files and assets that are required for a full restoration are included by running the `tsm maintenance backup` and `tsm settings export` commands.

1. Run the following command to export the configuration and topology settings to a file called `ts_settings_backup.json`
    
    tsm settings export -f ts\_settings\_backup.json
2. Run the following command to create a backup of the repository and file store data in a file named `ts_backup-<yyyy-mm-dd>.tsbak`. Ignore the warning about the file store not being on the controller node.
    
    tsm maintenance backup -f ts\_backup -d --skip-compression
    
    Location of backup file:
    
    `/data/tableau_data/data/tabsvc/files/backups/`
3. Copy both files and save them on a different storage asset that is not shared by your Tableau Server deployment.