从初始节点故障中恢复

您在其中安装 Tableau 的第一台计算机(即“初始节点”)有一些特有的特征。三个进程只能运行在初始节点上,并且不能转移到任何其他节点(除非在出现故障的情况下):许可证服务(许可证管理器)、激活服务和 TSM 控制器(管理控制器)。Tableau 包括一个脚本,可自动将这些进程移到您的其他现有节点之一,使您能恢复对 TSM 的访问并保持 Tableau Server 运行。

两个其他进程最初位于初始节点上,但可添加或转移到附加节点:CFS(客户端文件服务)和协调服务。根据使用 CFS 和协调服务配置安装的方式,您可能还需要采取措施重新部署这些进程。

如果初始节点出现故障

如果初始节点存在问题,并且其他节点上有冗余进程,则无法保证 Tableau Server 可以继续运行。

  • 在初始节点出现故障后,Tableau Server 最多可以继续运行 72 小时,然后才会因为缺少许可服务而影响其他进程。如果是这样,在初始节点出现故障后,您的用户或许能够继续登录并且查看和使用其内容,但您将无法重新配置 Tableau Server,原因是您没有管理控制器的访问权限。
  • 如果您运行的是针对 ATR 配置的 Tableau Server 2021.4.2(或更低版本)版本,则初始节点出现问题将导致所有服务器功能不可用。无论节点是否有问题,或者您是否有意停止它(例如,执行系统级修补程序),都是如此。

即使配置了冗余进程,在初始节点出现故障后,Tableau Server 也可能无法继续运行。即使安装配置为高可用性也是如此。这意味着,您应特别注意要尽快将两个独有的进程转移到另一个正在运行的节点。如果初始节点因为在相对短的时间内可恢复的原因(例如,您可纠正的硬件故障)而出现故障,您应首先尝试在不使用下面的过程的情况下恢复节点。

注意:本文中的步骤要求服务器停机并可能有破坏性,因此只应在初始节点发生灾难性故障时使用。如果无法让初始节点再次恢复运行,请使用下面的步骤将关键 TSM 进程转移到群集中的另一个节点。

一般要求

2021.1 版 Tableau Server 已更新,改进了恢复功能。本主题中的过程是针对 Tableau Server 2021.1 编写的。

如果尝试从更低版本的 Tableau Server 恢复出现故障的节点,则必须遵循适用于该版本的过程。若要查看 Tableau 帮助的存档版本,请参见 Tableau 帮助(链接在新窗口中打开)

  • 在设置多节点 Tableau Server 安装过程中,您应该已部署一个协调服务整体。以下过程假定在初始节点出现问题之前部署了一个协调整体。有关部署协调服务整体的详细信息,请参见部署协调服务整体
  • 此过程假定您已在运行协调服务的每个节点上配置了客户端文件服务 (CFS) 实例。如果未添加其他 CFS 实例,则唯一的实例位于初始节点上,并且至少需要向另一个节点添加一个 CFS 实例。您还将需要重新填充 CFS。Tableau Server 至少需要一个 CFS 实例。有关详细信息,请参见配置客户端文件服务Tableau Server 客户端文件服务

注意:此操作包括您可能需要使用 TSM 命令行执行的步骤。

将 TSM 控制器、许可证服务和激活服务转移到另一个节点

如果初始节点出现问题,则需要在另一个节点上启动 TSM 控制器、许可服务和激活服务。请按照以下步骤,使用提供的 move-tsm-controller 脚本,并使 TSM 控制器、许可服务和激活服务在另一个节点上工作。

  1. 在仍然工作的节点上,运行控制器恢复脚本。在工作节点上的终端提示符下,键入以下命令:

    sudo /opt/tableau/tableau_server/packages/scripts.<version_code>/move-tsm-controller -n <nodeID>

    其中“nodeID”是要让 TSM 控制器在其中运行的节点的 ID。例如:

    sudo /opt/tableau/tableau_server/packages/scripts.10400.17.0802.1319/move-tsm-controller -n node2

  2. 验证管理控制器是否正在节点上运行:

    tsm status -v

  3. 停止 Tableau Server

    此过程的其余部分包括一些带有 --ignore-node-status 选项的命令。使用 --ignore-node-status 选项运行命令时,该命令将运行而不考虑指定节点的状态。若要使用 --ignore-node-status,请指定出现故障的节点:

    tsm stop --ignore-node-status <nodeID>

    举例来说,如果 node1 出现故障,请按以下方式运行命令:

    tsm stop --ignore-node-status node1

  4. 将许可证服务添加到节点:

    tsm topology set-process -pr licenseservice -n <nodeID> -c 1

  5. 从原始节点中移除旧的许可证服务,其中“nodeID”是出现故障的初始节点:

    tsm topology set-process -pr licenseservice -n <nodeID> -c 0

  6. 如果您正在运行以下版本之一

    • 2023.3.0 或更高版本

    • 2023.1.3 或更高版本

    • 2022.3.7 或更高版本

    • 2022.1.15 或更高版本

    或者您正在运行更低版本并使用 ATR,请将激活服务添加到新节点:

    tsm topology set-process -pr activationservice -n <nodeID> -c 1

  7. 如果您正在运行以下版本之一或更高版本

    • 2023.3.0 或更高版本

    • 2023.1.3 或更高版本

    • 2022.3.7 或更高版本

    • 2022.1.15 或更高版本

    或者您正运行更低版本并使用 ATR,请从原始节点中移除旧的激活服务,其中“nodeID”是出现故障的初始节点:

    tsm topology set-process -pr activationservice -n <nodeID> -c 0

    重要信息:在群集中,如果正在运行您唯一的 CFS 实例的节点发生故障,则 CFS 管理的任何文件将丢失,并且您将需要通过重新导入证书和自定义映像并进行任何相关配置更改来重新填充这些 CFS 文件。有关 CFS 管理的文件列表,请参见Tableau Server 客户端文件服务

  8. 如果初始节点已在运行 消息服务,请将消息服务添加到此节点:

    tsm topology set-process -pr activemqserver -n node2 -c 1

  9. (可选)您还可以添加在初始节点上运行但不在此节点上运行的其他进程。例如,若要添加缓存服务器:

    tsm topology set-process -pr cacheserver -n node2 -c 1

  10. 应用更改:

    tsm pending-changes apply --ignore-node-status <nodeID>

    如果待定更改需要重新启动服务器,pending-changes apply 命令将显示一个提示,告知您将进行重新启动。即使服务器已停止,此提示也会显示,但在这种情况下不会重新启动。您可以使用 --ignore-prompt 选项隐藏提示,但这样做不会改变重新启动行为。如果更改不需要重新启动,则会在不提示的情况下应用更改。有关详细信息,请参见tsm pending-changes apply

  11. (以 tableau 系统帐户身份)重新启动 TSM 管理控制器:

    sudo su -l tableau -c "systemctl --user restart tabadmincontroller_0.service"

    注意:tabadmincontroller 可能需要几分钟才会重新启动。如果尝试在下一步中控制器重新启动之前应用待处理更改,则 TSM 将无法连接到控制器。您可以使用 tsm status -v 命令验证控制器是否正在运行。Tableau Server 管理控制器应列为“正在运行”。

  12. 应用待定更改(看上去可能不会有任何更改,但是此步骤是必需的):

    tsm pending-changes apply --ignore-node-status <nodeID>

  13. 在新控制器节点上激活 Tableau Server 许可证:

    tsm licenses activate -k <product-key>

  14. 验证是否正确激活了许可证:

    tsm licenses list

  15. 如果初始节点正在运行协调服务,则需要部署一个不包含该节点的新协调服务整体。如果您有一个三节点群集并且初始节点运行的是协调服务,则您必须在另一个节点上部署新的单实例协调服务整体,并清理旧的整体。在此示例中,协调服务的单个实例会部署到第二个节点:

    tsm topology deploy-coordination-service -n node2 --ignore-node-status node1

  16. 如果初始节点运行的是文件存储实例,则需要删除该实例:

    tsm topology filestore decommission -n <nodeID> --delete-filestore

    其中 nodeID 是出现故障的初始节点。

  17. 如果您在上面部署的新协调服务整体是单个节点整体,请使用 --ignore-warnings 标志应用挂起的更改:

    tsm pending-changes apply --ignore-node-status node1 --ignore-warnings

  18. 删除初始节点,其中 nodeID 是出现故障的初始节点:

    tsm topology remove-nodes -n <nodeID>

  19. 如果您在上面部署的新协调服务整体是单个节点整体,请使用 --ignore-warnings 标志应用挂起的更改:

    tsm pending-changes apply --ignore-warnings

  20. 启动 Tableau Server

    tsm start

    此时服务器应会启动,并且您将能够使用 TSM 来配置它。下一步是替换初始节点,以使群集拥有原来的节点数。如何执行此操作取决于您是否要重用出现故障的节点。我们建议您仅在能够确定故障原因时才重用该节点,并执行步骤来防止故障重新发生。

  21. 如果打算重用原始节点,您首先需要从中完全移除 Tableau。通过运行 tableau-server-obliterate 脚本来执行此操作。有关执行此操作的详细信息,请参见从计算机中移除 Tableau Server

  22. 在全新的计算机上,或在完全移除 Tableau 后的原始计算机上,使用原始安装程序和从现在运行管理控制器和许可服务的节点中生成的引导程序文件来安装 Tableau。这将创建一个附加节点,您可以将其配置为群集的一部分。有关如何添加节点的详细信息,请参见安装和配置附加节点

    最佳做法是配置在原始节点出现故障时丢失的任何进程,确保群集完全冗余。您可能需要将进程从新的初始节点转移到新添加的附加节点来复制原始配置。举例来说,如果初始节点之前只运行网关和文件存储,您可能需要以相同的方式配置新初始节点。

  23. 使节点按所需的方式启动并运行后,您还应重新部署一个新的协调服务整体。有关详细信息,请参见部署协调服务整体

  24. 最后,如果尚未完成此操作,请向运行协调服务的每个节点添加 CFS 实例。有关详细信息,请参见配置客户端文件服务

    在群集中,如果正在运行您唯一的 CFS 实例的节点发生故障,则 CFS 管理的任何文件将丢失,并且您将需要通过重新导入证书和自定义映像并进行任何相关配置更改来重新填充这些 CFS 文件。有关 CFS 管理的文件列表,请参见Tableau Server 客户端文件服务

 

感谢您的反馈!您的反馈已成功提交。谢谢!