KNOWLEDGE BASE

Unable to Import a Server Configuration and Topology to and from a Tableau Server configured with Amazon RDS


Published: 19 Sep 2019
Last Modified Date: 20 Sep 2019

Issue

You are experiencing difficulties when importing server configuration and topology from a Tableau Server configured with Amazon Relational Database Service (RDS) to Tableau Server configured with built-in PostgreSQL database and visa-versa. 

Environment

Tableau Server deployed in AWS

Resolution

Folow the steps described in one of the following scenarios.

When importing configuration or topology (using "tsm settings import") from a Tableau Server using built-in PostgreSQL database to a Tableau Server using RDS, follow the steps below:

  1. Edit the json file used for the import and remove entries for these config values: 
    • external.service.pgsql.enabled 
    • pgsql.port 
    • pgsql.ssl.enabled 
    • pgsql.ssl.cert.bytes 
    • pgsql.ssl.required 
    • external.service.pgsql.flavor 
    • pgsql.ssl.sslmode 
  2. If importing topology, the topology in the json file needs to have an entry for the 'external' node. If the topology was exported from a Tableau Server configured with RDS, it will include this information. 
    • The topology exported from a Tableau Server configured with built-in PostgreSQL database does not include the information for external repository. 
    • Edit the json file to add an entry for the external node to the list of nodes under "topologyVersion" in the json file.   That entry should look like this: 
      "external" : { 
              "services" : { 
                "pgsql" : { 
                  "instances" : [ { 
                    "instanceId" : "0" 
                  } ] 
                } 
              } 
            } 
    • Remove any entries for pgsql service from any nodes other than “external” node from the json file.
  3. Import the edited json using the “tsm settings import” command. 
  4. If you do not remove the other pgsql from the json file prior to importing the settings, use the “tsm set-process" command to remove pgsql instance from other nodes after.  
  5. Once the json file containing the server configuration and topology is imported and you have removed pgsql process from all the nodes other than external node, run the “tsm pending-changes apply” command to commit the new configuration and topology. 
 

When importing configuration or topology (using "tsm settings import") from Tableau Server using RDS to a Tableau Server using built-in PostgreSQL database, take these actions before doing "tsm settings import":  

  1. Edit the json file and remove entries for these config values: 
    • external.service.pgsql.enabled 
    • pgsql.port 
    • pgsql.ssl.enabled 
    • pgsql.ssl.cert.bytes 
    • pgsql.ssl.required 
    • external.service.pgsql.flavor 
    • Pgsql.ssl.sslmode 
  2. If importing topology, determine what nodes you are currently running the repository (built-in PostgreSql database) using the "tsm status -v" command. 
  3. If importing topology, remove entry for “external” node in the list of nodes under 'topologyVersion' in the json file. 
  4. Import the edited json using the “tsm settings import” command. 
  5. Then set the repository (built-in PostgreSQL database) on the nodes you identified in set 2. Use “tsm set-process" to add pgsql process. 
  6. Once the json file containing the server configuration and topology is imported and you have added pgsql process to at least one node, run “tsm pending-changes apply” command to commit the new configuration and topology. 

Cause

Importing server configuration and topology from a Tableau Server configured with Amazon RDS to Tableau Server configured with built-in PostgreSQL database and visa-versa is a known issue. Such feature which enables Tableau Server deployed in AWS to use Amazon Relational Database Service (Amazon RDS) as an external repository, has been released in 2019.3 as part of Server Management Add-on bundle.
Did this article resolve the issue?