无码人妻精品一区二区三18禁,影音先锋男人AV橹橹色,污污污污污污www网站免费,日韩成人av无码一区二区三区,欧美性受xxxx狂喷水

常見問題及反饋

問題反饋

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

  1. /var/log/taos (如果沒有修改過默認路徑)
  2. /etc/taos

附上必要的問題描述,包括使用的 TDengine 版本信息、平臺環境信息、發生該問題的執行操作、出現問題的表征及大概的時間,在 提交 Issue。

為了保證有足夠的 debug 信息,如果問題能夠重復,請修改/etc/taos/taos.cfg文件,最后面添加一行“debugFlag 135"(不帶引號本身),然后重啟 taosd, 重復問題,然后再遞交。也可以通過如下 SQL 語句,臨時設置 taosd 的日志級別。

    ALTER DNODE <dnode_id> debugFlag 135;

但系統正常運行時,請一定將 debugFlag 設置為 131,否則會產生大量的日志信息,降低系統效率。

常見問題列表

1. TDengine 2.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 文件。如果部署的是 TDengine 集群,客戶端需要能 ping 通所有集群節點的 FQDN。

  6. 檢查防火墻設置(Ubuntu 使用 ufw status,CentOS 使用 firewall-cmd --list-port),確認 TCP/UDP 端口 6030-6042 是打開的

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

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

  9. 如果仍不能排除連接故障

    • Linux 系統請使用命令行工具 nc 來分別判斷指定端口的 TCP 和 UDP 連接是否通暢 檢查 UDP 端口連接是否工作:nc -vuz {hostIP} {port} 檢查服務器側 TCP 端口連接是否工作:nc -l {port} 檢查客戶端側 TCP 端口連接是否工作:nc {hostIP} {port}

    • Windows 系統請使用 PowerShell 命令 Net-TestConnection -ComputerName {fqdn} -Port {port} 檢測服務段端口是否訪問

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

6. 遇到錯誤“Unexpected generic error in RPC”或者“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,否則客戶端是無法連接服務器的
  5. 如果服務器曾經使用過 TDengine,且更改過 hostname,建議檢查 data 目錄的 dnodeEps.json 是否符合當前配置的 EP,路徑默認為 /var/lib/taos/dnode。正常情況下,建議更換新的數據目錄或者備份后刪除以前的數據目錄,這樣可以避免該問題。
  6. 檢查 /etc/hosts`/etc/hostname 是否是預配置的 FQDN

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

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

8. 是否支持validation queries?

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

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

TDengine 目前尚不支持刪除功能,未來根據用戶需求可能會支持。

從 2.0.8.0 開始,TDengine 支持更新已經寫入數據的功能。使用更新功能需要在創建數據庫時使用 UPDATE 1 參數,之后可以使用 INSERT INTO 命令更新已經寫入的相同時間戳數據。UPDATE 參數不支持 ALTER DATABASE 命令修改。沒有使用 UPDATE 1 參數創建的數據庫,寫入相同時間戳的數據不會修改之前的數據,也不會報錯。

另需注意,在 UPDATE 設置為 0 時,后發送的相同時間戳的數據會被直接丟棄,但并不會報錯,而且仍然會被計入 affected rows (所以不能利用 INSERT 指令的返回信息進行時間戳查重)。這樣設計的主要原因是,TDengine 把寫入的數據看做一個數據流,無論時間戳是否出現沖突,TDengine 都認為產生數據的原始設備真實地產生了這樣的數據。UPDATE 參數只是控制這樣的流數據在進行持久化時要怎樣處理—— UPDATE 為 0 時,表示先寫入的數據覆蓋后寫入的數據;而 UPDATE 為 1 時,表示后寫入的數據覆蓋先寫入的數據。這種覆蓋關系如何選擇,取決于對數據的后續使用和統計中,希望以先還是后生成的數據為準。

此外,從 2.1.7.0 版本開始,支持將 UPDATE 參數設為 2,表示“支持部分列更新”。也即,當 UPDATE 設為 1 時,如果更新一個數據行,其中某些列沒有提供取值,那么這些列會被設為 NULL;而當 UPDATE 設為 2 時,如果更新一個數據行,其中某些列沒有提供取值,那么這些列會保持原有數據行中的對應值。

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

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

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.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.27</version>
</dependency>

14. taos connect failed, reason: invalid timestamp

常見原因是服務器和客戶端時間沒有校準,可以通過和時間服務器同步的方式(Linux 下使用 ntpdate 命令,Windows 在系統時間設置中選擇自動同步)校準。

15. 表名顯示不全

由于 taos shell 在終端中顯示寬度有限,有可能比較長的表名顯示不全,如果按照顯示的不全的表名進行相關操作會發生 Table does not exist 錯誤。解決方法可以是通過修改 taos.cfg 文件中的設置項 maxBinaryDisplayWidth, 或者直接輸入命令 set max_binary_display_width 100。或者在命令結尾使用 \G 參數來調整結果的顯示方式。

16. 如何進行數據遷移?

TDengine 是根據 hostname 唯一標志一臺機器的,在數據文件從機器A移動機器B時,注意如下兩件事:

  • 2.0.0.0 至 2.0.6.x 的版本,重新配置機器B的 hostname 為機器A的 hostname。
  • 2.0.7.0 及以后的版本,到 /var/lib/taos/dnode 下,修復 dnodeEps.json 的 dnodeId 對應的 FQDN,重啟。確保機器內所有機器的此文件是完全相同的。
  • 1.x 和 2.x 版本的存儲結構不兼容,需要使用遷移工具或者自己開發應用導出導入數據。

17. 如何在命令行程序 taos 中臨時調整日志級別

為了調試方便,從 2.0.16 版本開始,命令行程序 taos 新增了與日志記錄相關的兩條指令:

ALTER LOCAL flag_name flag_value;

其含義是,在當前的命令行程序下,修改一個特定模塊的日志記錄級別(只對當前命令行程序有效,如果 taos 命令行程序重啟,則需要重新設置):

  • flag_name 的取值可以是:debugFlag,cDebugFlag,tmrDebugFlag,uDebugFlag,rpcDebugFlag
  • flag_value 的取值可以是:131(輸出錯誤和警告日志),135( 輸出錯誤、警告和調試日志),143( 輸出錯誤、警告、調試和跟蹤日志)
ALTER LOCAL RESETLOG;

其含義是,清空本機所有由客戶端生成的日志文件。

18. 時間戳的時區信息是怎樣處理的?

TDengine 中時間戳的時區總是由客戶端進行處理,而與服務端無關。具體來說,客戶端會對 SQL 語句中的時間戳進行時區轉換,轉為 UTC 時區(即 Unix 時間戳——Unix Timestamp)再交由服務端進行寫入和查詢;在讀取數據時,服務端也是采用 UTC 時區提供原始數據,客戶端收到后再根據本地設置,把時間戳轉換為本地系統所要求的時區進行顯示。

客戶端在處理時間戳字符串時,會采取如下邏輯:

  1. 在未做特殊設置的情況下,客戶端默認使用所在操作系統的時區設置。
  2. 如果在 taos.cfg 中設置了 timezone 參數,則客戶端會以這個配置文件中的設置為準。
  3. 如果在 C/C++/Java/Python 等各種編程語言的 Connector Driver 中,在建立數據庫連接時顯式指定了 timezone,那么會以這個指定的時區設置為準。例如 Java Connector 的 JDBC URL 中就有 timezone 參數。
  4. 在書寫 SQL 語句時,也可以直接使用 Unix 時間戳(例如 1554984068000)或帶有時區的時間戳字符串,也即以 RFC 3339 格式(例如 2013-04-12T15:52:01.123+08:00)或 ISO-8601 格式(例如 2013-04-12T15:52:01.123+0800)來書寫時間戳,此時這些時間戳的取值將不再受其他時區設置的影響。

19. TDengine 都會用到哪些網絡端口?

在 TDengine 2.0 版本中,會用到以下這些網絡端口(以默認端口 6030 為前提進行說明,如果修改了配置文件中的設置,那么這里列舉的端口都會出現變化),管理員可以參考這里的信息調整防火墻設置:

協議 默認端口 用途說明 修改方法
TCP 6030 客戶端與服務端之間通訊。 由配置文件設置 serverPort 決定。
TCP 6035 多節點集群的節點間通訊。 隨 serverPort 端口變化。
TCP 6040 多節點集群的節點間數據同步。 隨 serverPort 端口變化。
TCP 6041 客戶端與服務端之間的 RESTful 通訊。 隨 serverPort 端口變化。注意 taosAdapter 配置或有不同,請參考相應文檔
TCP 6042 Arbitrator 的服務端口。 隨 Arbitrator 啟動參數設置變化。
TCP 6043 TaosKeeper 監控服務端口。 隨 TaosKeeper 啟動參數設置變化。
TCP 6044 支持 StatsD 的數據接入端口。 隨 taosAdapter 啟動參數設置變化(2.3.0.1+以上版本)。
UDP 6045 支持 collectd 數據接入端口。 隨 taosAdapter 啟動參數設置變化(2.3.0.1+以上版本)。
TCP 6060 企業版內 Monitor 服務的網絡端口。
UDP 6030-6034 客戶端與服務端之間通訊。 隨 serverPort 端口變化。
UDP 6035-6039 多節點集群的節點間通訊。 隨 serverPort 端口變化。

20. Go 語言編寫組件編譯失敗怎樣解決?

新版本 TDengine 2.3.0.0 包含一個使用 Go 語言開發的 taosAdapter 獨立組件,需要單獨運行,取代之前 taosd 內置的 httpd ,提供包含原 httpd 功能以及支持多種其他軟件(Prometheus、Telegraf、collectd、StatsD 等)的數據接入功能。 使用最新 develop 分支代碼編譯需要先 git submodule update --init --recursive 下載 taosAdapter 倉庫代碼后再編譯。

目前編譯方式默認自動編譯 taosAdapter。Go 語言版本要求 1.14 以上,如果發生 Go 編譯錯誤,往往是國內訪問 go mod 問題,可以通過設置 Go 環境變量來解決:

go env -w GO111MODULE=on
go env -w GOPROXY=//goproxy.cn,direct

如果希望繼續使用之前的內置 httpd,可以關閉 taosAdapter 編譯,使用 cmake .. -DBUILD_HTTP=true 使用原來內置的 httpd。