> For AI agents: the complete documentation index is available at https://www.tteam.icu/llms.txt, the full documentation bundle is available at https://www.tteam.icu/llms-full.txt.

# tdengine

[官方中文文档](https://docs.taosdata.com/)

## 启动

默认账号密码为 `root/taosdata`。

### tdengine-6030.sh

```sh file="./tdengine/tdengine-6030.sh" title="tdengine-6030.sh"
#!/bin/bash

port=6030
http_port=$((${port} + 11))
master_tdengine=$(hostname)-tdengine-${port}
password=password

docker stop tdengine-${port}
docker rm tdengine-${port}

docker run -d \
--name tdengine-${port} \
--hostname $(hostname) \
--restart=always \
-e TAOS_FQDN=$(hostname)-tdengine-${port} \
-e TAOS_FIRST_EP=${master_tdengine} \
-v /etc/timezone:/etc/timezone:ro \
-v /etc/localtime:/etc/localtime:ro \
-v /etc/timezone:/etc/timezone:ro \
-v /etc/localtime:/etc/localtime:ro \
-v $(pwd)/data:/var/lib/taos \
-v $(pwd)/log:/var/log/taos \
-v ./config/taos.cfg:/etc/taos/taos.cfg \
-p ${port}:6030 \
-p ${http_port}:6041 \
-p $((${port} + 14))-$((${port} + 19)):6044-6049 \
-p $((${port} + 14))-$((${port} + 19)):6044-6049/udp \
--privileged=true \
tdengine/tdengine:3.3.0.0

# --entrypoint /bin/bash \
# docker exec -it tdengine-${port} taosdemo
# docker run --rm -it -e TAOS_FIRST_EP=tdengine --entrypoint=taos tdengine/tdengine:3.3.0.0
```

### config/taos.cfg

```bash file="./tdengine/config/taos.cfg" title="taos.cfg"
monitor 1
monitorFQDN 172.30.137.38
monitorPort 6043
audit 1
monitorInterval 1
telemetryReporting 1
crashReporting 1


```

:::tip
TDEngine 似乎不支持通过 Docker 环境变量修改密码，只能通过 SQL 修改:

```sql
ALTER USER root PASS 'password';
```

:::

## 服务端操作

### 命令行登录

```bash
taos
```

### 执行sql

```sql
use <database>;

source 1.sql;
```

### 导入csv

```sql
INSERT INTO gps_information (xxx,xxx) FILE '/tmp/1.csv';
```

## 备份与恢复

### 备份

::: tip
注意: 连接数据库用的`http_port`，也就是`6041`

备份用到的端口是`port`，也就是`6030`
:::

```bash
docker run -i --rm -v ./:/tmp -w /tmp tdengine/tdengine:3.2.3.0 \
taosdump -A -h 192.168.1.1 -P 6030 -u root -ptaosdata -o /tmp
```

### 恢复

目前似乎不支持指定时间恢复。

```bash
taosdump -i /bak
```

## 监控

需要使用 `taoskeeper` 组件，配合 Prometheus 定时采集数据。

### taoskeeper.sh

```sh file="./tdengine/taoskeeper.sh" title="taoskeeper.sh"
#!/bin/bash

port=6043

docker rm -f taoskeeper-${port}
docker run -d \
--name taoskeeper-${port} \
--hostname $(hostname) \
--restart=always \
-v /etc/timezone:/etc/timezone:ro \
-v /etc/localtime:/etc/localtime:ro \
-v ./config/taoskeeper.toml:/etc/taos/taoskeeper.toml \
-p ${port}:6043 \
--privileged=true \
buyfakett/taoskeeper
```

### config/taos.cfg

```toml file="./tdengine/config/taoskeeper.toml" title="taoskeeper.toml"
# Start with debug middleware for gin
debug = false

# Listen port, default is 6043
port = 6043

# log level
loglevel = "info"

# go pool size
gopoolsize = 50000

# interval for metrics
RotationInterval = "15s"

[tdengine]
host = "172.30.137.38"
port = 6041
username = "root"
password = "Ru9sZZJU78cdUTxi"

[metrics]
# metrics prefix in metrics names.
prefix = "taos"

# database for storing metrics data
database = "log"

# export some tables that are not super table
tables = []

# database options for db storing metrics data
[metrics.databaseoptions]
cachemodel = "none"

[environment]
# Whether running in cgroup.
incgroup = false

[audit]
[audit.database]
name = "audit"
[audit.database.options]
cachemodel = "none"

[log]
#path = "/var/log/taos"
rotationCount = 5
rotationTime = "24h"
rotationSize = 100000000

```
