diff --git a/documentation/webdocs/markdowndocs/administrator-ch.md b/documentation/webdocs/markdowndocs/administrator-ch.md index b2e66b7568ba6372938257da2601cdbc38ae2cfa..bee9728cd56a194da6586f5a7d2b3485b4273f65 100644 --- a/documentation/webdocs/markdowndocs/administrator-ch.md +++ b/documentation/webdocs/markdowndocs/administrator-ch.md @@ -2,15 +2,15 @@ ## 文件目录结构 -安装TDengine后,默认会在操作系统中生成下列目录或文件: +安装TDengine的过程中,安装程序将在操作系统中创建以下目录或文件: | 目录/文件 | 说明 | | ---------------------- | :------------------------------------------------| -| /etc/taos/taos.cfg | TDengine默认[配置文件] | -| /usr/local/taos/driver | TDengine动态链接库目录 | -| /var/lib/taos | TDengine默认数据文件目录,可通过[配置文件]修改位置. | -| /var/log/taos | TDengine默认日志文件目录,可通过[配置文件]修改位置 | -| /usr/local/taos/bin | TDengine可执行文件目录 | +| /etc/taos/taos.cfg | 默认[配置文件] | +| /usr/local/taos/driver | 动态链接库目录 | +| /var/lib/taos | 默认数据文件目录,可通过[配置文件]修改位置. | +| /var/log/taos | 默认日志文件目录,可通过[配置文件]修改位置 | +| /usr/local/taos/bin | 可执行文件目录 | ### 可执行文件 @@ -25,22 +25,78 @@ TDengine的所有可执行文件默认存放在 _/usr/local/taos/bin_ 目录下 ## 服务端配置 -TDengine系统后台服务由taosd提供,可以在配置文件taos.cfg里修改配置参数,以满足不同场景的需求。配置文件的缺省位置在/etc/taos目录,可以通过taosd命令行执行参数-c指定配置文件目录。比如taosd -c /home/user来指定配置文件位于/home/user这个目录。 +TDengine系统后台服务程序是`taosd`,其启动时候读取的配置文件缺省目录是`/etc/taos`。可以通过命令行执行参数-c指定配置文件目录,比如 +``` +taosd -c /home/user +``` +指定`taosd`启动的时候读取`/home/user`目录下的配置文件taos.cfg。 下面仅仅列出一些重要的配置参数,更多的参数请看配置文件里的说明。各个参数的详细介绍及作用请看前述章节。**注意:配置修改后,需要重启*taosd*服务才能生效。** -- internalIp: 对外提供服务的IP地址,默认取第一个IP地址 -- mgmtShellPort:管理节点与客户端通信使用的TCP/UDP端口号(默认值是6030)。此端口号在内向后连续的5个端口都会被UDP通信占用,即UDP占用[6030-6034],同时TCP通信也会使用端口[6030]。 -- vnodeShellPort:数据节点与客户端通信使用的TCP/UDP端口号(默认值是6035)。此端口号在内向后连续的5个端口都会被UDP通信占用,即UDP占用[6035-6039],同时TCP通信也会使用端口[6035] -- httpPort:数据节点对外提供RESTful服务使用TCP,端口号[6020] -- dataDir: 数据文件目录,缺省是/var/lib/taos -- maxUsers:用户的最大数量 -- maxDbs:数据库的最大数量 -- maxTables:数据表的最大数量 -- enableMonitor: 系统监测标志位,0:关闭,1:打开 -- logDir: 日志文件目录,缺省是/var/log/taos -- numOfLogLines:日志文件的最大行数 -- debugFlag: 系统debug日志开关,131:仅错误和报警信息,135:所有 +**internalIp** +- 默认值:操作配置的IP地址列表中的第一个IP地址 + +对外提供服务的IP地址。 + +**mgmtShellPort** +- 默认值: _6030_ + +数据库服务中管理节点与客户端通信使用的TCP/UDP端口号。 +> 此端口号在内向后连续的5个端口都会用于UDP通信,即使用的端口是 _6030_ - _6034_ 。此外,TCP还会使用端口 _6030_ + +**vnodeShellPort** +- 默认值: _6035_ + +数据节点与客户端通信使用的TCP/UDP端口号。 +> 此端口号在内向后连续的5个端口都会用于UDP通信,即使用的端口是 _6035_ - _6039_ 。此外,TCP还会使用端口 _6035_ + +**httpPort** +- 默认值: _6020_ + +RESTful服务使用的端口号,所有的HTTP请求(TCP)都需要向该接口发起查询/写入请求。 + +**dataDir** +- 默认值:/var/lib/taos + +数据文件目录,所有的数据文件都将写入该目录。 + +**logDir** +- 默认值:/var/log/taos + +日志文件目录,客户端和服务器的运行日志将写入该目录。 + +**maxUsers** +- 默认值:10,000 + +系统允许创建用户数量的上限 + +**maxDbs** +- 默认值:1,000 + +系统允许的创建数据库的上限 + +**maxTables** +- 默认值:650,000 + +系统允许创建数据表的上限。 +>系统能够创建的表受到多种因素的限制,单纯地增大该参数并不能直接增加系统能够创建的表数量。例如,由于每个表创建均需要消耗一定量的缓存空间,系统可用内存一定的情况下,创建表的总数的上限是一个固定的值。 + +**monitor** +- 默认值:1(激活状态) + +服务器内部的系统监控开关。监控主要负责收集物理节点的负载状况,包括CPU、内存、硬盘、网络带宽、HTTP请求量的监控记录,记录信息存储在`LOG`库中。0表示关闭监控服务,1表示激活监控服务。 + +**numOfLogLines** +- 默认值:10,000,000 + +单个日志文件允许的最大行数(10,000,000行)。 + +**debugFlag** +- 默认值:131(仅输出错误和警告信息) + +系统(服务端和客户端)运行日志开关: +- 131 仅输出错误和警告信息 +- 135 输入错误(ERROR)、警告(WARN)、信息(Info) 不同应用场景的数据往往具有不同的数据特征,比如保留天数、副本数、采集频次、记录大小、采集点的数量、压缩等都可完全不同。为获得在存储上的最高效率,TDengine提供如下存储相关的系统配置参数: @@ -66,32 +122,139 @@ TDengine系统后台服务由taosd提供,可以在配置文件taos.cfg里修 ## 客户端配置 -TDengine系统的前台交互客户端应用程序为taos(Windows平台上为taos.exe),可以使用taos.cfg来配置启动和运行配置项。可以使用 `taos -?` 来获取全部的可选项。 -启动的时候如果不指定taos加载配置文件路径,默认读取`/etc/taos/`路径下的`taos.cfg`文件来设置启动选项,如果在默认路径下找不到配置文件,则使用默认配置的设置来启动程序,并且会在启动的时候打印一行告警信息。指定配置文件来启动`taos`的命令如下: +TDengine系统的前台交互客户端应用程序为taos(Windows平台上为taos.exe)。与服务端程序一样,也可以通过设置taos.cfg来配置`taos`启动和运行的配置项。启动的时候如果不指定taos加载配置文件路径,默认读取`/etc/taos/`路径下的`taos.cfg`文件。指定配置文件来启动`taos`的命令如下: + ``` taos -c /home/cfg/ ``` **注意:启动设置的是配置文件所在目录,而不是配置文件本身** 如果`/home/cfg/`目录下没有配置文件,程序会继续启动并打印如下告警信息: -``` +```markdown Welcome to the TDengine shell from linux, client version:1.6.4.0 option file:/home/cfg/taos.cfg not found, all options are set to system default ``` 更多taos的使用方法请见[Shell命令行程序](#_TDengine_Shell命令行程序)。本节主要讲解taos客户端应用在配置文件taos.cfg文件中使用到的参数。 -客户端配置参数如下 +客户端配置参数说明 -- masterIP:客户端默认发起请求的服务器的IP地址 -- charset:指明客户端所使用的字符集,默认值为UTF-8。TDengine为了存储中文、日文等非ASCII编码的宽字符,提供一种专门的字段类型`nchar`。如果数据写入`nchar`字段,将统一采用`UCS4-LE`格式对字段中数据进行编码存储。需要注意的是,**编码正确性**是客户端来保证。因此,如果用户想要正常使用`nchar`字段来存储诸如中文、日文等非ASCII字符,需要正确设置客户端的编码格式。客户端的输入的字符均采用操作系统当前默认的编码格式,在Linux系统上多为`UTF-8`,也有部分中文编码,例如`GB18030`或`GBK`等。在docker环境中默认的编码是`POSIX`。因此,客户端需要设置自己所使用的字符集,即所在系统的当前编码字符集才能正确地确保数据转换为`UCS4-LE`编码格式。 -如果配置文件中不设置`charset`,taos将自动读取系统当前的locale信息,并从locale信息中解析提取charset编码格式。如果自动读取locale信息失败,则中断启动,要求用户在配置文件中指定charset,才能正常启动。 -- locale:设置系统语言环境。Linux上客户端与服务端共享 -- defaultUser:默认登录用户,默认值root -- defaultPass:默认登录密码,默认值taosdata +**masterIP** +- 默认值:127.0.0.1 -TCP/UDP端口,以及日志的配置参数,与server的配置参数完全一样。 +客户端连接的TDengine服务器IP地址,如果不设置默认连接127.0.0.1的节点。以下两个命令等效: +``` +taos +taos -h 127.0.0.1 +``` +其中的IP地址是从配置文件中读取的masterIP的值。 + +**locale** +- 默认值:系统中动态获取,如果自动获取失败,需要用户在配置文件设置或通过API设置 + +TDengine为存储中文、日文、韩文等非ASCII编码的宽字符,提供一种专门的字段类型`nchar`。写入`nchar`字段的数据将统一采用`UCS4-LE`格式进行编码并发送到服务器。需要注意的是,**编码正确性**是客户端来保证。因此,如果用户想要正常使用`nchar`字段来存储诸如中文、日文、韩文等非ASCII字符,需要正确设置客户端的编码格式。 + +客户端的输入的字符均采用操作系统当前默认的编码格式,在Linux系统上多为`UTF-8`,部分中文系统编码则可能是`GB18030`或`GBK`等。在docker环境中默认的编码是`POSIX`。在中文版Windows系统中,编码则是`CP936`。客户端需要确保正确设置自己所使用的字符集,即客户端运行的操作系统当前编码字符集,才能保证`nchar`中的数据正确转换为`UCS4-LE`编码格式。 + +在 Linux 中 locale 的命名规则为: +`<语言>_<地区>.<字符集编码>` +如:`zh_CN.UTF-8`,zh代表中文,CN代表大陆地区,UTF-8表示字符集。字符集编码为客户端正确解析本地字符串提供编码转换的说明。Linux系统与Mac OSX系统可以通过设置locale来确定系统的字符编码,由于Windows使用的locale中不是POSIX标准的locale格式,因此在Windows下需要采用另一个配置参数`charset`来指定字符编码。在Linux系统中也可以使用charset来指定字符编码。 + +**charset** +- 默认值:系统中动态获取,如果自动获取失败,需要用户在配置文件设置或通过API设置 + +如果配置文件中不设置`charset`,在Linux系统中,taos在启动时候,自动读取系统当前的locale信息,并从locale信息中解析提取charset编码格式。如果自动读取locale信息失败,则尝试读取charset配置,如果读取charset配置也失败,**则中断启动过程**。 + +在Linux系统中,locale信息包含了字符编码信息,因此正确设置了Linux系统locale以后可以不用再单独设置charset。例如: +``` +locale zh_CN.UTF-8 +``` +在Windows系统中,无法从locale获取系统当前编码。如果无法从配置文件中读取字符串编码信息,`taos`默认设置为字符编码为`CP936`。其等效在配置文件中添加如下配置: +``` +charset CP936 +``` +如果需要调整字符编码,请查阅当前操作系统使用的编码,并在配置文件中正确设置。 + +在Linux系统中,如果用户同时设置了locale和字符集编码charset,并且locale和charset的不一致,后设置的值将覆盖前面设置的值。 +``` +locale zh_CN.UTF-8 +charset GBK +``` +则`charset`的有效值是`GBK`。 +``` +charset GBK +locale zh_CN.UTF-8 +``` +`charset`的有效值是`UTF-8`。 + +**sockettype** +- 默认值:UDP + +客户端连接服务端的套接字的方式,可以使用`UDP`和`TCP`两种配置。 +在客户端和服务端之间的通讯需要经过恶劣的网络环境下(如公共网络、互联网)、客户端与数据库服务端连接不稳定(由于MTU的问题导致UDP丢包)的情况下,可以将连接的套接字类型调整为`TCP` + +>注意:客户端套接字的类型需要和服务端的套接字类型相同,否则无法连接数据库。 + +**compressMsgSize** +- 默认值:-1(不压缩) + +客户端与服务器之间进行消息通讯过程中,对通讯的消息进行压缩的阈值,默认值为-1(不压缩)。如果要压缩消息,建议设置为64330字节,即大于64330字节的消息体才进行压缩。在配置文件中增加如下配置项即可: +``` +compressMsgSize 64330 +``` +如果配置项设置为0,`compressMsgSize 0`表示对所有的消息均进行压缩。 + +**timezone** +- 默认值:从系统中动态获取当前的时区设置 + +客户端运行系统所在的时区。为应对多时区的数据写入和查询问题,TDengine采用Unix时间戳([Unix Timestamp](https://en.wikipedia.org/wiki/Unix_time))来记录和存储时间戳。Unix时间戳的特点决定了任一时刻不论在任何时区,产生的时间戳均一致。需要注意的是,Unix时间戳是在客户端完成转换和记录。为了确保客户端其他形式的时间()转换为正确的Unix时间戳,需要设置正确的时区。 + +在Linux系统中,客户端会自动读取系统设置的时区信息。用户也可以采用多种方式在配置文件设置时区。例如: +``` +timezone UTC-8 +timezone GMT-8 +timezone Asia/Shanghai +``` +均是合法的设置东八区时区的格式。 + + +时区的设置对于查询和写入SQL语句中非Unix时间戳的内容(时间戳字符串、关键词`now`的解析)产生影响。例如: +``` +SELECT count(*) FROM table_name WHERE TS<'2019-04-11 12:01:08'; +``` +在东八区,SQL语句等效于 +``` +SELECT count(*) FROM table_name WHERE TS<1554955268000; +``` +在UTC时区,SQL语句等效于 +``` +SELECT count(*) FROM table_name WHERE TS<1554984068000; +``` +为了避免使用字符串时间格式带来的不确定性,也可以直接使用Unix时间戳。此外,还可以在SQL语句中使用带有时区的时间戳字符串,例如:RFC3339格式的时间戳字符串,`2013-04-12T15:52:01.123+08:00`或者ISO-8601格式时间戳字符串`2013-04-12T15:52:01.123+0800`。上述两个字符串转化为Unix时间戳不受系统所在时区的影响。 + +**defaultUser** +- 默认值:root + +登录用户名,客户端登录的时候,如果不指定用户名,则自动使用该用户名登录。默认情况下,以下的两个命令等效 +``` +taos +taos -u root +``` +用户名为从配置中读取的`defaultUser`配置项。如果更改`defaultUser abc`,则以下两个命令等效: +``` +taos +taos -u abc +``` + +**defaultPass** +- 默认值:taosdata + +登录用户名,客户端登录的时候,如果不指定密码,则自动使用该密码登录。默认情况下,以下的两个命令等效 +``` +taos +taos -ptaosdata +``` -启动taos时,你也可以从命令行指定IP地址、端口号,用户名和密码,否则就从taos.cfg读取。 +TCP/UDP端口,以及日志的配置参数,与server的配置参数完全一样。使用命令`taos -?` 可查看`taos`允许的可选项。 ## 用户管理 @@ -204,6 +367,6 @@ KILL STREAM ## 系统监控 -TDengine启动后,会自动创建一个监测数据库SYS,并自动将服务器的CPU、内存、硬盘空间、带宽、请求数、磁盘读写速度、慢查询等信息定时写入该数据库。TDengine还将重要的系统操作(比如登录、创建、删除数据库等)日志以及各种错误报警信息记录下来存放在SYS库里。系统管理员可以从CLI直接查看这个数据库,也可以在WEB通过图形化界面查看这些监测信息。 +TDengine启动后,会自动创建一个监测数据库`LOG`,并自动将服务器的CPU、内存、硬盘空间、带宽、请求数、磁盘读写速度、慢查询等信息定时写入该数据库。TDengine还将重要的系统操作(比如登录、创建、删除数据库等)日志以及各种错误报警信息记录下来存放在`LOG`库里。系统管理员可以通过客户端程序查看记录库中的运行负载信息,(在企业版中)还可以通过浏览器查看数据的图标可视化结果。 -这些监测信息的采集缺省是打开的,但可以修改配置文件里的选项enableMonitor将其关闭或打开。 +这些监测信息的采集缺省是打开的,但可以修改配置文件里的选项`monitor`将其关闭或打开。 diff --git a/src/os/linux/CMakeLists.txt b/src/os/linux/CMakeLists.txt index a702cac759a3dea135da05689118b763631e83f9..0f725947cc2a59cb8dbad3d12f22092380d0bf6e 100644 --- a/src/os/linux/CMakeLists.txt +++ b/src/os/linux/CMakeLists.txt @@ -6,5 +6,5 @@ IF ((TD_LINUX_64) OR (TD_LINUX_32 AND TD_ARM)) INCLUDE_DIRECTORIES(inc) AUX_SOURCE_DIRECTORY(src SRC) ADD_LIBRARY(os ${SRC}) - TARGET_LINK_LIBRARIES(os m rt) + TARGET_LINK_LIBRARIES(os m rt atomic) ENDIF ()