1. TDengine2.0之前的版本升級到2.0及以上的版本應該注意什么?☆☆☆
2.0版本在之前版本的基礎上,進行了完全的重構,配置文件和數據文件是不兼容的。在升級之前務必進行如下操作:
- 刪除配置文件,執行
sudo rm -rf /etc/taos/taos.cfg
- 刪除日志文件,執行
sudo rm -rf /var/log/taos/
- 確保數據已經不再需要的前提下,刪除數據文件,執行
sudo rm -rf /var/lib/taos/
- 安裝最新穩定版本的TDengine
- 如果數據需要遷移數據或者數據文件損壞,請聯系濤思數據官方技術支持團隊,進行協助解決
2. Windows平台下JDBCDriver找不到動態鏈接庫,怎么辦?
請看為此問題撰寫的技術博客
3. 創建數據表時提示more dnodes are needed
請看為此問題撰寫的技術博客
4. 如何讓TDengine crash時生成core文件?
請看為此問題撰寫的技術博客
5. 遇到錯誤"Unable to establish connection", 我怎么辦?
客戶端遇到鏈接故障,請按照下面的步驟進行檢查:
-
檢查網絡環境
- 雲服務器:檢查雲服務器的安全組是否打開TCP/UDP 端口6030-6042的訪問權限
- 本地虛擬機:檢查網絡能否ping通,盡量避免使用
localhost
作為hostname - 公司服務器:如果為NAT網絡環境,請務必檢查服務器能否將消息返回值客戶端
-
確保客戶端與服務端版本號是完全一致的,開源社區版和企業版也不能混用
-
在服務器,執行
systemctl status taosd
檢查taosd運行狀態。如果沒有運行,啟動taosd -
確認客戶端連接時指定了正確的服務器FQDN (Fully Qualified Domain Name(可在服務器上執行Linux命令hostname -f獲得)),FQDN配置參考:一篇文章說清楚TDengine的FQDN。
-
ping服務器FQDN,如果沒有反應,請檢查你的網絡,DNS設置,或客戶端所在計算機的系統hosts文件
-
檢查防火牆設置,確認TCP/UDP 端口6030-6042 是打開的
-
對於Linux上的JDBC(ODBC, Python, Go等接口類似)連接, 確保libtaos.so在目錄/usr/local/lib/taos里, 並且/usr/local/lib/taos在系統庫函數搜索路徑LD_LIBRARY_PATH里
-
對於windows上的JDBC, ODBC, Python, Go等連接,確保driver/c/taos.dll在你的系統搜索目錄里 (建議taos.dll放在目錄 C:\Windows\System32)
-
如果仍不能排除連接故障,請使用命令行工具nc來分別判斷指定端口的TCP和UDP連接是否通暢 檢查UDP端口連接是否工作:
nc -vuz {hostIP} {port}
檢查服務器側TCP端口連接是否工作:nc -l {port}
檢查客戶端側TCP端口鏈接是否工作:nc {hostIP} {port}
-
也可以使用taos程序內嵌的網絡連通檢測功能,來驗證服務器和客戶端之間指定的端口連接是否通暢(包括TCP和UDP):TDengine 內嵌網絡檢測工具使用指南。
6. 遇到錯誤“Unexpected generic error in RPC”或者"TDengine Error: Unable to resolve FQDN", 我怎么辦?
產生這個錯誤,是由於客戶端或數據節點無法解析FQDN(Fully Qualified Domain Name)導致。對於TAOS Shell或客戶端應用,請做如下檢查:
- 請檢查連接的服務器的FQDN是否正確,FQDN配置參考:一篇文章說清楚TDengine的FQDN。
- 如果網絡配置有DNS server, 請檢查是否正常工作
- 如果網絡沒有配置DNS server, 請檢查客戶端所在機器的hosts文件,查看該FQDN是否配置,並是否有正確的IP地址。
- 如果網絡配置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,否則會產生大量的日志信息,降低系統效率。