TDengine常見問題解答(FAQ)


1. TDengine2.0之前的版本升級到2.0及以上的版本應該注意什么?☆☆☆

2.0版本在之前版本的基礎上,進行了完全的重構,配置文件和數據文件是不兼容的。在升級之前務必進行如下操作:

  1. 刪除配置文件,執行 sudo rm -rf /etc/taos/taos.cfg
  2. 刪除日志文件,執行 sudo rm -rf /var/log/taos/
  3. 確保數據已經不再需要的前提下,刪除數據文件,執行 sudo rm -rf /var/lib/taos/
  4. 安裝最新穩定版本的TDengine
  5. 如果數據需要遷移數據或者數據文件損壞,請聯系濤思數據官方技術支持團隊,進行協助解決

2. Windows平台下JDBCDriver找不到動態鏈接庫,怎么辦?

請看為此問題撰寫的技術博客

3. 創建數據表時提示more dnodes are needed

請看為此問題撰寫的技術博客

4. 如何讓TDengine crash時生成core文件?

請看為此問題撰寫的技術博客

5. 遇到錯誤"Unable to establish connection", 我怎么辦?

客戶端遇到鏈接故障,請按照下面的步驟進行檢查:

  1. 檢查網絡環境

    • 雲服務器:檢查雲服務器的安全組是否打開TCP/UDP 端口6030-6042的訪問權限
    • 本地虛擬機:檢查網絡能否ping通,盡量避免使用localhost 作為hostname
    • 公司服務器:如果為NAT網絡環境,請務必檢查服務器能否將消息返回值客戶端
  2. 確保客戶端與服務端版本號是完全一致的,開源社區版和企業版也不能混用

  3. 在服務器,執行 systemctl status taosd 檢查taosd運行狀態。如果沒有運行,啟動taosd

  4. 確認客戶端連接時指定了正確的服務器FQDN (Fully Qualified Domain Name(可在服務器上執行Linux命令hostname -f獲得)),FQDN配置參考:一篇文章說清楚TDengine的FQDN

  5. ping服務器FQDN,如果沒有反應,請檢查你的網絡,DNS設置,或客戶端所在計算機的系統hosts文件

  6. 檢查防火牆設置,確認TCP/UDP 端口6030-6042 是打開的

  7. 對於Linux上的JDBC(ODBC, Python, Go等接口類似)連接, 確保libtaos.so在目錄/usr/local/lib/taos里, 並且/usr/local/lib/taos在系統庫函數搜索路徑LD_LIBRARY_PATH

  8. 對於windows上的JDBC, ODBC, Python, Go等連接,確保driver/c/taos.dll在你的系統搜索目錄里 (建議taos.dll放在目錄 C:\Windows\System32)

  9. 如果仍不能排除連接故障,請使用命令行工具nc來分別判斷指定端口的TCP和UDP連接是否通暢 檢查UDP端口連接是否工作:nc -vuz {hostIP} {port} 檢查服務器側TCP端口連接是否工作:nc -l {port} 檢查客戶端側TCP端口鏈接是否工作:nc {hostIP} {port}

  10. 也可以使用taos程序內嵌的網絡連通檢測功能,來驗證服務器和客戶端之間指定的端口連接是否通暢(包括TCP和UDP):TDengine 內嵌網絡檢測工具使用指南

6. 遇到錯誤“Unexpected generic error in RPC”或者"TDengine Error: Unable to resolve FQDN", 我怎么辦?

產生這個錯誤,是由於客戶端或數據節點無法解析FQDN(Fully Qualified Domain Name)導致。對於TAOS Shell或客戶端應用,請做如下檢查:

  1. 請檢查連接的服務器的FQDN是否正確,FQDN配置參考:一篇文章說清楚TDengine的FQDN
  2. 如果網絡配置有DNS server, 請檢查是否正常工作
  3. 如果網絡沒有配置DNS server, 請檢查客戶端所在機器的hosts文件,查看該FQDN是否配置,並是否有正確的IP地址。
  4. 如果網絡配置OK,從客戶端所在機器,你需要能Ping該連接的FQDN,否則客戶端是無法鏈接服務器的

7. 雖然語法正確,為什么我還是得到 "Invalid SQL" 錯誤

如果你確認語法正確,2.0之前版本,請檢查SQL語句長度是否超過64K。如果超過,也會返回這個錯誤。

8. 是否支持validation queries?

TDengine還沒有一組專用的validation queries。然而建議你使用系統監測的數據庫”log"來做。

9. 我可以刪除或更新一條記錄嗎?

不能。因為TDengine是為聯網設備采集的數據設計的,不容許修改。但TDengine提供數據保留策略,只要數據記錄超過保留時長,就會被自動刪除。

10. 我怎么創建超過1024列的表?

使用2.0及其以上版本,默認支持1024列;2.0之前的版本,TDengine最大允許創建250列的表。但是如果確實超過限值,建議按照數據特性,邏輯地將這個寬表分解成幾個小表。

11. 最有效的寫入數據的方法是什么?

批量插入。每條寫入語句可以一張表同時插入多條記錄,也可以同時插入多張表的多條記錄。

12. windows系統下插入的nchar類數據中的漢字被解析成了亂碼如何解決?

windows下插入nchar類的數據中如果有中文,請先確認系統的地區設置成了中國(在Control Panel里可以設置),這時cmd中的taos客戶端應該已經可以正常工作了;如果是在IDE里開發Java應用,比如Eclipse, Intellij,請確認IDE里的文件編碼為GBK(這是Java默認的編碼類型),然后在生成Connection時,初始化客戶端的配置,具體語句如下:

Class.forName("com.taosdata.jdbc.TSDBDriver");
Properties properties = new Properties();
properties.setProperty(TSDBDriver.LOCALE_KEY, "UTF-8");
Connection = DriverManager.getConnection(url, properties);

13.TDengine GO windows驅動的如何編譯?

請看為此問題撰寫的技術博客

14.JDBC報錯: the excuted SQL is not a DML or a DDL?

請更新至最新的JDBC驅動

<dependency>
<groupId>com.taosdata.jdbc</groupId>
<artifactId>taos-jdbcdriver</artifactId>
<version>2.0.4</version>
</dependency>

15. 怎么報告問題?

如果 FAQ 中的信息不能夠幫到您,需要 TDengine 技術團隊的技術支持與協助,請將以下兩個目錄中內容打包:

/var/log/taos
/etc/taos

附上必要的問題描述,以及發生該問題的執行操作,出現問題的表征及大概的時間,在 GitHub提交Issue。

為了保證有足夠的debug信息,如果問題能夠重復,請修改/etc/taos/taos.cfg文件,最后面添加一行“debugFlag 135"(不帶引號本身),然后重啟taosd, 重復問題,然后再遞交。但系統正常運行時,請一定將debugFlag設置為131,否則會產生大量的日志信息,降低系統效率。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM