知識庫

TSM 重新啟動後 Tableau Server 節點陷入錯誤狀態


發佈時間 : 30 Jan 2019
上次修改日期 : 08 Apr 2024

問題

在重新啟動 Tableau Server 叢集後,節點也許會卡在錯誤狀態,而在以下 TabsvcHandler 錯誤記錄存在時,TSM 無法啟動:
   
+ \logs.zip\logs\tabsvc\tabsvc_node2-0.log:
 
2018-12-15 09:09:54.780 -0600  Thread-1 : INFO  com.tableausoftware.tabsvc.TabSvcHandler - Resurrection data file path set to: F:\Tableau Server\data\tabsvc\tabsvc\0\tabsvc-service-resurrection-data_tabsvc-clusterid.json
2018-12-15 09:09:54.780 -0600  Thread-1 : INFO  com.tableausoftware.tabsvc.TabSvcHandler - Found resurrection data file F:\Tableau Server\data\tabsvc\tabsvc\0\tabsvc-service-resurrection-data_tabsvc-clusterid.json.現在將嘗試重新啟動服務。
2018-12-15 09:09:54.785 -0600  Thread-1 : ERROR com.tableausoftware.tabsvc.TabSvcHandler - Failed to load resurrection data file: F:\Tableau Server\data\tabsvc\tabsvc\0\tabsvc-service-resurrection-data_tabsvc-clusterid.json
        java.lang.RuntimeException: com.fasterxml.jackson.databind.JsonMappingException: No content to map due to end-of-input

環境

  • Windows Server 2012 與 2016
  • 具有 TSM 的 Tableau Server(所有目前版本)

解決方法

從群集中移除失敗的節點,重新安裝 Tableau Server,並為叢集再次新增節點。
  1. 使用 TSI UI 移除 [Error] 狀態節點,或使用命令 TSM 拓撲 remove-nodes --node-names "node2"。這讓剩下的叢集處於良好狀態。 
  2. 選擇性:在移除 Tableau 前建立資料備份,然後將備份檔案儲存到電腦上非 Tableau 部分的安全位置。附註:依預設,這些將在 C:\ProgramData\Tableau\Tableau Server 建立,並使用與「uninstall-2018.1.tsbak」類似的名稱。在分開的電腦上儲存備份檔案讓您可以重新安裝建立備份的 Tableau Server 版本,備份中也包含資料,即使在執行 tableau-server-obliterate 指令碼後也可以。
  3. 在驗證所有從節點備份的 Tableau 資料後,在叢集中錯誤節點上執行 Tableau-Server-Obliterate 指令碼,預設位置為:C:\Program Files\Tableau\Tableau Server\packages\scripts.<version_code>\tableau-server-obliterate.cmd -y -y –y
  4.  使用 TSM 網站介面或 TSM CLI 重新在想要的節點上安裝 Tableau Server
在其他節點安裝 Tableau Server 的一般步驟是:
a.確認必要條件
b.產生節點啟動程序檔案 
c.安裝其他節點
d.設定其他節點
e.安裝驅動程式

附註您應該只在能套用擱置變更完成流程時新增並設定其他節點。在沒有套用待處理變更完成動作的情況下新增節點會導致使用者無法登入 Tableau Server。
  1. 套用擱置變更並重新啟動 Tableau Server。
  2. 透過檢視 TSM 狀態頁面或者網站 UI 伺服器狀態頁面來驗證節點已成功加入叢集。

原因

tabsvc resurrection 檔案 (tabsvc-service-resurrection-data-*.json) 已損壞,而這個檔案負責起始化 TSM 中 tabsvc 的執行狀態。  這可能是因為磁碟空間耗盡。  
這篇文章是否解決了問題?