知识库

升级 Tableau Server 后,浏览器登录屏幕上出现错误“登录失败”


发布时间: 25 Aug 2016
上次修改日期: 24 Aug 2022

问题

升级到 Tableau Server 10 后,可能会出现以下问题:

尝试登录 Tableau Server 可能会失败,并显示“登录失败”错误

或者

日志可能会指出以下错误:

“psql exception:连接到本地主机:8060 被拒绝”

或者

存储库可能显示为“已停止”或“正在设置”。 

要确定此解决方案是否适用,请在失败时检查 clustercontroller 日志中的以下错误:

 警告:com.tableausoftware.cluster.postgres.SpawnPostgresRunner - 主实例的监视线程未启动。正在尝试故障转移...
org.postgresql.util.PSQLException: 致命错误:数据库系统正在启动
...
信息:com.tableausoftware.cluster.postgres.SpawnPostgresRunner - 将主 Postgres 故障转移到本地主机:8060
信息:com.tableausoftware.cluster.postgres.SpawnPostgresRunner - 停止本地主机上 Postgres 实例的监视线程:8060
信息:com.tableausoftware.cluster.postgres.SpawnPostgresRunner - 开始本地主机上主 Postgres 实例的监视线程:8060

环境

Tableau Server 10

解决方案

选项 1:
与您的 IT 团队合作以提高磁盘性能,或者在运行 Tableau Server 的计算机上从防病毒扫描中排除 Tableau 文件夹。
选项 2:
增加 Postgres(Tableau Server 存储库)的 clustercontroller 超时设置。以管理员身份打开命令提示符,并运行以下命令:
tabadmin stop
tabadmin set clustercontroller.pgsql_connection_timeout_ms 6000
tabadmin config
tabadmin start

 
如果在将值设置为 6000 后问题仍然存在,则可以再次增加该值,最大可增加到 60000。为了获得最佳效果,我们建议使用尽可能最低的值。

原因

Postgres 的启动时间比默认时间(60 秒)长。这种行为可能是由缓慢的输入/输出或其他环境因素造成的。 

其他信息

Tableau Server 会等待一段设定的时间(默认为 60 秒)以让数据库启动,之后再重试或重新启动它。以下两个 workgroup.yml 设置确定超时:

clustercontroller.pgsql_connection_attempts(默认值 = 20)
clustercontroller.pgsql_connection_timeout_ms (default value=3000)

这两个值的乘积确定总超时时长。(60000 毫秒或 60 秒)。

增加 clustercontroller.pgsql_connection_timeout_ms 的值将会增加 clustercontroller 在尝试进行故障转移之前等待 Postgres 响应的时间。增加此设置的值可能会对 Tableau Server 的性能产生负面影响。例如,它可能会增加 Tableau Server 在发生故障时无响应的时间,因为 clustercontroller 在重新启动 Postgres(如果其确实已停止)之前将等待更长时间。这就是为何我们建议为此设置使用尽可能最低的值的原因。 
最佳解决方案始终是:调查哪些环境因素导致 Postgres 启动缓慢。作为一种快速解决方法,修改 clustercontroller.pgsql_connection_timeout_ms 设置可能有用,同时我们正在对性能缓慢问题进行调查,以寻求一种长期修复方法。 
此文章是否已解决问题?