Use the links below to learn more about Tableau Server’s support for high availability:
Understanding High Availability
If you’re configuring a Tableau Server system for high availability, the steps you perform are all about building in redundancy, thus reducing your potential downtime. The four areas that require redundancy are the data engine, repository, and gateway processes, and the primary Tableau Server, which runs the server's licensing component. Because there must always be one active instance of the data engine and repository processes, configuring the cluster is a multi-phased procedure that requires the primary Tableau Server to be stopped and restarted at certain points so that settings can take effect. For exact steps, see Configure for Failover and Multiple Gateways and Configure a Backup Primary. Seedistrib_requ.htmas well.
The topics below summarize how your server system topology evolves as you configure it for high availability. The minimum recommended configuration for high availability is a three-node system. This includes a primary server to run licensing and two workers to host the main processes. You can increase reliability of the system by adding a fourth computer to serve as a backup primary. If you run a gateway process on all nodes, it also makes sense to use a load balancer for the gateways.
A Single Server System
After you install the primary Tableau Server, it is running at least one instance of all server processes. This is the most basic configuration of Tableau Server. It has no redundancy.
Here’s what the Status table on the Maintenance page typically looks like for a single-server system:
To build in redundancy, you need to add additional servers to host the active and standby data engine and repository processes. In addition, to reduce the system’s vulnerability, multiple gateways can be run, and the primary should be isolated on its own node, ideally running as few of the server processes as possible. The fewest number of computers required to achieve this is three (see A Three-Node System); however, you can achieve some redundancy with two computers.
A Two-Node System
If you have hardware constraints and a three-node cluster is out of reach, you can gain some redundancy using two computers and a host that's external to your Tableau Server cluster.
In the above system, the primary Tableau Server and a worker server are running the active and standby instances of the data engine and the repository, as well as gateways. A third computer, external to the Tableau Server cluster is being used as a third point of contact for the two gateways. Here's why: When a Tableau server that's running the data engine or the repository loses connectivity with the other nodes, it checks with a gateway process external to itself (but still within the Tableau Server cluster) to determine which node failed and whether any standby processes now need to become active. In a two-node cluster, if connectivity is lost, it's not possible to reach that other Tableau gateway process. In these cases, a website or computer outside the Tableau Server cluster can be used. See Confirm Failover Externally for how to configure this.
Here's what the Status table for the above configuration looks like. Because the third computer isn't a Tableau server, it's not listed in the table.
A Three-Node System
While the two-node system described above provides some failover support for the data engine and repository processes, a three-node system would help you reduce the primary's vulnerability:
The Status table on the Maintenance page looks similar to the following:
In a three-node cluster, the data engine and repository processes have been moved from the primary to a worker, and the primary is only running the gateway process. Because search and licensing functionality are integral to the primary and can't be removed, they are not displayed in the Status table. In this configuration, if your active worker fails, the standby worker
automatically becomes active. Exactly how to create this three-node cluster, including how to add the workers and remove the processes from the primary, is described in Configure for Failover and Multiple Gateways.
There are still two things you can do to improve this three-node cluster: 1) add a load balancer to interface with the three active gateways, and 2) create a backup to address the single point of failure: the primary. See the topics below for details.
Add a Load Balancer
At this point, all three nodes have gateways, which are used to route requests to available server processes. Unlike the repository process, there aren't active and standby gateways. All gateways are active. To further reduce your cluster's potential for downtime, you should configure a load balancer.
Add a Backup Primary
Adding a backup primary provides a safeguard for your system. The backup primary is an additional server added to the system to be ready if your primary fails. While it is not an active server, after you complete the first set of steps in Configure a Backup Primary, it is ready to be activated. While the backup primary needs to be licensed during installation, it does not count as one of the three environments allowable under the Tableau EULA.
Here’s what the system looks like with a backup primary:
The Status table for the above configuration looks the same as for a three-node system. If the primary fails and you perform the steps for the backup primary to take over, your system is back online using the new primary:
The primary Tableau Server is the only place where licensing can be run. Licensing is checked every 8 hours. If the primary is only running the licensing component, and depending on when the licensing check last occurred, you have up to 8 hours to bring the backup primary online. During that window of time, the cluster will continue to function. For example, if the licensing check occurred 7 hours and 50 minutes ago, you have 10 minutes. If the licensing check occurred 1 minute ago, you have 7 hours and 59 minutes.
Configure for Failover and Multiple Gateways
Do the following to configure a three-computer cluster that provides multiple gateways and failover support. Note that running multiple gateways only makes sense if you plan to also use a load balancer.
1. Install Tableau Serveron your primary computer.
2. After Setup completes, check the Status table on the Maintenance page. All the processes should have a green “waiting for request” status:
3. Stop the serveron the primary.
4. Next, runTableau Worker Setupon the two additional computers or VMs that will provide failover and extra gateway support. During Worker Setup, you will need to provide the computer name (recommended) or IPv4 addresses of the primary Tableau Server. If you enter multiple IPv4 addresses, separate each with a comma.
A static IP address must be assigned to the primary, even if you are using the primary's computer name to identify it (learn more).
5. With the primary server still stopped, open its Configuration dialog box:Start>All Programs>Tableau Server>Configure Tableau Server. On the General tab enter the Run As account password.
6. On the Servers tab, clickAddto add a worker.
7. Enter the IPv4 address or computer name of the worker, enter1forData Engineand select theRepositorycheck box. For now, leave theGatewaycheck box cleared. You will add a gateway to this worker later.
If you want the worker to run other server processes, enter the number of instances you want to run, such as1or2.
8. Click OK to close the Add Tableau Server dialog box then clickAddagain on the Servers tab to add another worker.
9. Enter the IPv4 address or computer name of the second worker, enter at least1for every process but theData Engine(set that to0). Clear theRepositorycheck box and selectGateway.
You do not need to specify which worker is active and which is standby for the data engine and repository.
10. Start the serveron the primary.
11. Important:Allow several minutes for the server's synchronization processes to copy data. This can take anywhere from 5 minutes to 15 minutes (or even much longer) depending on the size of your installation and the number of extracts.
12. Confirm that the synchronization is complete by comparing the following folders on the primary and first worker server:
l Data engine folder:ProgramData\Tableau\Tableau
Server\data\tabsvc\dataengine
The contents and size of this folder on the primary and first worker should be identical.
l Repository folder:ProgramData\Tableau\Tableau
Server\data\tabsvc\pgsql
The size of this folder on the primary and first worker should be identical, or close to identical.
Not confirming the above before you stop the server in the next step can result in loss of data.
13. After you've confirmed that the synchronization is complete,stop the serveron the primary.
Computer (Primary), and click Edit.
15. In the Edit Tableau Server dialog box, setData Engineto0and clear theRepository check box. KeepGatewayselected. If you want the primary Tableau Server to run nothing but Apache (so, no Tableau Server processes), you can remove the remaining processes from it by entering0in each text box:
Click OK.
16. On the Servers tab, select the first worker, clickEdit, and select theGatewaycheck box. Leave the other settings as-is. Click OK.
17. Still on the Servers tab, select the second worker and clickEdit. 18. SetData Engineto1and select theRepositorycheck box.
19. Click OK.
The Servers tab should now look similar to the following:
20. You can also set up email alerts so that you’re notified of server failures or changes in status for your data engine and repository processes. To do this, click the Alerts and Subscriptions tab in the Configuration dialog box and follow the steps in Configure Email Alerts.
21. Click OK to close the Configuration dialog box.
22. Start the serveron the primary (it may take a few minutes for your changes to take effect). Your system is now configured to provide failover support for the data engine and repository processes. It is also configured for multiple gateways. You can nowuse a load balancerto ensure the cluster's availability in the event of a gateway failure—and to distribute the cluster's workload.
A light green check mark means a process is standing by, ready to take over if the active process (dark green check mark) should fail.
Confirm Failover Externally
Once you add a second server that is running the data engine or repository, you can use the Use external hosts to confirm failovercheck box on the Servers tab. This option lets you list one or more computers or websites external to your Tableau Server cluster that will be used to check the cluster's connectivity status in the event of a failover.
Using an external host or website to confirm failover is most useful in a two-node Tableau Server system like the following:
In the above system, the primary Tableau Server and a worker server are running the active and standby instances of the data engine and the repository, as well as gateways. The third computer, external to the Tableau Server cluster is being used as a third point of contact for the two gateways. Here's why: When a Tableau server that's running the data engine or the repository loses connectivity with the other nodes, it checks with a gateway process external to itself (but still within the Tableau Server cluster) to determine which node failed and whether any standby processes now need to become active. In a two-node cluster, if connectivity is lost, it's not possible to reach that other Tableau gateway process. In these cases, a computer that isn't running Tableau can be used to make a simple TCP connection. If the worker server in the above diagram lost connectivity with the primary but could still connect to the external host, that would be the trigger for it to start running the active instances of the data engine and repository. If the external host or website can't be reached neither the active nor standby data engine will start and a message similar to the following will appear in the tabspawnpg.log file on the servers that are hosting the data engines (at ProgramData\Tableau\Tableau
Server\data\tabsvc\logs\pgsql):
2013-11-04 14:42:23.934 -0800 ERROR root: Not "Primary": No quorum. Cannot reach external failover confirmation host on myco.example.lan:80 from 10.98.7.65
2013-11-04 14:42:23.945 -0800 ERROR root: Not "Secondary": No quorum. Cannot reach external failover confirmation host on myco.example.lan:80 from 10.98.7.65
Add a Load Balancer
You can enhance the reliability of a Tableau Server cluster by running multiple gateways and configuring a load balancer to distribute requests across the gateways. Unlike the repository process, which can be active or standby, all gateway processes are active. If one gateway in a cluster becomes unavailable, the load balancer stops sending requests to it. The load balancer algorithm you choose determines how the gateways will route client requests.
If you plan to also create a backup primary and that computer will be running a gateway process, be sure to identify that gateway to your load balancer, along with all the other gateways.
Guidelines
Note the following as you configure your load balancer to work with Tableau Server:
l Tested load balancers: Tableau Server clusters with multiple gateways have been
tested with Apache and F5 load balancers.
l Tableau Server URL: When a load balancer is in front of a Tableau Server cluster, the
URL that's accessed by Tableau Server users belongs to the load balancer, not the primary Tableau Server.
l X-Forwarded-For and X-Forwarded-Host headers: The Tableau ServerUser
Activityadministrative view displays client IP addresses, among other information. For this view to display the IP addresses of clients instead of the cluster's load balancer, the X-Forwarded-ForandX-Forwarded-Hostheaders may need to be explicitly enabled on the load balancer (some load balancers have it enabled by default, some do not).
l Trusted host settings: The computer running the load balancer must be identified to
Tableau Server as a trusted host. See the procedure below for how to configure Tableau Server.
l Proxy server configurations: The settings used to identify a load balancer to Tableau
Server are the same ones that are used to identify a proxy server. If your Tableau Server cluster requires both a proxy server and a load balancer, both must be handled by the same process, on the same machine.
Configure Tableau Server to Work with a Load Balancer
You can configure Tableau Server to work with a load balancer by performing the following steps.
1. Stop the server.
2. In the Tableau Server bin directory, enter the following command, wherenameis the canonical (externally-visible) name of the load balancer:
tabadmin set gateway.public.host "name"
3. By default, Tableau assumes that the load balancer is listening on port 80 for external communications. To use a different port, enter the following command, whereport_ numberis the port:
tabadmin set gateway.public.port "port_number"
4. Now, enter the following command, whereserveris the IPv4 address or computer name of the load balancer:
tabadmin set gateway.trusted "server"
The value forservercan be a comma-separated list, for example:
tabadmin set gateway.trusted "123.45.67.890, 123.45.67.880, 123.45.67.870"
or
tabadmin set gateway.trusted "proxy1, proxy2, proxy3"
5. In the next command, you will provide any alternate names for the load balancer, such as its fully-qualified domain name, any non-fully-qualified domain names, and any aliases. These are the names a user might type in a browser. Separate each name with a comma:
tabadmin set gateway.trusted_hosts "name1, name2, name3" For example:
tabadmin set gateway.trusted_hosts "lb.example.com, lb, ftp.example.com, www.example.com"
6. Run theconfigcommand:
tabadmin config
7. Start the serverso the changes can take effect.
Configure a Backup Primary
Before you follow the procedures in this topic, follow the steps in Configure for Failover and Multiple Gateways. After going through those steps, you have two worker servers that are providing failover support. Each server is also running a gateway, for which a load balancer can be configured. The primary Tableau Server is running a gateway process and licensing, which is not exposed or assignable as a process. Now that you have redundancy for the data engine, repository, and gateway, you need to build in redundancy for your primary Tableau Server. You do this by creating a backup of it. While the backup primary needs to be licensed during installation, it does not count as one of the three environments allowable under the Tableau EULA.
Keep in mind that licensing is checked every 8 hours. If the primary is only running the licensing component, and depending on when the licensing check last occurred, you have up to 8 hours to bring the backup primary online. During that window of time, the cluster will continue to
function. For example, if the licensing check occurred 7 hours and 50 minutes ago, you have 10 minutes. If the licensing check occurred 1 minute ago, you have 7 hours and 59 minutes. To see when the last licensing check occurred, look at the checklicense_lic.log file and other log files in the ProgramData\Tableau\Tableau Server\data\tabsvc\logs\licensing folder.
The first procedure below describes how to create a backup of your primary. The second procedure walks you through what to do if your current primary fails.
Creating a Backup Primary
Do the following to create a backup primary:
1. Stop the serveron your primary Tableau Server.
2. On the primary, open a command prompt as an administrator and navigate to the Tableau Server bin directory:
C:\Program Files\Tableau\Tableau Server\8.1\bin
3. Version 8.1.3 and earlier:Enter the following command, where<primary1>is the current primary's IPv4 address or computer name and<primary2>is the backup primary’s IPv4 address or computer name:
tabadmin failoverprimary --primary <primary1> --secondary <primary2>
Version 8.1.4 and later:Enter the following command, where<primary1>is either