Merge branch 'develop' into compress_float
This commit is contained in:
commit
f204a0d350
|
@ -41,6 +41,10 @@ IF (TD_POWER)
|
||||||
ADD_DEFINITIONS(-D_TD_POWER_)
|
ADD_DEFINITIONS(-D_TD_POWER_)
|
||||||
ENDIF ()
|
ENDIF ()
|
||||||
|
|
||||||
|
IF (TD_TQ)
|
||||||
|
ADD_DEFINITIONS(-D_TD_TQ_)
|
||||||
|
ENDIF ()
|
||||||
|
|
||||||
IF (TD_MEM_CHECK)
|
IF (TD_MEM_CHECK)
|
||||||
ADD_DEFINITIONS(-DTAOS_MEM_CHECK)
|
ADD_DEFINITIONS(-DTAOS_MEM_CHECK)
|
||||||
ENDIF ()
|
ENDIF ()
|
||||||
|
|
|
@ -46,6 +46,9 @@ ENDIF ()
|
||||||
IF (${DBNAME} MATCHES "power")
|
IF (${DBNAME} MATCHES "power")
|
||||||
SET(TD_POWER TRUE)
|
SET(TD_POWER TRUE)
|
||||||
MESSAGE(STATUS "power is true")
|
MESSAGE(STATUS "power is true")
|
||||||
|
ELSEIF (${DBNAME} MATCHES "tq")
|
||||||
|
SET(TD_TQ TRUE)
|
||||||
|
MESSAGE(STATUS "tq is true")
|
||||||
ENDIF ()
|
ENDIF ()
|
||||||
|
|
||||||
IF (${DLLTYPE} MATCHES "go")
|
IF (${DLLTYPE} MATCHES "go")
|
||||||
|
|
|
@ -10,7 +10,7 @@ ENDIF ()
|
||||||
IF (DEFINED VERCOMPATIBLE)
|
IF (DEFINED VERCOMPATIBLE)
|
||||||
SET(TD_VER_COMPATIBLE ${VERCOMPATIBLE})
|
SET(TD_VER_COMPATIBLE ${VERCOMPATIBLE})
|
||||||
ELSE ()
|
ELSE ()
|
||||||
SET(TD_VER_COMPATIBLE "2.0.0.0")
|
SET(TD_VER_COMPATIBLE "1.0.0.0")
|
||||||
ENDIF ()
|
ENDIF ()
|
||||||
|
|
||||||
find_program(HAVE_GIT NAMES git)
|
find_program(HAVE_GIT NAMES git)
|
||||||
|
|
|
@ -218,7 +218,7 @@ TDengine 缺省的时间戳是毫秒精度,但通过在 CREATE DATABASE 时传
|
||||||
|
|
||||||
说明:可在like中使用通配符进行名称的匹配,这一通配符字符串最长不能超过24字节。
|
说明:可在like中使用通配符进行名称的匹配,这一通配符字符串最长不能超过24字节。
|
||||||
|
|
||||||
通配符匹配:1)’%’ (百分号)匹配0到任意个字符;2)’\_’下划线匹配一个字符。
|
通配符匹配:1)'%'(百分号)匹配0到任意个字符;2)'\_'下划线匹配单个任意字符。(如果希望匹配表名中带有的下划线,那么这里可以用反斜线进行转义,也就是说 '\\\_' 会被用于匹配表名中原始带有的下划线符号)
|
||||||
|
|
||||||
- **显示一个数据表的创建语句**
|
- **显示一个数据表的创建语句**
|
||||||
|
|
||||||
|
@ -696,9 +696,9 @@ Query OK, 1 row(s) in set (0.001091s)
|
||||||
* 暂不支持含列名的四则运算表达式作为 SQL 函数的应用对象(例如,不支持 `select min(2*a) from t;`,但可以写 `select 2*min(a) from t;`)。
|
* 暂不支持含列名的四则运算表达式作为 SQL 函数的应用对象(例如,不支持 `select min(2*a) from t;`,但可以写 `select 2*min(a) from t;`)。
|
||||||
- WHERE 语句可以使用各种逻辑判断来过滤数字值,或使用通配符来过滤字符串。
|
- WHERE 语句可以使用各种逻辑判断来过滤数字值,或使用通配符来过滤字符串。
|
||||||
- 输出结果缺省按首列时间戳升序排序,但可以指定按降序排序( _c0 指首列时间戳)。使用 ORDER BY 对其他字段进行排序为非法操作。
|
- 输出结果缺省按首列时间戳升序排序,但可以指定按降序排序( _c0 指首列时间戳)。使用 ORDER BY 对其他字段进行排序为非法操作。
|
||||||
- 参数 LIMIT 控制输出条数,OFFSET 指定从第几条开始输出。LIMIT/OFFSET 对结果集的执行顺序在 ORDER BY 之后。
|
- 参数 LIMIT 控制输出条数,OFFSET 指定从第几条开始输出。LIMIT/OFFSET 对结果集的执行顺序在 ORDER BY 之后。且 `LIMIT 5 OFFSET 2` 可以简写为 `LIMIT 2, 5`。
|
||||||
* 在有 GROUP BY 子句的情况下,LIMIT 参数控制的是每个分组中至多允许输出的条数。
|
* 在有 GROUP BY 子句的情况下,LIMIT 参数控制的是每个分组中至多允许输出的条数。
|
||||||
- 参数 SLIMIT 控制由 GROUP BY 指令划分的分组中,至多允许输出几个分组的数据。
|
- 参数 SLIMIT 控制由 GROUP BY 指令划分的分组中,至多允许输出几个分组的数据。且 `SLIMIT 5 OFFSET 2` 可以简写为 `SLIMIT 2, 5`。
|
||||||
- 通过 “>>” 输出结果可以导出到指定文件。
|
- 通过 “>>” 输出结果可以导出到指定文件。
|
||||||
|
|
||||||
### 支持的条件过滤操作
|
### 支持的条件过滤操作
|
||||||
|
|
|
@ -40,7 +40,7 @@
|
||||||
# ratioOfQueryCores 1.0
|
# ratioOfQueryCores 1.0
|
||||||
|
|
||||||
# the last_row/first/last aggregator will not change the original column name in the result fields
|
# the last_row/first/last aggregator will not change the original column name in the result fields
|
||||||
# keepColumnName 0
|
keepColumnName 1
|
||||||
|
|
||||||
# number of management nodes in the system
|
# number of management nodes in the system
|
||||||
# numOfMnodes 3
|
# numOfMnodes 3
|
||||||
|
|
|
@ -11,7 +11,7 @@ set -e
|
||||||
# -V [stable | beta]
|
# -V [stable | beta]
|
||||||
# -l [full | lite]
|
# -l [full | lite]
|
||||||
# -s [static | dynamic]
|
# -s [static | dynamic]
|
||||||
# -d [taos | power]
|
# -d [taos | power | tq ]
|
||||||
# -n [2.0.0.3]
|
# -n [2.0.0.3]
|
||||||
# -m [2.0.0.0]
|
# -m [2.0.0.0]
|
||||||
|
|
||||||
|
@ -22,10 +22,10 @@ cpuType=x64 # [aarch32 | aarch64 | x64 | x86 | mips64 ...]
|
||||||
osType=Linux # [Linux | Kylin | Alpine | Raspberrypi | Darwin | Windows | Ningsi60 | Ningsi80 |...]
|
osType=Linux # [Linux | Kylin | Alpine | Raspberrypi | Darwin | Windows | Ningsi60 | Ningsi80 |...]
|
||||||
pagMode=full # [full | lite]
|
pagMode=full # [full | lite]
|
||||||
soMode=dynamic # [static | dynamic]
|
soMode=dynamic # [static | dynamic]
|
||||||
|
dbName=taos # [taos | power | tq]
|
||||||
allocator=glibc # [glibc | jemalloc]
|
allocator=glibc # [glibc | jemalloc]
|
||||||
dbName=taos # [taos | power]
|
|
||||||
verNumber=""
|
verNumber=""
|
||||||
verNumberComp="2.0.0.0"
|
verNumberComp="1.0.0.0"
|
||||||
|
|
||||||
while getopts "hv:V:c:o:l:s:d:a:n:m:" arg
|
while getopts "hv:V:c:o:l:s:d:a:n:m:" arg
|
||||||
do
|
do
|
||||||
|
@ -78,7 +78,7 @@ do
|
||||||
echo " -l [full | lite] "
|
echo " -l [full | lite] "
|
||||||
echo " -a [glibc | jemalloc] "
|
echo " -a [glibc | jemalloc] "
|
||||||
echo " -s [static | dynamic] "
|
echo " -s [static | dynamic] "
|
||||||
echo " -d [taos | power] "
|
echo " -d [taos | power | tq ] "
|
||||||
echo " -n [version number] "
|
echo " -n [version number] "
|
||||||
echo " -m [compatible version number] "
|
echo " -m [compatible version number] "
|
||||||
exit 0
|
exit 0
|
||||||
|
@ -204,7 +204,7 @@ else
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
make
|
make -j8
|
||||||
|
|
||||||
cd ${curr_dir}
|
cd ${curr_dir}
|
||||||
|
|
||||||
|
@ -249,6 +249,10 @@ if [ "$osType" != "Darwin" ]; then
|
||||||
${csudo} ./makepkg.sh ${compile_dir} ${verNumber} "${build_time}" ${cpuType} ${osType} ${verMode} ${verType} ${pagMode}
|
${csudo} ./makepkg.sh ${compile_dir} ${verNumber} "${build_time}" ${cpuType} ${osType} ${verMode} ${verType} ${pagMode}
|
||||||
${csudo} ./makeclient.sh ${compile_dir} ${verNumber} "${build_time}" ${cpuType} ${osType} ${verMode} ${verType} ${pagMode}
|
${csudo} ./makeclient.sh ${compile_dir} ${verNumber} "${build_time}" ${cpuType} ${osType} ${verMode} ${verType} ${pagMode}
|
||||||
${csudo} ./makearbi.sh ${compile_dir} ${verNumber} "${build_time}" ${cpuType} ${osType} ${verMode} ${verType} ${pagMode}
|
${csudo} ./makearbi.sh ${compile_dir} ${verNumber} "${build_time}" ${cpuType} ${osType} ${verMode} ${verType} ${pagMode}
|
||||||
|
elif [[ "$dbName" == "tq" ]]; then
|
||||||
|
${csudo} ./makepkg_tq.sh ${compile_dir} ${verNumber} "${build_time}" ${cpuType} ${osType} ${verMode} ${verType} ${pagMode} ${dbName}
|
||||||
|
${csudo} ./makeclient_tq.sh ${compile_dir} ${verNumber} "${build_time}" ${cpuType} ${osType} ${verMode} ${verType} ${pagMode} ${dbName}
|
||||||
|
${csudo} ./makearbi_tq.sh ${compile_dir} ${verNumber} "${build_time}" ${cpuType} ${osType} ${verMode} ${verType} ${pagMode}
|
||||||
else
|
else
|
||||||
${csudo} ./makepkg_power.sh ${compile_dir} ${verNumber} "${build_time}" ${cpuType} ${osType} ${verMode} ${verType} ${pagMode} ${dbName}
|
${csudo} ./makepkg_power.sh ${compile_dir} ${verNumber} "${build_time}" ${cpuType} ${osType} ${verMode} ${verType} ${pagMode} ${dbName}
|
||||||
${csudo} ./makeclient_power.sh ${compile_dir} ${verNumber} "${build_time}" ${cpuType} ${osType} ${verMode} ${verType} ${pagMode} ${dbName}
|
${csudo} ./makeclient_power.sh ${compile_dir} ${verNumber} "${build_time}" ${cpuType} ${osType} ${verMode} ${verType} ${pagMode} ${dbName}
|
||||||
|
|
|
@ -270,6 +270,7 @@ function install_jemalloc() {
|
||||||
${csudo} /usr/bin/install -c -d /usr/local/share/man/man3
|
${csudo} /usr/bin/install -c -d /usr/local/share/man/man3
|
||||||
${csudo} /usr/bin/install -c -m 644 ${jemalloc_dir}/share/man/man3/jemalloc.3 /usr/local/share/man/man3
|
${csudo} /usr/bin/install -c -m 644 ${jemalloc_dir}/share/man/man3/jemalloc.3 /usr/local/share/man/man3
|
||||||
fi
|
fi
|
||||||
|
${csudo} ldconfig
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -783,7 +784,9 @@ function update_TDengine() {
|
||||||
echo "File taos.tar.gz does not exist"
|
echo "File taos.tar.gz does not exist"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
install_jemalloc
|
||||||
tar -zxf taos.tar.gz
|
tar -zxf taos.tar.gz
|
||||||
|
install_jemalloc
|
||||||
|
|
||||||
# Check if version compatible
|
# Check if version compatible
|
||||||
if ! is_version_compatible; then
|
if ! is_version_compatible; then
|
||||||
|
@ -822,7 +825,6 @@ function update_TDengine() {
|
||||||
install_log
|
install_log
|
||||||
install_header
|
install_header
|
||||||
install_lib
|
install_lib
|
||||||
install_jemalloc
|
|
||||||
if [ "$pagMode" != "lite" ]; then
|
if [ "$pagMode" != "lite" ]; then
|
||||||
install_connector
|
install_connector
|
||||||
fi
|
fi
|
||||||
|
@ -896,6 +898,7 @@ function install_TDengine() {
|
||||||
install_log
|
install_log
|
||||||
install_header
|
install_header
|
||||||
install_lib
|
install_lib
|
||||||
|
install_jemalloc
|
||||||
if [ "$pagMode" != "lite" ]; then
|
if [ "$pagMode" != "lite" ]; then
|
||||||
install_connector
|
install_connector
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -38,11 +38,11 @@ initd_mod=0
|
||||||
service_mod=2
|
service_mod=2
|
||||||
if pidof systemd &> /dev/null; then
|
if pidof systemd &> /dev/null; then
|
||||||
service_mod=0
|
service_mod=0
|
||||||
elif $(which service &> /dev/null); then
|
elif $(which service &> /dev/null); then
|
||||||
service_mod=1
|
service_mod=1
|
||||||
service_config_dir="/etc/init.d"
|
service_config_dir="/etc/init.d"
|
||||||
if $(which chkconfig &> /dev/null); then
|
if $(which chkconfig &> /dev/null); then
|
||||||
initd_mod=1
|
initd_mod=1
|
||||||
elif $(which insserv &> /dev/null); then
|
elif $(which insserv &> /dev/null); then
|
||||||
initd_mod=2
|
initd_mod=2
|
||||||
elif $(which update-rc.d &> /dev/null); then
|
elif $(which update-rc.d &> /dev/null); then
|
||||||
|
@ -50,7 +50,7 @@ elif $(which service &> /dev/null); then
|
||||||
else
|
else
|
||||||
service_mod=2
|
service_mod=2
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
service_mod=2
|
service_mod=2
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@ elif echo $osinfo | grep -qwi "fedora" ; then
|
||||||
os_type=2
|
os_type=2
|
||||||
else
|
else
|
||||||
echo " osinfo: ${osinfo}"
|
echo " osinfo: ${osinfo}"
|
||||||
echo " This is an officially unverified linux system,"
|
echo " This is an officially unverified linux system,"
|
||||||
echo " if there are any problems with the installation and operation, "
|
echo " if there are any problems with the installation and operation, "
|
||||||
echo " please feel free to contact taosdata.com for support."
|
echo " please feel free to contact taosdata.com for support."
|
||||||
os_type=1
|
os_type=1
|
||||||
|
@ -99,7 +99,7 @@ function install_main_path() {
|
||||||
#create install main dir and all sub dir
|
#create install main dir and all sub dir
|
||||||
${csudo} rm -rf ${install_main_dir} || :
|
${csudo} rm -rf ${install_main_dir} || :
|
||||||
${csudo} mkdir -p ${install_main_dir}
|
${csudo} mkdir -p ${install_main_dir}
|
||||||
${csudo} mkdir -p ${install_main_dir}/bin
|
${csudo} mkdir -p ${install_main_dir}/bin
|
||||||
#${csudo} mkdir -p ${install_main_dir}/include
|
#${csudo} mkdir -p ${install_main_dir}/include
|
||||||
${csudo} mkdir -p ${install_main_dir}/init.d
|
${csudo} mkdir -p ${install_main_dir}/init.d
|
||||||
}
|
}
|
||||||
|
@ -117,21 +117,68 @@ function install_bin() {
|
||||||
|
|
||||||
function install_header() {
|
function install_header() {
|
||||||
${csudo} rm -f ${inc_link_dir}/taos.h ${inc_link_dir}/taoserror.h || :
|
${csudo} rm -f ${inc_link_dir}/taos.h ${inc_link_dir}/taoserror.h || :
|
||||||
${csudo} cp -f ${script_dir}/inc/* ${install_main_dir}/include && ${csudo} chmod 644 ${install_main_dir}/include/*
|
${csudo} cp -f ${script_dir}/inc/* ${install_main_dir}/include && ${csudo} chmod 644 ${install_main_dir}/include/*
|
||||||
${csudo} ln -s ${install_main_dir}/include/taos.h ${inc_link_dir}/taos.h
|
${csudo} ln -s ${install_main_dir}/include/taos.h ${inc_link_dir}/taos.h
|
||||||
${csudo} ln -s ${install_main_dir}/include/taoserror.h ${inc_link_dir}/taoserror.h
|
${csudo} ln -s ${install_main_dir}/include/taoserror.h ${inc_link_dir}/taoserror.h
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function install_jemalloc() {
|
||||||
|
jemalloc_dir=${script_dir}/jemalloc
|
||||||
|
|
||||||
|
if [ -d ${jemalloc_dir} ]; then
|
||||||
|
${csudo} /usr/bin/install -c -d /usr/local/bin
|
||||||
|
|
||||||
|
if [ -f ${jemalloc_dir}/bin/jemalloc-config ]; then
|
||||||
|
${csudo} /usr/bin/install -c -m 755 ${jemalloc_dir}/bin/jemalloc-config /usr/local/bin
|
||||||
|
fi
|
||||||
|
if [ -f ${jemalloc_dir}/bin/jemalloc.sh ]; then
|
||||||
|
${csudo} /usr/bin/install -c -m 755 ${jemalloc_dir}/bin/jemalloc.sh /usr/local/bin
|
||||||
|
fi
|
||||||
|
if [ -f ${jemalloc_dir}/bin/jeprof ]; then
|
||||||
|
${csudo} /usr/bin/install -c -m 755 ${jemalloc_dir}/bin/jeprof /usr/local/bin
|
||||||
|
fi
|
||||||
|
if [ -f ${jemalloc_dir}/include/jemalloc/jemalloc.h ]; then
|
||||||
|
${csudo} /usr/bin/install -c -d /usr/local/include/jemalloc
|
||||||
|
${csudo} /usr/bin/install -c -m 644 ${jemalloc_dir}/include/jemalloc/jemalloc.h /usr/local/include/jemalloc
|
||||||
|
fi
|
||||||
|
if [ -f ${jemalloc_dir}/lib/libjemalloc.so.2 ]; then
|
||||||
|
${csudo} /usr/bin/install -c -d /usr/local/lib
|
||||||
|
${csudo} /usr/bin/install -c -m 755 ${jemalloc_dir}/lib/libjemalloc.so.2 /usr/local/lib
|
||||||
|
${csudo} ln -sf libjemalloc.so.2 /usr/local/lib/libjemalloc.so
|
||||||
|
${csudo} /usr/bin/install -c -d /usr/local/lib
|
||||||
|
if [ -f ${jemalloc_dir}/lib/libjemalloc.a ]; then
|
||||||
|
${csudo} /usr/bin/install -c -m 755 ${jemalloc_dir}/lib/libjemalloc.a /usr/local/lib
|
||||||
|
fi
|
||||||
|
if [ -f ${jemalloc_dir}/lib/libjemalloc_pic.a ]; then
|
||||||
|
${csudo} /usr/bin/install -c -m 755 ${jemalloc_dir}/lib/libjemalloc_pic.a /usr/local/lib
|
||||||
|
fi
|
||||||
|
if [ -f ${jemalloc_dir}/lib/libjemalloc_pic.a ]; then
|
||||||
|
${csudo} /usr/bin/install -c -d /usr/local/lib/pkgconfig
|
||||||
|
${csudo} /usr/bin/install -c -m 644 ${jemalloc_dir}/lib/pkgconfig/jemalloc.pc /usr/local/lib/pkgconfig
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [ -f ${jemalloc_dir}/share/doc/jemalloc/jemalloc.html ]; then
|
||||||
|
${csudo} /usr/bin/install -c -d /usr/local/share/doc/jemalloc
|
||||||
|
${csudo} /usr/bin/install -c -m 644 ${jemalloc_dir}/share/doc/jemalloc/jemalloc.html /usr/local/share/doc/jemalloc
|
||||||
|
fi
|
||||||
|
if [ -f ${jemalloc_dir}/share/man/man3/jemalloc.3 ]; then
|
||||||
|
${csudo} /usr/bin/install -c -d /usr/local/share/man/man3
|
||||||
|
${csudo} /usr/bin/install -c -m 644 ${jemalloc_dir}/share/man/man3/jemalloc.3 /usr/local/share/man/man3
|
||||||
|
fi
|
||||||
|
${csudo} ldconfig
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
function clean_service_on_sysvinit() {
|
function clean_service_on_sysvinit() {
|
||||||
#restart_config_str="taos:2345:respawn:${service_config_dir}/taosd start"
|
#restart_config_str="taos:2345:respawn:${service_config_dir}/taosd start"
|
||||||
#${csudo} sed -i "\|${restart_config_str}|d" /etc/inittab || :
|
#${csudo} sed -i "\|${restart_config_str}|d" /etc/inittab || :
|
||||||
|
|
||||||
if pidof tarbitrator &> /dev/null; then
|
if pidof tarbitrator &> /dev/null; then
|
||||||
${csudo} service tarbitratord stop || :
|
${csudo} service tarbitratord stop || :
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ((${initd_mod}==1)); then
|
if ((${initd_mod}==1)); then
|
||||||
if [ -e ${service_config_dir}/tarbitratord ]; then
|
if [ -e ${service_config_dir}/tarbitratord ]; then
|
||||||
${csudo} chkconfig --del tarbitratord || :
|
${csudo} chkconfig --del tarbitratord || :
|
||||||
fi
|
fi
|
||||||
elif ((${initd_mod}==2)); then
|
elif ((${initd_mod}==2)); then
|
||||||
|
@ -142,10 +189,10 @@ function clean_service_on_sysvinit() {
|
||||||
if [ -e ${service_config_dir}/tarbitratord ]; then
|
if [ -e ${service_config_dir}/tarbitratord ]; then
|
||||||
${csudo} update-rc.d -f tarbitratord remove || :
|
${csudo} update-rc.d -f tarbitratord remove || :
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
${csudo} rm -f ${service_config_dir}/tarbitratord || :
|
${csudo} rm -f ${service_config_dir}/tarbitratord || :
|
||||||
|
|
||||||
if $(which init &> /dev/null); then
|
if $(which init &> /dev/null); then
|
||||||
${csudo} init q || :
|
${csudo} init q || :
|
||||||
fi
|
fi
|
||||||
|
@ -164,10 +211,10 @@ function install_service_on_sysvinit() {
|
||||||
${csudo} cp -f ${script_dir}/init.d/tarbitratord.rpm ${install_main_dir}/init.d/tarbitratord
|
${csudo} cp -f ${script_dir}/init.d/tarbitratord.rpm ${install_main_dir}/init.d/tarbitratord
|
||||||
${csudo} cp ${script_dir}/init.d/tarbitratord.rpm ${service_config_dir}/tarbitratord && ${csudo} chmod a+x ${service_config_dir}/tarbitratord
|
${csudo} cp ${script_dir}/init.d/tarbitratord.rpm ${service_config_dir}/tarbitratord && ${csudo} chmod a+x ${service_config_dir}/tarbitratord
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#restart_config_str="taos:2345:respawn:${service_config_dir}/taosd start"
|
#restart_config_str="taos:2345:respawn:${service_config_dir}/taosd start"
|
||||||
#${csudo} grep -q -F "$restart_config_str" /etc/inittab || ${csudo} bash -c "echo '${restart_config_str}' >> /etc/inittab"
|
#${csudo} grep -q -F "$restart_config_str" /etc/inittab || ${csudo} bash -c "echo '${restart_config_str}' >> /etc/inittab"
|
||||||
|
|
||||||
if ((${initd_mod}==1)); then
|
if ((${initd_mod}==1)); then
|
||||||
${csudo} chkconfig --add tarbitratord || :
|
${csudo} chkconfig --add tarbitratord || :
|
||||||
${csudo} chkconfig --level 2345 tarbitratord on || :
|
${csudo} chkconfig --level 2345 tarbitratord on || :
|
||||||
|
@ -245,12 +292,13 @@ function update_TDengine() {
|
||||||
fi
|
fi
|
||||||
sleep 1
|
sleep 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
install_main_path
|
install_main_path
|
||||||
#install_header
|
#install_header
|
||||||
install_bin
|
install_bin
|
||||||
install_service
|
install_service
|
||||||
|
install_jemalloc
|
||||||
|
|
||||||
echo
|
echo
|
||||||
#echo -e "${GREEN_DARK}To configure TDengine ${NC}: edit /etc/taos/taos.cfg"
|
#echo -e "${GREEN_DARK}To configure TDengine ${NC}: edit /etc/taos/taos.cfg"
|
||||||
if ((${service_mod}==0)); then
|
if ((${service_mod}==0)); then
|
||||||
|
@ -259,7 +307,7 @@ function update_TDengine() {
|
||||||
echo -e "${GREEN_DARK}To start arbitrator ${NC}: ${csudo} service tarbitratord start${NC}"
|
echo -e "${GREEN_DARK}To start arbitrator ${NC}: ${csudo} service tarbitratord start${NC}"
|
||||||
else
|
else
|
||||||
echo -e "${GREEN_DARK}To start arbitrator ${NC}: ./tarbitrator${NC}"
|
echo -e "${GREEN_DARK}To start arbitrator ${NC}: ./tarbitrator${NC}"
|
||||||
fi
|
fi
|
||||||
echo
|
echo
|
||||||
echo -e "\033[44;32;1mTDengine's arbitrator is updated successfully!${NC}"
|
echo -e "\033[44;32;1mTDengine's arbitrator is updated successfully!${NC}"
|
||||||
}
|
}
|
||||||
|
@ -267,11 +315,13 @@ function update_TDengine() {
|
||||||
function install_TDengine() {
|
function install_TDengine() {
|
||||||
# Start to install
|
# Start to install
|
||||||
echo -e "${GREEN}Start to install TDengine's arbitrator ...${NC}"
|
echo -e "${GREEN}Start to install TDengine's arbitrator ...${NC}"
|
||||||
|
|
||||||
install_main_path
|
install_main_path
|
||||||
#install_header
|
#install_header
|
||||||
install_bin
|
install_bin
|
||||||
install_service
|
install_service
|
||||||
|
install_jemalloc
|
||||||
|
|
||||||
echo
|
echo
|
||||||
#echo -e "${GREEN_DARK}To configure TDengine ${NC}: edit /etc/taos/taos.cfg"
|
#echo -e "${GREEN_DARK}To configure TDengine ${NC}: edit /etc/taos/taos.cfg"
|
||||||
if ((${service_mod}==0)); then
|
if ((${service_mod}==0)); then
|
||||||
|
|
|
@ -38,11 +38,11 @@ initd_mod=0
|
||||||
service_mod=2
|
service_mod=2
|
||||||
if pidof systemd &> /dev/null; then
|
if pidof systemd &> /dev/null; then
|
||||||
service_mod=0
|
service_mod=0
|
||||||
elif $(which service &> /dev/null); then
|
elif $(which service &> /dev/null); then
|
||||||
service_mod=1
|
service_mod=1
|
||||||
service_config_dir="/etc/init.d"
|
service_config_dir="/etc/init.d"
|
||||||
if $(which chkconfig &> /dev/null); then
|
if $(which chkconfig &> /dev/null); then
|
||||||
initd_mod=1
|
initd_mod=1
|
||||||
elif $(which insserv &> /dev/null); then
|
elif $(which insserv &> /dev/null); then
|
||||||
initd_mod=2
|
initd_mod=2
|
||||||
elif $(which update-rc.d &> /dev/null); then
|
elif $(which update-rc.d &> /dev/null); then
|
||||||
|
@ -50,7 +50,7 @@ elif $(which service &> /dev/null); then
|
||||||
else
|
else
|
||||||
service_mod=2
|
service_mod=2
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
service_mod=2
|
service_mod=2
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@ elif echo $osinfo | grep -qwi "fedora" ; then
|
||||||
os_type=2
|
os_type=2
|
||||||
else
|
else
|
||||||
echo " osinfo: ${osinfo}"
|
echo " osinfo: ${osinfo}"
|
||||||
echo " This is an officially unverified linux system,"
|
echo " This is an officially unverified linux system,"
|
||||||
echo " if there are any problems with the installation and operation, "
|
echo " if there are any problems with the installation and operation, "
|
||||||
echo " please feel free to contact taosdata.com for support."
|
echo " please feel free to contact taosdata.com for support."
|
||||||
os_type=1
|
os_type=1
|
||||||
|
@ -99,7 +99,7 @@ function install_main_path() {
|
||||||
#create install main dir and all sub dir
|
#create install main dir and all sub dir
|
||||||
${csudo} rm -rf ${install_main_dir} || :
|
${csudo} rm -rf ${install_main_dir} || :
|
||||||
${csudo} mkdir -p ${install_main_dir}
|
${csudo} mkdir -p ${install_main_dir}
|
||||||
${csudo} mkdir -p ${install_main_dir}/bin
|
${csudo} mkdir -p ${install_main_dir}/bin
|
||||||
#${csudo} mkdir -p ${install_main_dir}/include
|
#${csudo} mkdir -p ${install_main_dir}/include
|
||||||
${csudo} mkdir -p ${install_main_dir}/init.d
|
${csudo} mkdir -p ${install_main_dir}/init.d
|
||||||
}
|
}
|
||||||
|
@ -115,23 +115,70 @@ function install_bin() {
|
||||||
[ -x ${install_main_dir}/bin/tarbitrator ] && ${csudo} ln -s ${install_main_dir}/bin/tarbitrator ${bin_link_dir}/tarbitrator || :
|
[ -x ${install_main_dir}/bin/tarbitrator ] && ${csudo} ln -s ${install_main_dir}/bin/tarbitrator ${bin_link_dir}/tarbitrator || :
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function install_jemalloc() {
|
||||||
|
jemalloc_dir=${script_dir}/jemalloc
|
||||||
|
|
||||||
|
if [ -d ${jemalloc_dir} ]; then
|
||||||
|
${csudo} /usr/bin/install -c -d /usr/local/bin
|
||||||
|
|
||||||
|
if [ -f ${jemalloc_dir}/bin/jemalloc-config ]; then
|
||||||
|
${csudo} /usr/bin/install -c -m 755 ${jemalloc_dir}/bin/jemalloc-config /usr/local/bin
|
||||||
|
fi
|
||||||
|
if [ -f ${jemalloc_dir}/bin/jemalloc.sh ]; then
|
||||||
|
${csudo} /usr/bin/install -c -m 755 ${jemalloc_dir}/bin/jemalloc.sh /usr/local/bin
|
||||||
|
fi
|
||||||
|
if [ -f ${jemalloc_dir}/bin/jeprof ]; then
|
||||||
|
${csudo} /usr/bin/install -c -m 755 ${jemalloc_dir}/bin/jeprof /usr/local/bin
|
||||||
|
fi
|
||||||
|
if [ -f ${jemalloc_dir}/include/jemalloc/jemalloc.h ]; then
|
||||||
|
${csudo} /usr/bin/install -c -d /usr/local/include/jemalloc
|
||||||
|
${csudo} /usr/bin/install -c -m 644 ${jemalloc_dir}/include/jemalloc/jemalloc.h /usr/local/include/jemalloc
|
||||||
|
fi
|
||||||
|
if [ -f ${jemalloc_dir}/lib/libjemalloc.so.2 ]; then
|
||||||
|
${csudo} /usr/bin/install -c -d /usr/local/lib
|
||||||
|
${csudo} /usr/bin/install -c -m 755 ${jemalloc_dir}/lib/libjemalloc.so.2 /usr/local/lib
|
||||||
|
${csudo} ln -sf libjemalloc.so.2 /usr/local/lib/libjemalloc.so
|
||||||
|
${csudo} /usr/bin/install -c -d /usr/local/lib
|
||||||
|
if [ -f ${jemalloc_dir}/lib/libjemalloc.a ]; then
|
||||||
|
${csudo} /usr/bin/install -c -m 755 ${jemalloc_dir}/lib/libjemalloc.a /usr/local/lib
|
||||||
|
fi
|
||||||
|
if [ -f ${jemalloc_dir}/lib/libjemalloc_pic.a ]; then
|
||||||
|
${csudo} /usr/bin/install -c -m 755 ${jemalloc_dir}/lib/libjemalloc_pic.a /usr/local/lib
|
||||||
|
fi
|
||||||
|
if [ -f ${jemalloc_dir}/lib/libjemalloc_pic.a ]; then
|
||||||
|
${csudo} /usr/bin/install -c -d /usr/local/lib/pkgconfig
|
||||||
|
${csudo} /usr/bin/install -c -m 644 ${jemalloc_dir}/lib/pkgconfig/jemalloc.pc /usr/local/lib/pkgconfig
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [ -f ${jemalloc_dir}/share/doc/jemalloc/jemalloc.html ]; then
|
||||||
|
${csudo} /usr/bin/install -c -d /usr/local/share/doc/jemalloc
|
||||||
|
${csudo} /usr/bin/install -c -m 644 ${jemalloc_dir}/share/doc/jemalloc/jemalloc.html /usr/local/share/doc/jemalloc
|
||||||
|
fi
|
||||||
|
if [ -f ${jemalloc_dir}/share/man/man3/jemalloc.3 ]; then
|
||||||
|
${csudo} /usr/bin/install -c -d /usr/local/share/man/man3
|
||||||
|
${csudo} /usr/bin/install -c -m 644 ${jemalloc_dir}/share/man/man3/jemalloc.3 /usr/local/share/man/man3
|
||||||
|
fi
|
||||||
|
${csudo} ldconfig
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
function install_header() {
|
function install_header() {
|
||||||
${csudo} rm -f ${inc_link_dir}/taos.h ${inc_link_dir}/taoserror.h || :
|
${csudo} rm -f ${inc_link_dir}/taos.h ${inc_link_dir}/taoserror.h || :
|
||||||
${csudo} cp -f ${script_dir}/inc/* ${install_main_dir}/include && ${csudo} chmod 644 ${install_main_dir}/include/*
|
${csudo} cp -f ${script_dir}/inc/* ${install_main_dir}/include && ${csudo} chmod 644 ${install_main_dir}/include/*
|
||||||
${csudo} ln -s ${install_main_dir}/include/taos.h ${inc_link_dir}/taos.h
|
${csudo} ln -s ${install_main_dir}/include/taos.h ${inc_link_dir}/taos.h
|
||||||
${csudo} ln -s ${install_main_dir}/include/taoserror.h ${inc_link_dir}/taoserror.h
|
${csudo} ln -s ${install_main_dir}/include/taoserror.h ${inc_link_dir}/taoserror.h
|
||||||
}
|
}
|
||||||
|
|
||||||
function clean_service_on_sysvinit() {
|
function clean_service_on_sysvinit() {
|
||||||
#restart_config_str="taos:2345:respawn:${service_config_dir}/taosd start"
|
#restart_config_str="taos:2345:respawn:${service_config_dir}/taosd start"
|
||||||
#${csudo} sed -i "\|${restart_config_str}|d" /etc/inittab || :
|
#${csudo} sed -i "\|${restart_config_str}|d" /etc/inittab || :
|
||||||
|
|
||||||
if pidof tarbitrator &> /dev/null; then
|
if pidof tarbitrator &> /dev/null; then
|
||||||
${csudo} service tarbitratord stop || :
|
${csudo} service tarbitratord stop || :
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ((${initd_mod}==1)); then
|
if ((${initd_mod}==1)); then
|
||||||
if [ -e ${service_config_dir}/tarbitratord ]; then
|
if [ -e ${service_config_dir}/tarbitratord ]; then
|
||||||
${csudo} chkconfig --del tarbitratord || :
|
${csudo} chkconfig --del tarbitratord || :
|
||||||
fi
|
fi
|
||||||
elif ((${initd_mod}==2)); then
|
elif ((${initd_mod}==2)); then
|
||||||
|
@ -142,10 +189,10 @@ function clean_service_on_sysvinit() {
|
||||||
if [ -e ${service_config_dir}/tarbitratord ]; then
|
if [ -e ${service_config_dir}/tarbitratord ]; then
|
||||||
${csudo} update-rc.d -f tarbitratord remove || :
|
${csudo} update-rc.d -f tarbitratord remove || :
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
${csudo} rm -f ${service_config_dir}/tarbitratord || :
|
${csudo} rm -f ${service_config_dir}/tarbitratord || :
|
||||||
|
|
||||||
if $(which init &> /dev/null); then
|
if $(which init &> /dev/null); then
|
||||||
${csudo} init q || :
|
${csudo} init q || :
|
||||||
fi
|
fi
|
||||||
|
@ -164,10 +211,10 @@ function install_service_on_sysvinit() {
|
||||||
${csudo} cp -f ${script_dir}/init.d/tarbitratord.rpm ${install_main_dir}/init.d/tarbitratord
|
${csudo} cp -f ${script_dir}/init.d/tarbitratord.rpm ${install_main_dir}/init.d/tarbitratord
|
||||||
${csudo} cp ${script_dir}/init.d/tarbitratord.rpm ${service_config_dir}/tarbitratord && ${csudo} chmod a+x ${service_config_dir}/tarbitratord
|
${csudo} cp ${script_dir}/init.d/tarbitratord.rpm ${service_config_dir}/tarbitratord && ${csudo} chmod a+x ${service_config_dir}/tarbitratord
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#restart_config_str="power:2345:respawn:${service_config_dir}/powerd start"
|
#restart_config_str="power:2345:respawn:${service_config_dir}/powerd start"
|
||||||
#${csudo} grep -q -F "$restart_config_str" /etc/inittab || ${csudo} bash -c "echo '${restart_config_str}' >> /etc/inittab"
|
#${csudo} grep -q -F "$restart_config_str" /etc/inittab || ${csudo} bash -c "echo '${restart_config_str}' >> /etc/inittab"
|
||||||
|
|
||||||
if ((${initd_mod}==1)); then
|
if ((${initd_mod}==1)); then
|
||||||
${csudo} chkconfig --add tarbitratord || :
|
${csudo} chkconfig --add tarbitratord || :
|
||||||
${csudo} chkconfig --level 2345 tarbitratord on || :
|
${csudo} chkconfig --level 2345 tarbitratord on || :
|
||||||
|
@ -245,12 +292,13 @@ function update_PowerDB() {
|
||||||
fi
|
fi
|
||||||
sleep 1
|
sleep 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
install_main_path
|
install_main_path
|
||||||
#install_header
|
#install_header
|
||||||
install_bin
|
install_bin
|
||||||
install_service
|
install_service
|
||||||
|
install_jemalloc
|
||||||
|
|
||||||
echo
|
echo
|
||||||
#echo -e "${GREEN_DARK}To configure PowerDB ${NC}: edit /etc/taos/taos.cfg"
|
#echo -e "${GREEN_DARK}To configure PowerDB ${NC}: edit /etc/taos/taos.cfg"
|
||||||
if ((${service_mod}==0)); then
|
if ((${service_mod}==0)); then
|
||||||
|
@ -259,7 +307,7 @@ function update_PowerDB() {
|
||||||
echo -e "${GREEN_DARK}To start arbitrator ${NC}: ${csudo} service tarbitratord start${NC}"
|
echo -e "${GREEN_DARK}To start arbitrator ${NC}: ${csudo} service tarbitratord start${NC}"
|
||||||
else
|
else
|
||||||
echo -e "${GREEN_DARK}To start arbitrator ${NC}: ./tarbitrator${NC}"
|
echo -e "${GREEN_DARK}To start arbitrator ${NC}: ./tarbitrator${NC}"
|
||||||
fi
|
fi
|
||||||
echo
|
echo
|
||||||
echo -e "\033[44;32;1mPowerDB's arbitrator is updated successfully!${NC}"
|
echo -e "\033[44;32;1mPowerDB's arbitrator is updated successfully!${NC}"
|
||||||
}
|
}
|
||||||
|
@ -267,11 +315,13 @@ function update_PowerDB() {
|
||||||
function install_PowerDB() {
|
function install_PowerDB() {
|
||||||
# Start to install
|
# Start to install
|
||||||
echo -e "${GREEN}Start to install PowerDB's arbitrator ...${NC}"
|
echo -e "${GREEN}Start to install PowerDB's arbitrator ...${NC}"
|
||||||
|
|
||||||
install_main_path
|
install_main_path
|
||||||
#install_header
|
#install_header
|
||||||
install_bin
|
install_bin
|
||||||
install_service
|
install_service
|
||||||
|
install_jemalloc
|
||||||
|
|
||||||
echo
|
echo
|
||||||
#echo -e "${GREEN_DARK}To configure PowerDB ${NC}: edit /etc/taos/taos.cfg"
|
#echo -e "${GREEN_DARK}To configure PowerDB ${NC}: edit /etc/taos/taos.cfg"
|
||||||
if ((${service_mod}==0)); then
|
if ((${service_mod}==0)); then
|
||||||
|
|
|
@ -0,0 +1,298 @@
|
||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# This file is used to install database on linux systems. The operating system
|
||||||
|
# is required to use systemd to manage services at boot
|
||||||
|
|
||||||
|
set -e
|
||||||
|
#set -x
|
||||||
|
|
||||||
|
# -----------------------Variables definition---------------------
|
||||||
|
script_dir=$(dirname $(readlink -f "$0"))
|
||||||
|
|
||||||
|
bin_link_dir="/usr/bin"
|
||||||
|
#inc_link_dir="/usr/include"
|
||||||
|
|
||||||
|
#install main path
|
||||||
|
install_main_dir="/usr/local/tarbitrator"
|
||||||
|
|
||||||
|
# old bin dir
|
||||||
|
bin_dir="/usr/local/tarbitrator/bin"
|
||||||
|
|
||||||
|
service_config_dir="/etc/systemd/system"
|
||||||
|
|
||||||
|
# Color setting
|
||||||
|
RED='\033[0;31m'
|
||||||
|
GREEN='\033[1;32m'
|
||||||
|
GREEN_DARK='\033[0;32m'
|
||||||
|
GREEN_UNDERLINE='\033[4;32m'
|
||||||
|
NC='\033[0m'
|
||||||
|
|
||||||
|
csudo=""
|
||||||
|
if command -v sudo > /dev/null; then
|
||||||
|
csudo="sudo"
|
||||||
|
fi
|
||||||
|
|
||||||
|
update_flag=0
|
||||||
|
|
||||||
|
initd_mod=0
|
||||||
|
service_mod=2
|
||||||
|
if pidof systemd &> /dev/null; then
|
||||||
|
service_mod=0
|
||||||
|
elif $(which service &> /dev/null); then
|
||||||
|
service_mod=1
|
||||||
|
service_config_dir="/etc/init.d"
|
||||||
|
if $(which chkconfig &> /dev/null); then
|
||||||
|
initd_mod=1
|
||||||
|
elif $(which insserv &> /dev/null); then
|
||||||
|
initd_mod=2
|
||||||
|
elif $(which update-rc.d &> /dev/null); then
|
||||||
|
initd_mod=3
|
||||||
|
else
|
||||||
|
service_mod=2
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
service_mod=2
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# get the operating system type for using the corresponding init file
|
||||||
|
# ubuntu/debian(deb), centos/fedora(rpm), others: opensuse, redhat, ..., no verification
|
||||||
|
#osinfo=$(awk -F= '/^NAME/{print $2}' /etc/os-release)
|
||||||
|
if [[ -e /etc/os-release ]]; then
|
||||||
|
osinfo=$(cat /etc/os-release | grep "NAME" | cut -d '"' -f2) ||:
|
||||||
|
else
|
||||||
|
osinfo=""
|
||||||
|
fi
|
||||||
|
#echo "osinfo: ${osinfo}"
|
||||||
|
os_type=0
|
||||||
|
if echo $osinfo | grep -qwi "ubuntu" ; then
|
||||||
|
# echo "This is ubuntu system"
|
||||||
|
os_type=1
|
||||||
|
elif echo $osinfo | grep -qwi "debian" ; then
|
||||||
|
# echo "This is debian system"
|
||||||
|
os_type=1
|
||||||
|
elif echo $osinfo | grep -qwi "Kylin" ; then
|
||||||
|
# echo "This is Kylin system"
|
||||||
|
os_type=1
|
||||||
|
elif echo $osinfo | grep -qwi "centos" ; then
|
||||||
|
# echo "This is centos system"
|
||||||
|
os_type=2
|
||||||
|
elif echo $osinfo | grep -qwi "fedora" ; then
|
||||||
|
# echo "This is fedora system"
|
||||||
|
os_type=2
|
||||||
|
else
|
||||||
|
echo " osinfo: ${osinfo}"
|
||||||
|
echo " This is an officially unverified linux system,"
|
||||||
|
echo " if there are any problems with the installation and operation, "
|
||||||
|
echo " please feel free to contact taosdata.com for support."
|
||||||
|
os_type=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
function kill_tarbitrator() {
|
||||||
|
pid=$(ps -ef | grep "tarbitrator" | grep -v "grep" | awk '{print $2}')
|
||||||
|
if [ -n "$pid" ]; then
|
||||||
|
${csudo} kill -9 $pid || :
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function install_main_path() {
|
||||||
|
#create install main dir and all sub dir
|
||||||
|
${csudo} rm -rf ${install_main_dir} || :
|
||||||
|
${csudo} mkdir -p ${install_main_dir}
|
||||||
|
${csudo} mkdir -p ${install_main_dir}/bin
|
||||||
|
#${csudo} mkdir -p ${install_main_dir}/include
|
||||||
|
${csudo} mkdir -p ${install_main_dir}/init.d
|
||||||
|
}
|
||||||
|
|
||||||
|
function install_bin() {
|
||||||
|
# Remove links
|
||||||
|
${csudo} rm -f ${bin_link_dir}/rmtarbitrator || :
|
||||||
|
${csudo} rm -f ${bin_link_dir}/tarbitrator || :
|
||||||
|
${csudo} cp -r ${script_dir}/bin/* ${install_main_dir}/bin && ${csudo} chmod 0555 ${install_main_dir}/bin/*
|
||||||
|
|
||||||
|
#Make link
|
||||||
|
[ -x ${install_main_dir}/bin/remove_arbi_tq.sh ] && ${csudo} ln -s ${install_main_dir}/bin/remove_arbi_tq.sh ${bin_link_dir}/rmtarbitrator || :
|
||||||
|
[ -x ${install_main_dir}/bin/tarbitrator ] && ${csudo} ln -s ${install_main_dir}/bin/tarbitrator ${bin_link_dir}/tarbitrator || :
|
||||||
|
}
|
||||||
|
|
||||||
|
function install_header() {
|
||||||
|
${csudo} rm -f ${inc_link_dir}/taos.h ${inc_link_dir}/taoserror.h || :
|
||||||
|
${csudo} cp -f ${script_dir}/inc/* ${install_main_dir}/include && ${csudo} chmod 644 ${install_main_dir}/include/*
|
||||||
|
${csudo} ln -s ${install_main_dir}/include/taos.h ${inc_link_dir}/taos.h
|
||||||
|
${csudo} ln -s ${install_main_dir}/include/taoserror.h ${inc_link_dir}/taoserror.h
|
||||||
|
}
|
||||||
|
|
||||||
|
function clean_service_on_sysvinit() {
|
||||||
|
#restart_config_str="taos:2345:respawn:${service_config_dir}/taosd start"
|
||||||
|
#${csudo} sed -i "\|${restart_config_str}|d" /etc/inittab || :
|
||||||
|
|
||||||
|
if pidof tarbitrator &> /dev/null; then
|
||||||
|
${csudo} service tarbitratord stop || :
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ((${initd_mod}==1)); then
|
||||||
|
if [ -e ${service_config_dir}/tarbitratord ]; then
|
||||||
|
${csudo} chkconfig --del tarbitratord || :
|
||||||
|
fi
|
||||||
|
elif ((${initd_mod}==2)); then
|
||||||
|
if [ -e ${service_config_dir}/tarbitratord ]; then
|
||||||
|
${csudo} insserv -r tarbitratord || :
|
||||||
|
fi
|
||||||
|
elif ((${initd_mod}==3)); then
|
||||||
|
if [ -e ${service_config_dir}/tarbitratord ]; then
|
||||||
|
${csudo} update-rc.d -f tarbitratord remove || :
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
${csudo} rm -f ${service_config_dir}/tarbitratord || :
|
||||||
|
|
||||||
|
if $(which init &> /dev/null); then
|
||||||
|
${csudo} init q || :
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function install_service_on_sysvinit() {
|
||||||
|
clean_service_on_sysvinit
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
# Install tqd service
|
||||||
|
|
||||||
|
if ((${os_type}==1)); then
|
||||||
|
${csudo} cp -f ${script_dir}/init.d/tarbitratord.deb ${install_main_dir}/init.d/tarbitratord
|
||||||
|
${csudo} cp ${script_dir}/init.d/tarbitratord.deb ${service_config_dir}/tarbitratord && ${csudo} chmod a+x ${service_config_dir}/tarbitratord
|
||||||
|
elif ((${os_type}==2)); then
|
||||||
|
${csudo} cp -f ${script_dir}/init.d/tarbitratord.rpm ${install_main_dir}/init.d/tarbitratord
|
||||||
|
${csudo} cp ${script_dir}/init.d/tarbitratord.rpm ${service_config_dir}/tarbitratord && ${csudo} chmod a+x ${service_config_dir}/tarbitratord
|
||||||
|
fi
|
||||||
|
|
||||||
|
#restart_config_str="tq:2345:respawn:${service_config_dir}/tqd start"
|
||||||
|
#${csudo} grep -q -F "$restart_config_str" /etc/inittab || ${csudo} bash -c "echo '${restart_config_str}' >> /etc/inittab"
|
||||||
|
|
||||||
|
if ((${initd_mod}==1)); then
|
||||||
|
${csudo} chkconfig --add tarbitratord || :
|
||||||
|
${csudo} chkconfig --level 2345 tarbitratord on || :
|
||||||
|
elif ((${initd_mod}==2)); then
|
||||||
|
${csudo} insserv tarbitratord || :
|
||||||
|
${csudo} insserv -d tarbitratord || :
|
||||||
|
elif ((${initd_mod}==3)); then
|
||||||
|
${csudo} update-rc.d tarbitratord defaults || :
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function clean_service_on_systemd() {
|
||||||
|
tarbitratord_service_config="${service_config_dir}/tarbitratord.service"
|
||||||
|
if systemctl is-active --quiet tarbitratord; then
|
||||||
|
echo "tarbitrator is running, stopping it..."
|
||||||
|
${csudo} systemctl stop tarbitratord &> /dev/null || echo &> /dev/null
|
||||||
|
fi
|
||||||
|
${csudo} systemctl disable tarbitratord &> /dev/null || echo &> /dev/null
|
||||||
|
|
||||||
|
${csudo} rm -f ${tarbitratord_service_config}
|
||||||
|
}
|
||||||
|
|
||||||
|
# tq:2345:respawn:/etc/init.d/tarbitratord start
|
||||||
|
|
||||||
|
function install_service_on_systemd() {
|
||||||
|
clean_service_on_systemd
|
||||||
|
|
||||||
|
tarbitratord_service_config="${service_config_dir}/tarbitratord.service"
|
||||||
|
|
||||||
|
${csudo} bash -c "echo '[Unit]' >> ${tarbitratord_service_config}"
|
||||||
|
${csudo} bash -c "echo 'Description=TQ arbitrator service' >> ${tarbitratord_service_config}"
|
||||||
|
${csudo} bash -c "echo 'After=network-online.target' >> ${tarbitratord_service_config}"
|
||||||
|
${csudo} bash -c "echo 'Wants=network-online.target' >> ${tarbitratord_service_config}"
|
||||||
|
${csudo} bash -c "echo >> ${tarbitratord_service_config}"
|
||||||
|
${csudo} bash -c "echo '[Service]' >> ${tarbitratord_service_config}"
|
||||||
|
${csudo} bash -c "echo 'Type=simple' >> ${tarbitratord_service_config}"
|
||||||
|
${csudo} bash -c "echo 'ExecStart=/usr/bin/tarbitrator' >> ${tarbitratord_service_config}"
|
||||||
|
${csudo} bash -c "echo 'TimeoutStopSec=1000000s' >> ${tarbitratord_service_config}"
|
||||||
|
${csudo} bash -c "echo 'LimitNOFILE=infinity' >> ${tarbitratord_service_config}"
|
||||||
|
${csudo} bash -c "echo 'LimitNPROC=infinity' >> ${tarbitratord_service_config}"
|
||||||
|
${csudo} bash -c "echo 'LimitCORE=infinity' >> ${tarbitratord_service_config}"
|
||||||
|
${csudo} bash -c "echo 'TimeoutStartSec=0' >> ${tarbitratord_service_config}"
|
||||||
|
${csudo} bash -c "echo 'StandardOutput=null' >> ${tarbitratord_service_config}"
|
||||||
|
${csudo} bash -c "echo 'Restart=always' >> ${tarbitratord_service_config}"
|
||||||
|
${csudo} bash -c "echo 'StartLimitBurst=3' >> ${tarbitratord_service_config}"
|
||||||
|
${csudo} bash -c "echo 'StartLimitInterval=60s' >> ${tarbitratord_service_config}"
|
||||||
|
${csudo} bash -c "echo >> ${tarbitratord_service_config}"
|
||||||
|
${csudo} bash -c "echo '[Install]' >> ${tarbitratord_service_config}"
|
||||||
|
${csudo} bash -c "echo 'WantedBy=multi-user.target' >> ${tarbitratord_service_config}"
|
||||||
|
${csudo} systemctl enable tarbitratord
|
||||||
|
}
|
||||||
|
|
||||||
|
function install_service() {
|
||||||
|
if ((${service_mod}==0)); then
|
||||||
|
install_service_on_systemd
|
||||||
|
elif ((${service_mod}==1)); then
|
||||||
|
install_service_on_sysvinit
|
||||||
|
else
|
||||||
|
# must manual stop taosd
|
||||||
|
kill_tarbitrator
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function update_tq() {
|
||||||
|
# Start to update
|
||||||
|
echo -e "${GREEN}Start to update TQ's arbitrator ...${NC}"
|
||||||
|
# Stop the service if running
|
||||||
|
if pidof tarbitrator &> /dev/null; then
|
||||||
|
if ((${service_mod}==0)); then
|
||||||
|
${csudo} systemctl stop tarbitratord || :
|
||||||
|
elif ((${service_mod}==1)); then
|
||||||
|
${csudo} service tarbitratord stop || :
|
||||||
|
else
|
||||||
|
kill_tarbitrator
|
||||||
|
fi
|
||||||
|
sleep 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
install_main_path
|
||||||
|
#install_header
|
||||||
|
install_bin
|
||||||
|
install_service
|
||||||
|
|
||||||
|
echo
|
||||||
|
#echo -e "${GREEN_DARK}To configure TQ ${NC}: edit /etc/taos/taos.cfg"
|
||||||
|
if ((${service_mod}==0)); then
|
||||||
|
echo -e "${GREEN_DARK}To start arbitrator ${NC}: ${csudo} systemctl start tarbitratord${NC}"
|
||||||
|
elif ((${service_mod}==1)); then
|
||||||
|
echo -e "${GREEN_DARK}To start arbitrator ${NC}: ${csudo} service tarbitratord start${NC}"
|
||||||
|
else
|
||||||
|
echo -e "${GREEN_DARK}To start arbitrator ${NC}: ./tarbitrator${NC}"
|
||||||
|
fi
|
||||||
|
echo
|
||||||
|
echo -e "\033[44;32;1mTQ's arbitrator is updated successfully!${NC}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function install_tq() {
|
||||||
|
# Start to install
|
||||||
|
echo -e "${GREEN}Start to install TQ's arbitrator ...${NC}"
|
||||||
|
|
||||||
|
install_main_path
|
||||||
|
#install_header
|
||||||
|
install_bin
|
||||||
|
install_service
|
||||||
|
echo
|
||||||
|
#echo -e "${GREEN_DARK}To configure TQ ${NC}: edit /etc/taos/taos.cfg"
|
||||||
|
if ((${service_mod}==0)); then
|
||||||
|
echo -e "${GREEN_DARK}To start arbitrator ${NC}: ${csudo} systemctl start tarbitratord${NC}"
|
||||||
|
elif ((${service_mod}==1)); then
|
||||||
|
echo -e "${GREEN_DARK}To start arbitrator ${NC}: ${csudo} service tarbitratord start${NC}"
|
||||||
|
else
|
||||||
|
echo -e "${GREEN_DARK}To start arbitrator ${NC}: tarbitrator${NC}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo -e "\033[44;32;1mTQ's arbitrator is installed successfully!${NC}"
|
||||||
|
echo
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
## ==============================Main program starts from here============================
|
||||||
|
# Install server and client
|
||||||
|
if [ -x ${bin_dir}/tarbitrator ]; then
|
||||||
|
update_flag=1
|
||||||
|
update_tq
|
||||||
|
else
|
||||||
|
install_tq
|
||||||
|
fi
|
||||||
|
|
|
@ -119,16 +119,16 @@ function install_lib() {
|
||||||
if [ "$osType" != "Darwin" ]; then
|
if [ "$osType" != "Darwin" ]; then
|
||||||
${csudo} ln -s ${install_main_dir}/driver/libtaos.* ${lib_link_dir}/libtaos.so.1
|
${csudo} ln -s ${install_main_dir}/driver/libtaos.* ${lib_link_dir}/libtaos.so.1
|
||||||
${csudo} ln -s ${lib_link_dir}/libtaos.so.1 ${lib_link_dir}/libtaos.so
|
${csudo} ln -s ${lib_link_dir}/libtaos.so.1 ${lib_link_dir}/libtaos.so
|
||||||
|
|
||||||
if [ -d "${lib64_link_dir}" ]; then
|
if [ -d "${lib64_link_dir}" ]; then
|
||||||
${csudo} ln -s ${install_main_dir}/driver/libtaos.* ${lib64_link_dir}/libtaos.so.1 || :
|
${csudo} ln -s ${install_main_dir}/driver/libtaos.* ${lib64_link_dir}/libtaos.so.1 || :
|
||||||
${csudo} ln -s ${lib64_link_dir}/libtaos.so.1 ${lib64_link_dir}/libtaos.so || :
|
${csudo} ln -s ${lib64_link_dir}/libtaos.so.1 ${lib64_link_dir}/libtaos.so || :
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
${csudo} ln -s ${install_main_dir}/driver/libtaos.* ${lib_link_dir}/libtaos.1.dylib
|
${csudo} ln -s ${install_main_dir}/driver/libtaos.* ${lib_link_dir}/libtaos.1.dylib
|
||||||
${csudo} ln -s ${lib_link_dir}/libtaos.1.dylib ${lib_link_dir}/libtaos.dylib
|
${csudo} ln -s ${lib_link_dir}/libtaos.1.dylib ${lib_link_dir}/libtaos.dylib
|
||||||
fi
|
fi
|
||||||
|
|
||||||
${csudo} ldconfig
|
${csudo} ldconfig
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -139,6 +139,53 @@ function install_header() {
|
||||||
${csudo} ln -s ${install_main_dir}/include/taoserror.h ${inc_link_dir}/taoserror.h
|
${csudo} ln -s ${install_main_dir}/include/taoserror.h ${inc_link_dir}/taoserror.h
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function install_jemalloc() {
|
||||||
|
jemalloc_dir=${script_dir}/jemalloc
|
||||||
|
|
||||||
|
if [ -d ${jemalloc_dir} ]; then
|
||||||
|
${csudo} /usr/bin/install -c -d /usr/local/bin
|
||||||
|
|
||||||
|
if [ -f ${jemalloc_dir}/bin/jemalloc-config ]; then
|
||||||
|
${csudo} /usr/bin/install -c -m 755 ${jemalloc_dir}/bin/jemalloc-config /usr/local/bin
|
||||||
|
fi
|
||||||
|
if [ -f ${jemalloc_dir}/bin/jemalloc.sh ]; then
|
||||||
|
${csudo} /usr/bin/install -c -m 755 ${jemalloc_dir}/bin/jemalloc.sh /usr/local/bin
|
||||||
|
fi
|
||||||
|
if [ -f ${jemalloc_dir}/bin/jeprof ]; then
|
||||||
|
${csudo} /usr/bin/install -c -m 755 ${jemalloc_dir}/bin/jeprof /usr/local/bin
|
||||||
|
fi
|
||||||
|
if [ -f ${jemalloc_dir}/include/jemalloc/jemalloc.h ]; then
|
||||||
|
${csudo} /usr/bin/install -c -d /usr/local/include/jemalloc
|
||||||
|
${csudo} /usr/bin/install -c -m 644 ${jemalloc_dir}/include/jemalloc/jemalloc.h /usr/local/include/jemalloc
|
||||||
|
fi
|
||||||
|
if [ -f ${jemalloc_dir}/lib/libjemalloc.so.2 ]; then
|
||||||
|
${csudo} /usr/bin/install -c -d /usr/local/lib
|
||||||
|
${csudo} /usr/bin/install -c -m 755 ${jemalloc_dir}/lib/libjemalloc.so.2 /usr/local/lib
|
||||||
|
${csudo} ln -sf libjemalloc.so.2 /usr/local/lib/libjemalloc.so
|
||||||
|
${csudo} /usr/bin/install -c -d /usr/local/lib
|
||||||
|
if [ -f ${jemalloc_dir}/lib/libjemalloc.a ]; then
|
||||||
|
${csudo} /usr/bin/install -c -m 755 ${jemalloc_dir}/lib/libjemalloc.a /usr/local/lib
|
||||||
|
fi
|
||||||
|
if [ -f ${jemalloc_dir}/lib/libjemalloc_pic.a ]; then
|
||||||
|
${csudo} /usr/bin/install -c -m 755 ${jemalloc_dir}/lib/libjemalloc_pic.a /usr/local/lib
|
||||||
|
fi
|
||||||
|
if [ -f ${jemalloc_dir}/lib/libjemalloc_pic.a ]; then
|
||||||
|
${csudo} /usr/bin/install -c -d /usr/local/lib/pkgconfig
|
||||||
|
${csudo} /usr/bin/install -c -m 644 ${jemalloc_dir}/lib/pkgconfig/jemalloc.pc /usr/local/lib/pkgconfig
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [ -f ${jemalloc_dir}/share/doc/jemalloc/jemalloc.html ]; then
|
||||||
|
${csudo} /usr/bin/install -c -d /usr/local/share/doc/jemalloc
|
||||||
|
${csudo} /usr/bin/install -c -m 644 ${jemalloc_dir}/share/doc/jemalloc/jemalloc.html /usr/local/share/doc/jemalloc
|
||||||
|
fi
|
||||||
|
if [ -f ${jemalloc_dir}/share/man/man3/jemalloc.3 ]; then
|
||||||
|
${csudo} /usr/bin/install -c -d /usr/local/share/man/man3
|
||||||
|
${csudo} /usr/bin/install -c -m 644 ${jemalloc_dir}/share/man/man3/jemalloc.3 /usr/local/share/man/man3
|
||||||
|
fi
|
||||||
|
${csudo} ldconfig
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
function install_config() {
|
function install_config() {
|
||||||
#${csudo} rm -f ${install_main_dir}/cfg/taos.cfg || :
|
#${csudo} rm -f ${install_main_dir}/cfg/taos.cfg || :
|
||||||
|
|
||||||
|
@ -194,6 +241,7 @@ function update_TDengine() {
|
||||||
install_log
|
install_log
|
||||||
install_header
|
install_header
|
||||||
install_lib
|
install_lib
|
||||||
|
install_jemalloc
|
||||||
if [ "$pagMode" != "lite" ]; then
|
if [ "$pagMode" != "lite" ]; then
|
||||||
install_connector
|
install_connector
|
||||||
fi
|
fi
|
||||||
|
@ -217,10 +265,11 @@ function install_TDengine() {
|
||||||
|
|
||||||
echo -e "${GREEN}Start to install TDengine client...${NC}"
|
echo -e "${GREEN}Start to install TDengine client...${NC}"
|
||||||
|
|
||||||
install_main_path
|
install_main_path
|
||||||
install_log
|
install_log
|
||||||
install_header
|
install_header
|
||||||
install_lib
|
install_lib
|
||||||
|
install_jemalloc
|
||||||
if [ "$pagMode" != "lite" ]; then
|
if [ "$pagMode" != "lite" ]; then
|
||||||
install_connector
|
install_connector
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -119,16 +119,16 @@ function install_lib() {
|
||||||
if [ "$osType" != "Darwin" ]; then
|
if [ "$osType" != "Darwin" ]; then
|
||||||
${csudo} ln -s ${install_main_dir}/driver/libtaos.* ${lib_link_dir}/libtaos.so.1
|
${csudo} ln -s ${install_main_dir}/driver/libtaos.* ${lib_link_dir}/libtaos.so.1
|
||||||
${csudo} ln -s ${lib_link_dir}/libtaos.so.1 ${lib_link_dir}/libtaos.so
|
${csudo} ln -s ${lib_link_dir}/libtaos.so.1 ${lib_link_dir}/libtaos.so
|
||||||
|
|
||||||
if [ -d "${lib64_link_dir}" ]; then
|
if [ -d "${lib64_link_dir}" ]; then
|
||||||
${csudo} ln -s ${install_main_dir}/driver/libtaos.* ${lib64_link_dir}/libtaos.so.1 || :
|
${csudo} ln -s ${install_main_dir}/driver/libtaos.* ${lib64_link_dir}/libtaos.so.1 || :
|
||||||
${csudo} ln -s ${lib64_link_dir}/libtaos.so.1 ${lib64_link_dir}/libtaos.so || :
|
${csudo} ln -s ${lib64_link_dir}/libtaos.so.1 ${lib64_link_dir}/libtaos.so || :
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
${csudo} ln -s ${install_main_dir}/driver/libtaos.* ${lib_link_dir}/libtaos.1.dylib
|
${csudo} ln -s ${install_main_dir}/driver/libtaos.* ${lib_link_dir}/libtaos.1.dylib
|
||||||
${csudo} ln -s ${lib_link_dir}/libtaos.1.dylib ${lib_link_dir}/libtaos.dylib
|
${csudo} ln -s ${lib_link_dir}/libtaos.1.dylib ${lib_link_dir}/libtaos.dylib
|
||||||
fi
|
fi
|
||||||
|
|
||||||
${csudo} ldconfig
|
${csudo} ldconfig
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -139,6 +139,53 @@ function install_header() {
|
||||||
${csudo} ln -s ${install_main_dir}/include/taoserror.h ${inc_link_dir}/taoserror.h
|
${csudo} ln -s ${install_main_dir}/include/taoserror.h ${inc_link_dir}/taoserror.h
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function install_jemalloc() {
|
||||||
|
jemalloc_dir=${script_dir}/jemalloc
|
||||||
|
|
||||||
|
if [ -d ${jemalloc_dir} ]; then
|
||||||
|
${csudo} /usr/bin/install -c -d /usr/local/bin
|
||||||
|
|
||||||
|
if [ -f ${jemalloc_dir}/bin/jemalloc-config ]; then
|
||||||
|
${csudo} /usr/bin/install -c -m 755 ${jemalloc_dir}/bin/jemalloc-config /usr/local/bin
|
||||||
|
fi
|
||||||
|
if [ -f ${jemalloc_dir}/bin/jemalloc.sh ]; then
|
||||||
|
${csudo} /usr/bin/install -c -m 755 ${jemalloc_dir}/bin/jemalloc.sh /usr/local/bin
|
||||||
|
fi
|
||||||
|
if [ -f ${jemalloc_dir}/bin/jeprof ]; then
|
||||||
|
${csudo} /usr/bin/install -c -m 755 ${jemalloc_dir}/bin/jeprof /usr/local/bin
|
||||||
|
fi
|
||||||
|
if [ -f ${jemalloc_dir}/include/jemalloc/jemalloc.h ]; then
|
||||||
|
${csudo} /usr/bin/install -c -d /usr/local/include/jemalloc
|
||||||
|
${csudo} /usr/bin/install -c -m 644 ${jemalloc_dir}/include/jemalloc/jemalloc.h /usr/local/include/jemalloc
|
||||||
|
fi
|
||||||
|
if [ -f ${jemalloc_dir}/lib/libjemalloc.so.2 ]; then
|
||||||
|
${csudo} /usr/bin/install -c -d /usr/local/lib
|
||||||
|
${csudo} /usr/bin/install -c -m 755 ${jemalloc_dir}/lib/libjemalloc.so.2 /usr/local/lib
|
||||||
|
${csudo} ln -sf libjemalloc.so.2 /usr/local/lib/libjemalloc.so
|
||||||
|
${csudo} /usr/bin/install -c -d /usr/local/lib
|
||||||
|
if [ -f ${jemalloc_dir}/lib/libjemalloc.a ]; then
|
||||||
|
${csudo} /usr/bin/install -c -m 755 ${jemalloc_dir}/lib/libjemalloc.a /usr/local/lib
|
||||||
|
fi
|
||||||
|
if [ -f ${jemalloc_dir}/lib/libjemalloc_pic.a ]; then
|
||||||
|
${csudo} /usr/bin/install -c -m 755 ${jemalloc_dir}/lib/libjemalloc_pic.a /usr/local/lib
|
||||||
|
fi
|
||||||
|
if [ -f ${jemalloc_dir}/lib/libjemalloc_pic.a ]; then
|
||||||
|
${csudo} /usr/bin/install -c -d /usr/local/lib/pkgconfig
|
||||||
|
${csudo} /usr/bin/install -c -m 644 ${jemalloc_dir}/lib/pkgconfig/jemalloc.pc /usr/local/lib/pkgconfig
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [ -f ${jemalloc_dir}/share/doc/jemalloc/jemalloc.html ]; then
|
||||||
|
${csudo} /usr/bin/install -c -d /usr/local/share/doc/jemalloc
|
||||||
|
${csudo} /usr/bin/install -c -m 644 ${jemalloc_dir}/share/doc/jemalloc/jemalloc.html /usr/local/share/doc/jemalloc
|
||||||
|
fi
|
||||||
|
if [ -f ${jemalloc_dir}/share/man/man3/jemalloc.3 ]; then
|
||||||
|
${csudo} /usr/bin/install -c -d /usr/local/share/man/man3
|
||||||
|
${csudo} /usr/bin/install -c -m 644 ${jemalloc_dir}/share/man/man3/jemalloc.3 /usr/local/share/man/man3
|
||||||
|
fi
|
||||||
|
${csudo} ldconfig
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
function install_config() {
|
function install_config() {
|
||||||
#${csudo} rm -f ${install_main_dir}/cfg/taos.cfg || :
|
#${csudo} rm -f ${install_main_dir}/cfg/taos.cfg || :
|
||||||
|
|
||||||
|
@ -194,6 +241,7 @@ function update_PowerDB() {
|
||||||
install_log
|
install_log
|
||||||
install_header
|
install_header
|
||||||
install_lib
|
install_lib
|
||||||
|
install_jemalloc
|
||||||
if [ "$pagMode" != "lite" ]; then
|
if [ "$pagMode" != "lite" ]; then
|
||||||
install_connector
|
install_connector
|
||||||
fi
|
fi
|
||||||
|
@ -217,10 +265,11 @@ function install_PowerDB() {
|
||||||
|
|
||||||
echo -e "${GREEN}Start to install PowerDB client...${NC}"
|
echo -e "${GREEN}Start to install PowerDB client...${NC}"
|
||||||
|
|
||||||
install_main_path
|
install_main_path
|
||||||
install_log
|
install_log
|
||||||
install_header
|
install_header
|
||||||
install_lib
|
install_lib
|
||||||
|
install_jemalloc
|
||||||
if [ "$pagMode" != "lite" ]; then
|
if [ "$pagMode" != "lite" ]; then
|
||||||
install_connector
|
install_connector
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -0,0 +1,251 @@
|
||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# This file is used to install TQ client on linux systems. The operating system
|
||||||
|
# is required to use systemd to manage services at boot
|
||||||
|
|
||||||
|
set -e
|
||||||
|
#set -x
|
||||||
|
|
||||||
|
# -----------------------Variables definition---------------------
|
||||||
|
|
||||||
|
osType=Linux
|
||||||
|
pagMode=full
|
||||||
|
|
||||||
|
if [ "$osType" != "Darwin" ]; then
|
||||||
|
script_dir=$(dirname $(readlink -f "$0"))
|
||||||
|
# Dynamic directory
|
||||||
|
data_dir="/var/lib/tq"
|
||||||
|
log_dir="/var/log/tq"
|
||||||
|
else
|
||||||
|
script_dir=`dirname $0`
|
||||||
|
cd ${script_dir}
|
||||||
|
script_dir="$(pwd)"
|
||||||
|
data_dir="/var/lib/tq"
|
||||||
|
log_dir="~/TQLog"
|
||||||
|
fi
|
||||||
|
|
||||||
|
log_link_dir="/usr/local/tq/log"
|
||||||
|
|
||||||
|
cfg_install_dir="/etc/tq"
|
||||||
|
|
||||||
|
if [ "$osType" != "Darwin" ]; then
|
||||||
|
bin_link_dir="/usr/bin"
|
||||||
|
lib_link_dir="/usr/lib"
|
||||||
|
lib64_link_dir="/usr/lib64"
|
||||||
|
inc_link_dir="/usr/include"
|
||||||
|
else
|
||||||
|
bin_link_dir="/usr/local/bin"
|
||||||
|
lib_link_dir="/usr/local/lib"
|
||||||
|
inc_link_dir="/usr/local/include"
|
||||||
|
fi
|
||||||
|
|
||||||
|
#install main path
|
||||||
|
install_main_dir="/usr/local/tq"
|
||||||
|
|
||||||
|
# old bin dir
|
||||||
|
bin_dir="/usr/local/tq/bin"
|
||||||
|
|
||||||
|
# v1.5 jar dir
|
||||||
|
#v15_java_app_dir="/usr/local/lib/tq"
|
||||||
|
|
||||||
|
# Color setting
|
||||||
|
RED='\033[0;31m'
|
||||||
|
GREEN='\033[1;32m'
|
||||||
|
GREEN_DARK='\033[0;32m'
|
||||||
|
GREEN_UNDERLINE='\033[4;32m'
|
||||||
|
NC='\033[0m'
|
||||||
|
|
||||||
|
csudo=""
|
||||||
|
if command -v sudo > /dev/null; then
|
||||||
|
csudo="sudo"
|
||||||
|
fi
|
||||||
|
|
||||||
|
update_flag=0
|
||||||
|
|
||||||
|
function kill_client() {
|
||||||
|
pid=$(ps -ef | grep "tq" | grep -v "grep" | awk '{print $2}')
|
||||||
|
if [ -n "$pid" ]; then
|
||||||
|
${csudo} kill -9 $pid || :
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function install_main_path() {
|
||||||
|
#create install main dir and all sub dir
|
||||||
|
${csudo} rm -rf ${install_main_dir} || :
|
||||||
|
${csudo} mkdir -p ${install_main_dir}
|
||||||
|
${csudo} mkdir -p ${install_main_dir}/cfg
|
||||||
|
${csudo} mkdir -p ${install_main_dir}/bin
|
||||||
|
${csudo} mkdir -p ${install_main_dir}/connector
|
||||||
|
${csudo} mkdir -p ${install_main_dir}/driver
|
||||||
|
${csudo} mkdir -p ${install_main_dir}/examples
|
||||||
|
${csudo} mkdir -p ${install_main_dir}/include
|
||||||
|
}
|
||||||
|
|
||||||
|
function install_bin() {
|
||||||
|
# Remove links
|
||||||
|
${csudo} rm -f ${bin_link_dir}/tq || :
|
||||||
|
if [ "$osType" != "Darwin" ]; then
|
||||||
|
${csudo} rm -f ${bin_link_dir}/tqdemo || :
|
||||||
|
${csudo} rm -f ${bin_link_dir}/tqdump || :
|
||||||
|
fi
|
||||||
|
${csudo} rm -f ${bin_link_dir}/rmtq || :
|
||||||
|
${csudo} rm -f ${bin_link_dir}/set_core || :
|
||||||
|
|
||||||
|
${csudo} cp -r ${script_dir}/bin/* ${install_main_dir}/bin && ${csudo} chmod 0555 ${install_main_dir}/bin/*
|
||||||
|
|
||||||
|
#Make link
|
||||||
|
[ -x ${install_main_dir}/bin/tq ] && ${csudo} ln -s ${install_main_dir}/bin/tq ${bin_link_dir}/tq || :
|
||||||
|
if [ "$osType" != "Darwin" ]; then
|
||||||
|
[ -x ${install_main_dir}/bin/tqdemo ] && ${csudo} ln -s ${install_main_dir}/bin/tqdemo ${bin_link_dir}/tqdemo || :
|
||||||
|
[ -x ${install_main_dir}/bin/tqdump ] && ${csudo} ln -s ${install_main_dir}/bin/tqdump ${bin_link_dir}/tqdump || :
|
||||||
|
fi
|
||||||
|
[ -x ${install_main_dir}/bin/remove_client_tq.sh ] && ${csudo} ln -s ${install_main_dir}/bin/remove_client_tq.sh ${bin_link_dir}/rmtq || :
|
||||||
|
[ -x ${install_main_dir}/bin/set_core.sh ] && ${csudo} ln -s ${install_main_dir}/bin/set_core.sh ${bin_link_dir}/set_core || :
|
||||||
|
}
|
||||||
|
|
||||||
|
function clean_lib() {
|
||||||
|
sudo rm -f /usr/lib/libtaos.* || :
|
||||||
|
sudo rm -rf ${lib_dir} || :
|
||||||
|
}
|
||||||
|
|
||||||
|
function install_lib() {
|
||||||
|
# Remove links
|
||||||
|
${csudo} rm -f ${lib_link_dir}/libtaos.* || :
|
||||||
|
${csudo} rm -f ${lib64_link_dir}/libtaos.* || :
|
||||||
|
#${csudo} rm -rf ${v15_java_app_dir} || :
|
||||||
|
|
||||||
|
${csudo} cp -rf ${script_dir}/driver/* ${install_main_dir}/driver && ${csudo} chmod 777 ${install_main_dir}/driver/*
|
||||||
|
|
||||||
|
if [ "$osType" != "Darwin" ]; then
|
||||||
|
${csudo} ln -s ${install_main_dir}/driver/libtaos.* ${lib_link_dir}/libtaos.so.1
|
||||||
|
${csudo} ln -s ${lib_link_dir}/libtaos.so.1 ${lib_link_dir}/libtaos.so
|
||||||
|
|
||||||
|
if [ -d "${lib64_link_dir}" ]; then
|
||||||
|
${csudo} ln -s ${install_main_dir}/driver/libtaos.* ${lib64_link_dir}/libtaos.so.1 || :
|
||||||
|
${csudo} ln -s ${lib64_link_dir}/libtaos.so.1 ${lib64_link_dir}/libtaos.so || :
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
${csudo} ln -s ${install_main_dir}/driver/libtaos.* ${lib_link_dir}/libtaos.1.dylib
|
||||||
|
${csudo} ln -s ${lib_link_dir}/libtaos.1.dylib ${lib_link_dir}/libtaos.dylib
|
||||||
|
fi
|
||||||
|
|
||||||
|
${csudo} ldconfig
|
||||||
|
}
|
||||||
|
|
||||||
|
function install_header() {
|
||||||
|
${csudo} rm -f ${inc_link_dir}/taos.h ${inc_link_dir}/taoserror.h || :
|
||||||
|
${csudo} cp -f ${script_dir}/inc/* ${install_main_dir}/include && ${csudo} chmod 644 ${install_main_dir}/include/*
|
||||||
|
${csudo} ln -s ${install_main_dir}/include/taos.h ${inc_link_dir}/taos.h
|
||||||
|
${csudo} ln -s ${install_main_dir}/include/taoserror.h ${inc_link_dir}/taoserror.h
|
||||||
|
}
|
||||||
|
|
||||||
|
function install_config() {
|
||||||
|
#${csudo} rm -f ${install_main_dir}/cfg/taos.cfg || :
|
||||||
|
|
||||||
|
if [ ! -f ${cfg_install_dir}/taos.cfg ]; then
|
||||||
|
${csudo} mkdir -p ${cfg_install_dir}
|
||||||
|
[ -f ${script_dir}/cfg/taos.cfg ] && ${csudo} cp ${script_dir}/cfg/taos.cfg ${cfg_install_dir}
|
||||||
|
${csudo} chmod 644 ${cfg_install_dir}/*
|
||||||
|
fi
|
||||||
|
|
||||||
|
${csudo} cp -f ${script_dir}/cfg/taos.cfg ${install_main_dir}/cfg/taos.cfg.org
|
||||||
|
${csudo} ln -s ${cfg_install_dir}/taos.cfg ${install_main_dir}/cfg
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function install_log() {
|
||||||
|
${csudo} rm -rf ${log_dir} || :
|
||||||
|
|
||||||
|
if [ "$osType" != "Darwin" ]; then
|
||||||
|
${csudo} mkdir -p ${log_dir} && ${csudo} chmod 777 ${log_dir}
|
||||||
|
else
|
||||||
|
mkdir -p ${log_dir} && ${csudo} chmod 777 ${log_dir}
|
||||||
|
fi
|
||||||
|
${csudo} ln -s ${log_dir} ${install_main_dir}/log
|
||||||
|
}
|
||||||
|
|
||||||
|
function install_connector() {
|
||||||
|
${csudo} cp -rf ${script_dir}/connector/* ${install_main_dir}/connector
|
||||||
|
}
|
||||||
|
|
||||||
|
function install_examples() {
|
||||||
|
if [ -d ${script_dir}/examples ]; then
|
||||||
|
${csudo} cp -rf ${script_dir}/examples/* ${install_main_dir}/examples
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function update_tq() {
|
||||||
|
# Start to update
|
||||||
|
if [ ! -e tq.tar.gz ]; then
|
||||||
|
echo "File tq.tar.gz does not exist"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
tar -zxf tq.tar.gz
|
||||||
|
|
||||||
|
echo -e "${GREEN}Start to update TQ client...${NC}"
|
||||||
|
# Stop the client shell if running
|
||||||
|
if pidof tq &> /dev/null; then
|
||||||
|
kill_client
|
||||||
|
sleep 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
install_main_path
|
||||||
|
|
||||||
|
install_log
|
||||||
|
install_header
|
||||||
|
install_lib
|
||||||
|
if [ "$pagMode" != "lite" ]; then
|
||||||
|
install_connector
|
||||||
|
fi
|
||||||
|
install_examples
|
||||||
|
install_bin
|
||||||
|
install_config
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo -e "\033[44;32;1mTQ client is updated successfully!${NC}"
|
||||||
|
|
||||||
|
rm -rf $(tar -tf tq.tar.gz)
|
||||||
|
}
|
||||||
|
|
||||||
|
function install_tq() {
|
||||||
|
# Start to install
|
||||||
|
if [ ! -e tq.tar.gz ]; then
|
||||||
|
echo "File tq.tar.gz does not exist"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
tar -zxf tq.tar.gz
|
||||||
|
|
||||||
|
echo -e "${GREEN}Start to install TQ client...${NC}"
|
||||||
|
|
||||||
|
install_main_path
|
||||||
|
install_log
|
||||||
|
install_header
|
||||||
|
install_lib
|
||||||
|
if [ "$pagMode" != "lite" ]; then
|
||||||
|
install_connector
|
||||||
|
fi
|
||||||
|
install_examples
|
||||||
|
install_bin
|
||||||
|
install_config
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo -e "\033[44;32;1mTQ client is installed successfully!${NC}"
|
||||||
|
|
||||||
|
rm -rf $(tar -tf tq.tar.gz)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
## ==============================Main program starts from here============================
|
||||||
|
# Install or updata client and client
|
||||||
|
# if server is already install, don't install client
|
||||||
|
if [ -e ${bin_dir}/tqd ]; then
|
||||||
|
echo -e "\033[44;32;1mThere are already installed TQ server, so don't need install client!${NC}"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -x ${bin_dir}/tq ]; then
|
||||||
|
update_flag=1
|
||||||
|
update_tq
|
||||||
|
else
|
||||||
|
install_tq
|
||||||
|
fi
|
|
@ -58,11 +58,11 @@ initd_mod=0
|
||||||
service_mod=2
|
service_mod=2
|
||||||
if pidof systemd &> /dev/null; then
|
if pidof systemd &> /dev/null; then
|
||||||
service_mod=0
|
service_mod=0
|
||||||
elif $(which service &> /dev/null); then
|
elif $(which service &> /dev/null); then
|
||||||
service_mod=1
|
service_mod=1
|
||||||
service_config_dir="/etc/init.d"
|
service_config_dir="/etc/init.d"
|
||||||
if $(which chkconfig &> /dev/null); then
|
if $(which chkconfig &> /dev/null); then
|
||||||
initd_mod=1
|
initd_mod=1
|
||||||
elif $(which insserv &> /dev/null); then
|
elif $(which insserv &> /dev/null); then
|
||||||
initd_mod=2
|
initd_mod=2
|
||||||
elif $(which update-rc.d &> /dev/null); then
|
elif $(which update-rc.d &> /dev/null); then
|
||||||
|
@ -70,7 +70,7 @@ elif $(which service &> /dev/null); then
|
||||||
else
|
else
|
||||||
service_mod=2
|
service_mod=2
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
service_mod=2
|
service_mod=2
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -102,7 +102,7 @@ elif echo $osinfo | grep -qwi "fedora" ; then
|
||||||
os_type=2
|
os_type=2
|
||||||
else
|
else
|
||||||
echo " osinfo: ${osinfo}"
|
echo " osinfo: ${osinfo}"
|
||||||
echo " This is an officially unverified linux system,"
|
echo " This is an officially unverified linux system,"
|
||||||
echo " if there are any problems with the installation and operation, "
|
echo " if there are any problems with the installation and operation, "
|
||||||
echo " please feel free to contact taosdata.com for support."
|
echo " please feel free to contact taosdata.com for support."
|
||||||
os_type=1
|
os_type=1
|
||||||
|
@ -137,7 +137,7 @@ do
|
||||||
echo "Usage: `basename $0` -v [server | client] -e [yes | no]"
|
echo "Usage: `basename $0` -v [server | client] -e [yes | no]"
|
||||||
exit 0
|
exit 0
|
||||||
;;
|
;;
|
||||||
?) #unknow option
|
?) #unknow option
|
||||||
echo "unkonw argument"
|
echo "unkonw argument"
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
|
@ -156,9 +156,9 @@ function kill_process() {
|
||||||
function install_main_path() {
|
function install_main_path() {
|
||||||
#create install main dir and all sub dir
|
#create install main dir and all sub dir
|
||||||
${csudo} rm -rf ${install_main_dir} || :
|
${csudo} rm -rf ${install_main_dir} || :
|
||||||
${csudo} mkdir -p ${install_main_dir}
|
${csudo} mkdir -p ${install_main_dir}
|
||||||
${csudo} mkdir -p ${install_main_dir}/cfg
|
${csudo} mkdir -p ${install_main_dir}/cfg
|
||||||
${csudo} mkdir -p ${install_main_dir}/bin
|
${csudo} mkdir -p ${install_main_dir}/bin
|
||||||
${csudo} mkdir -p ${install_main_dir}/connector
|
${csudo} mkdir -p ${install_main_dir}/connector
|
||||||
${csudo} mkdir -p ${install_main_dir}/driver
|
${csudo} mkdir -p ${install_main_dir}/driver
|
||||||
${csudo} mkdir -p ${install_main_dir}/examples
|
${csudo} mkdir -p ${install_main_dir}/examples
|
||||||
|
@ -200,29 +200,76 @@ function install_lib() {
|
||||||
${csudo} rm -f ${lib_link_dir}/libtaos.* || :
|
${csudo} rm -f ${lib_link_dir}/libtaos.* || :
|
||||||
${csudo} rm -f ${lib64_link_dir}/libtaos.* || :
|
${csudo} rm -f ${lib64_link_dir}/libtaos.* || :
|
||||||
#${csudo} rm -rf ${v15_java_app_dir} || :
|
#${csudo} rm -rf ${v15_java_app_dir} || :
|
||||||
${csudo} cp -rf ${script_dir}/driver/* ${install_main_dir}/driver && ${csudo} chmod 777 ${install_main_dir}/driver/*
|
${csudo} cp -rf ${script_dir}/driver/* ${install_main_dir}/driver && ${csudo} chmod 777 ${install_main_dir}/driver/*
|
||||||
|
|
||||||
${csudo} ln -s ${install_main_dir}/driver/libtaos.* ${lib_link_dir}/libtaos.so.1
|
${csudo} ln -s ${install_main_dir}/driver/libtaos.* ${lib_link_dir}/libtaos.so.1
|
||||||
${csudo} ln -s ${lib_link_dir}/libtaos.so.1 ${lib_link_dir}/libtaos.so
|
${csudo} ln -s ${lib_link_dir}/libtaos.so.1 ${lib_link_dir}/libtaos.so
|
||||||
|
|
||||||
if [[ -d ${lib64_link_dir} && ! -e ${lib64_link_dir}/libtaos.so ]]; then
|
if [[ -d ${lib64_link_dir} && ! -e ${lib64_link_dir}/libtaos.so ]]; then
|
||||||
${csudo} ln -s ${install_main_dir}/driver/libtaos.* ${lib64_link_dir}/libtaos.so.1 || :
|
${csudo} ln -s ${install_main_dir}/driver/libtaos.* ${lib64_link_dir}/libtaos.so.1 || :
|
||||||
${csudo} ln -s ${lib64_link_dir}/libtaos.so.1 ${lib64_link_dir}/libtaos.so || :
|
${csudo} ln -s ${lib64_link_dir}/libtaos.so.1 ${lib64_link_dir}/libtaos.so || :
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#if [ "$verMode" == "cluster" ]; then
|
#if [ "$verMode" == "cluster" ]; then
|
||||||
# # Compatible with version 1.5
|
# # Compatible with version 1.5
|
||||||
# ${csudo} mkdir -p ${v15_java_app_dir}
|
# ${csudo} mkdir -p ${v15_java_app_dir}
|
||||||
# ${csudo} ln -s ${install_main_dir}/connector/taos-jdbcdriver-1.0.2-dist.jar ${v15_java_app_dir}/JDBCDriver-1.0.2-dist.jar
|
# ${csudo} ln -s ${install_main_dir}/connector/taos-jdbcdriver-1.0.2-dist.jar ${v15_java_app_dir}/JDBCDriver-1.0.2-dist.jar
|
||||||
# ${csudo} chmod 777 ${v15_java_app_dir} || :
|
# ${csudo} chmod 777 ${v15_java_app_dir} || :
|
||||||
#fi
|
#fi
|
||||||
|
|
||||||
${csudo} ldconfig
|
${csudo} ldconfig
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function install_jemalloc() {
|
||||||
|
jemalloc_dir=${script_dir}/jemalloc
|
||||||
|
|
||||||
|
if [ -d ${jemalloc_dir} ]; then
|
||||||
|
${csudo} /usr/bin/install -c -d /usr/local/bin
|
||||||
|
|
||||||
|
if [ -f ${jemalloc_dir}/bin/jemalloc-config ]; then
|
||||||
|
${csudo} /usr/bin/install -c -m 755 ${jemalloc_dir}/bin/jemalloc-config /usr/local/bin
|
||||||
|
fi
|
||||||
|
if [ -f ${jemalloc_dir}/bin/jemalloc.sh ]; then
|
||||||
|
${csudo} /usr/bin/install -c -m 755 ${jemalloc_dir}/bin/jemalloc.sh /usr/local/bin
|
||||||
|
fi
|
||||||
|
if [ -f ${jemalloc_dir}/bin/jeprof ]; then
|
||||||
|
${csudo} /usr/bin/install -c -m 755 ${jemalloc_dir}/bin/jeprof /usr/local/bin
|
||||||
|
fi
|
||||||
|
if [ -f ${jemalloc_dir}/include/jemalloc/jemalloc.h ]; then
|
||||||
|
${csudo} /usr/bin/install -c -d /usr/local/include/jemalloc
|
||||||
|
${csudo} /usr/bin/install -c -m 644 ${jemalloc_dir}/include/jemalloc/jemalloc.h /usr/local/include/jemalloc
|
||||||
|
fi
|
||||||
|
if [ -f ${jemalloc_dir}/lib/libjemalloc.so.2 ]; then
|
||||||
|
${csudo} /usr/bin/install -c -d /usr/local/lib
|
||||||
|
${csudo} /usr/bin/install -c -m 755 ${jemalloc_dir}/lib/libjemalloc.so.2 /usr/local/lib
|
||||||
|
${csudo} ln -sf libjemalloc.so.2 /usr/local/lib/libjemalloc.so
|
||||||
|
${csudo} /usr/bin/install -c -d /usr/local/lib
|
||||||
|
if [ -f ${jemalloc_dir}/lib/libjemalloc.a ]; then
|
||||||
|
${csudo} /usr/bin/install -c -m 755 ${jemalloc_dir}/lib/libjemalloc.a /usr/local/lib
|
||||||
|
fi
|
||||||
|
if [ -f ${jemalloc_dir}/lib/libjemalloc_pic.a ]; then
|
||||||
|
${csudo} /usr/bin/install -c -m 755 ${jemalloc_dir}/lib/libjemalloc_pic.a /usr/local/lib
|
||||||
|
fi
|
||||||
|
if [ -f ${jemalloc_dir}/lib/libjemalloc_pic.a ]; then
|
||||||
|
${csudo} /usr/bin/install -c -d /usr/local/lib/pkgconfig
|
||||||
|
${csudo} /usr/bin/install -c -m 644 ${jemalloc_dir}/lib/pkgconfig/jemalloc.pc /usr/local/lib/pkgconfig
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [ -f ${jemalloc_dir}/share/doc/jemalloc/jemalloc.html ]; then
|
||||||
|
${csudo} /usr/bin/install -c -d /usr/local/share/doc/jemalloc
|
||||||
|
${csudo} /usr/bin/install -c -m 644 ${jemalloc_dir}/share/doc/jemalloc/jemalloc.html /usr/local/share/doc/jemalloc
|
||||||
|
fi
|
||||||
|
if [ -f ${jemalloc_dir}/share/man/man3/jemalloc.3 ]; then
|
||||||
|
${csudo} /usr/bin/install -c -d /usr/local/share/man/man3
|
||||||
|
${csudo} /usr/bin/install -c -m 644 ${jemalloc_dir}/share/man/man3/jemalloc.3 /usr/local/share/man/man3
|
||||||
|
fi
|
||||||
|
${csudo} ldconfig
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
function install_header() {
|
function install_header() {
|
||||||
${csudo} rm -f ${inc_link_dir}/taos.h ${inc_link_dir}/taoserror.h || :
|
${csudo} rm -f ${inc_link_dir}/taos.h ${inc_link_dir}/taoserror.h || :
|
||||||
${csudo} cp -f ${script_dir}/inc/* ${install_main_dir}/include && ${csudo} chmod 644 ${install_main_dir}/include/*
|
${csudo} cp -f ${script_dir}/inc/* ${install_main_dir}/include && ${csudo} chmod 644 ${install_main_dir}/include/*
|
||||||
${csudo} ln -s ${install_main_dir}/include/taos.h ${inc_link_dir}/taos.h
|
${csudo} ln -s ${install_main_dir}/include/taos.h ${inc_link_dir}/taos.h
|
||||||
${csudo} ln -s ${install_main_dir}/include/taoserror.h ${inc_link_dir}/taoserror.h
|
${csudo} ln -s ${install_main_dir}/include/taoserror.h ${inc_link_dir}/taoserror.h
|
||||||
}
|
}
|
||||||
|
@ -239,13 +286,13 @@ function add_newHostname_to_hosts() {
|
||||||
if [[ "$s" == "$localIp" ]]; then
|
if [[ "$s" == "$localIp" ]]; then
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
${csudo} echo "127.0.0.1 $1" >> /etc/hosts ||:
|
${csudo} echo "127.0.0.1 $1" >> /etc/hosts ||:
|
||||||
}
|
}
|
||||||
|
|
||||||
function set_hostname() {
|
function set_hostname() {
|
||||||
echo -e -n "${GREEN}Please enter one hostname(must not be 'localhost')${NC}:"
|
echo -e -n "${GREEN}Please enter one hostname(must not be 'localhost')${NC}:"
|
||||||
read newHostname
|
read newHostname
|
||||||
while true; do
|
while true; do
|
||||||
if [[ ! -z "$newHostname" && "$newHostname" != "localhost" ]]; then
|
if [[ ! -z "$newHostname" && "$newHostname" != "localhost" ]]; then
|
||||||
break
|
break
|
||||||
|
@ -259,25 +306,25 @@ function set_hostname() {
|
||||||
if [[ $retval != 0 ]]; then
|
if [[ $retval != 0 ]]; then
|
||||||
echo
|
echo
|
||||||
echo "set hostname fail!"
|
echo "set hostname fail!"
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
#echo -e -n "$(hostnamectl status --static)"
|
#echo -e -n "$(hostnamectl status --static)"
|
||||||
#echo -e -n "$(hostnamectl status --transient)"
|
#echo -e -n "$(hostnamectl status --transient)"
|
||||||
#echo -e -n "$(hostnamectl status --pretty)"
|
#echo -e -n "$(hostnamectl status --pretty)"
|
||||||
|
|
||||||
#ubuntu/centos /etc/hostname
|
#ubuntu/centos /etc/hostname
|
||||||
if [[ -e /etc/hostname ]]; then
|
if [[ -e /etc/hostname ]]; then
|
||||||
${csudo} echo $newHostname > /etc/hostname ||:
|
${csudo} echo $newHostname > /etc/hostname ||:
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#debian: #HOSTNAME=yourname
|
#debian: #HOSTNAME=yourname
|
||||||
if [[ -e /etc/sysconfig/network ]]; then
|
if [[ -e /etc/sysconfig/network ]]; then
|
||||||
${csudo} sed -i -r "s/#*\s*(HOSTNAME=\s*).*/\1$newHostname/" /etc/sysconfig/network ||:
|
${csudo} sed -i -r "s/#*\s*(HOSTNAME=\s*).*/\1$newHostname/" /etc/sysconfig/network ||:
|
||||||
fi
|
fi
|
||||||
|
|
||||||
${csudo} sed -i -r "s/#*\s*(fqdn\s*).*/\1$newHostname/" ${cfg_install_dir}/taos.cfg
|
${csudo} sed -i -r "s/#*\s*(fqdn\s*).*/\1$newHostname/" ${cfg_install_dir}/taos.cfg
|
||||||
serverFqdn=$newHostname
|
serverFqdn=$newHostname
|
||||||
|
|
||||||
if [[ -e /etc/hosts ]]; then
|
if [[ -e /etc/hosts ]]; then
|
||||||
add_newHostname_to_hosts $newHostname
|
add_newHostname_to_hosts $newHostname
|
||||||
fi
|
fi
|
||||||
|
@ -295,7 +342,7 @@ function is_correct_ipaddr() {
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -309,13 +356,13 @@ function set_ipAsFqdn() {
|
||||||
echo
|
echo
|
||||||
echo -e -n "${GREEN}Unable to get local ip, use 127.0.0.1${NC}"
|
echo -e -n "${GREEN}Unable to get local ip, use 127.0.0.1${NC}"
|
||||||
localFqdn="127.0.0.1"
|
localFqdn="127.0.0.1"
|
||||||
# Write the local FQDN to configuration file
|
# Write the local FQDN to configuration file
|
||||||
${csudo} sed -i -r "s/#*\s*(fqdn\s*).*/\1$localFqdn/" ${cfg_install_dir}/taos.cfg
|
${csudo} sed -i -r "s/#*\s*(fqdn\s*).*/\1$localFqdn/" ${cfg_install_dir}/taos.cfg
|
||||||
serverFqdn=$localFqdn
|
serverFqdn=$localFqdn
|
||||||
echo
|
echo
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo -e -n "${GREEN}Please choose an IP from local IP list${NC}:"
|
echo -e -n "${GREEN}Please choose an IP from local IP list${NC}:"
|
||||||
echo
|
echo
|
||||||
echo -e -n "${GREEN}$iplist${NC}"
|
echo -e -n "${GREEN}$iplist${NC}"
|
||||||
|
@ -324,15 +371,15 @@ function set_ipAsFqdn() {
|
||||||
echo -e -n "${GREEN}Notes: if IP is used as the node name, data can NOT be migrated to other machine directly${NC}:"
|
echo -e -n "${GREEN}Notes: if IP is used as the node name, data can NOT be migrated to other machine directly${NC}:"
|
||||||
read localFqdn
|
read localFqdn
|
||||||
while true; do
|
while true; do
|
||||||
if [ ! -z "$localFqdn" ]; then
|
if [ ! -z "$localFqdn" ]; then
|
||||||
# Check if correct ip address
|
# Check if correct ip address
|
||||||
is_correct_ipaddr $localFqdn
|
is_correct_ipaddr $localFqdn
|
||||||
retval=`echo $?`
|
retval=`echo $?`
|
||||||
if [[ $retval != 0 ]]; then
|
if [[ $retval != 0 ]]; then
|
||||||
read -p "Please choose an IP from local IP list:" localFqdn
|
read -p "Please choose an IP from local IP list:" localFqdn
|
||||||
else
|
else
|
||||||
# Write the local FQDN to configuration file
|
# Write the local FQDN to configuration file
|
||||||
${csudo} sed -i -r "s/#*\s*(fqdn\s*).*/\1$localFqdn/" ${cfg_install_dir}/taos.cfg
|
${csudo} sed -i -r "s/#*\s*(fqdn\s*).*/\1$localFqdn/" ${cfg_install_dir}/taos.cfg
|
||||||
serverFqdn=$localFqdn
|
serverFqdn=$localFqdn
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
|
@ -347,59 +394,59 @@ function local_fqdn_check() {
|
||||||
echo
|
echo
|
||||||
echo -e -n "System hostname is: ${GREEN}$serverFqdn${NC}"
|
echo -e -n "System hostname is: ${GREEN}$serverFqdn${NC}"
|
||||||
echo
|
echo
|
||||||
if [[ "$serverFqdn" == "" ]] || [[ "$serverFqdn" == "localhost" ]]; then
|
if [[ "$serverFqdn" == "" ]] || [[ "$serverFqdn" == "localhost" ]]; then
|
||||||
echo -e -n "${GREEN}It is strongly recommended to configure a hostname for this machine ${NC}"
|
echo -e -n "${GREEN}It is strongly recommended to configure a hostname for this machine ${NC}"
|
||||||
echo
|
echo
|
||||||
|
|
||||||
while true
|
while true
|
||||||
do
|
do
|
||||||
read -r -p "Set hostname now? [Y/n] " input
|
read -r -p "Set hostname now? [Y/n] " input
|
||||||
if [ ! -n "$input" ]; then
|
if [ ! -n "$input" ]; then
|
||||||
set_hostname
|
set_hostname
|
||||||
break
|
break
|
||||||
else
|
else
|
||||||
case $input in
|
case $input in
|
||||||
[yY][eE][sS]|[yY])
|
[yY][eE][sS]|[yY])
|
||||||
set_hostname
|
set_hostname
|
||||||
break
|
break
|
||||||
;;
|
;;
|
||||||
|
|
||||||
[nN][oO]|[nN])
|
[nN][oO]|[nN])
|
||||||
set_ipAsFqdn
|
set_ipAsFqdn
|
||||||
break
|
break
|
||||||
;;
|
;;
|
||||||
|
|
||||||
*)
|
*)
|
||||||
echo "Invalid input..."
|
echo "Invalid input..."
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function install_config() {
|
function install_config() {
|
||||||
#${csudo} rm -f ${install_main_dir}/cfg/taos.cfg || :
|
#${csudo} rm -f ${install_main_dir}/cfg/taos.cfg || :
|
||||||
|
|
||||||
if [ ! -f ${cfg_install_dir}/taos.cfg ]; then
|
if [ ! -f ${cfg_install_dir}/taos.cfg ]; then
|
||||||
${csudo} mkdir -p ${cfg_install_dir}
|
${csudo} mkdir -p ${cfg_install_dir}
|
||||||
[ -f ${script_dir}/cfg/taos.cfg ] && ${csudo} cp ${script_dir}/cfg/taos.cfg ${cfg_install_dir}
|
[ -f ${script_dir}/cfg/taos.cfg ] && ${csudo} cp ${script_dir}/cfg/taos.cfg ${cfg_install_dir}
|
||||||
${csudo} chmod 644 ${cfg_install_dir}/*
|
${csudo} chmod 644 ${cfg_install_dir}/*
|
||||||
fi
|
fi
|
||||||
|
|
||||||
${csudo} cp -f ${script_dir}/cfg/taos.cfg ${install_main_dir}/cfg/taos.cfg.org
|
${csudo} cp -f ${script_dir}/cfg/taos.cfg ${install_main_dir}/cfg/taos.cfg.org
|
||||||
${csudo} ln -s ${cfg_install_dir}/taos.cfg ${install_main_dir}/cfg
|
${csudo} ln -s ${cfg_install_dir}/taos.cfg ${install_main_dir}/cfg
|
||||||
|
|
||||||
[ ! -z $1 ] && return 0 || : # only install client
|
[ ! -z $1 ] && return 0 || : # only install client
|
||||||
|
|
||||||
if ((${update_flag}==1)); then
|
if ((${update_flag}==1)); then
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$interactiveFqdn" == "no" ]; then
|
if [ "$interactiveFqdn" == "no" ]; then
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
local_fqdn_check
|
local_fqdn_check
|
||||||
|
|
||||||
#FQDN_FORMAT="(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"
|
#FQDN_FORMAT="(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"
|
||||||
|
@ -417,8 +464,8 @@ function install_config() {
|
||||||
if [ ! -z "$firstEp" ]; then
|
if [ ! -z "$firstEp" ]; then
|
||||||
# check the format of the firstEp
|
# check the format of the firstEp
|
||||||
#if [[ $firstEp == $FQDN_PATTERN ]]; then
|
#if [[ $firstEp == $FQDN_PATTERN ]]; then
|
||||||
# Write the first FQDN to configuration file
|
# Write the first FQDN to configuration file
|
||||||
${csudo} sed -i -r "s/#*\s*(firstEp\s*).*/\1$firstEp/" ${cfg_install_dir}/taos.cfg
|
${csudo} sed -i -r "s/#*\s*(firstEp\s*).*/\1$firstEp/" ${cfg_install_dir}/taos.cfg
|
||||||
break
|
break
|
||||||
#else
|
#else
|
||||||
# read -p "Please enter the correct FQDN:port: " firstEp
|
# read -p "Please enter the correct FQDN:port: " firstEp
|
||||||
|
@ -426,21 +473,21 @@ function install_config() {
|
||||||
else
|
else
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function install_log() {
|
function install_log() {
|
||||||
${csudo} rm -rf ${log_dir} || :
|
${csudo} rm -rf ${log_dir} || :
|
||||||
${csudo} mkdir -p ${log_dir} && ${csudo} chmod 777 ${log_dir}
|
${csudo} mkdir -p ${log_dir} && ${csudo} chmod 777 ${log_dir}
|
||||||
|
|
||||||
${csudo} ln -s ${log_dir} ${install_main_dir}/log
|
${csudo} ln -s ${log_dir} ${install_main_dir}/log
|
||||||
}
|
}
|
||||||
|
|
||||||
function install_data() {
|
function install_data() {
|
||||||
${csudo} mkdir -p ${data_dir}
|
${csudo} mkdir -p ${data_dir}
|
||||||
|
|
||||||
${csudo} ln -s ${data_dir} ${install_main_dir}/data
|
${csudo} ln -s ${data_dir} ${install_main_dir}/data
|
||||||
}
|
}
|
||||||
|
|
||||||
function install_connector() {
|
function install_connector() {
|
||||||
|
@ -455,26 +502,26 @@ function install_examples() {
|
||||||
|
|
||||||
function clean_service_on_sysvinit() {
|
function clean_service_on_sysvinit() {
|
||||||
#restart_config_str="power:2345:respawn:${service_config_dir}/powerd start"
|
#restart_config_str="power:2345:respawn:${service_config_dir}/powerd start"
|
||||||
#${csudo} sed -i "\|${restart_config_str}|d" /etc/inittab || :
|
#${csudo} sed -i "\|${restart_config_str}|d" /etc/inittab || :
|
||||||
|
|
||||||
if pidof powerd &> /dev/null; then
|
if pidof powerd &> /dev/null; then
|
||||||
${csudo} service powerd stop || :
|
${csudo} service powerd stop || :
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if pidof tarbitrator &> /dev/null; then
|
if pidof tarbitrator &> /dev/null; then
|
||||||
${csudo} service tarbitratord stop || :
|
${csudo} service tarbitratord stop || :
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if ((${initd_mod}==1)); then
|
if ((${initd_mod}==1)); then
|
||||||
if [ -e ${service_config_dir}/powerd ]; then
|
if [ -e ${service_config_dir}/powerd ]; then
|
||||||
${csudo} chkconfig --del powerd || :
|
${csudo} chkconfig --del powerd || :
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -e ${service_config_dir}/tarbitratord ]; then
|
if [ -e ${service_config_dir}/tarbitratord ]; then
|
||||||
${csudo} chkconfig --del tarbitratord || :
|
${csudo} chkconfig --del tarbitratord || :
|
||||||
fi
|
fi
|
||||||
elif ((${initd_mod}==2)); then
|
elif ((${initd_mod}==2)); then
|
||||||
if [ -e ${service_config_dir}/powerd ]; then
|
if [ -e ${service_config_dir}/powerd ]; then
|
||||||
${csudo} insserv -r powerd || :
|
${csudo} insserv -r powerd || :
|
||||||
fi
|
fi
|
||||||
if [ -e ${service_config_dir}/tarbitratord ]; then
|
if [ -e ${service_config_dir}/tarbitratord ]; then
|
||||||
|
@ -488,10 +535,10 @@ function clean_service_on_sysvinit() {
|
||||||
${csudo} update-rc.d -f tarbitratord remove || :
|
${csudo} update-rc.d -f tarbitratord remove || :
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
${csudo} rm -f ${service_config_dir}/powerd || :
|
${csudo} rm -f ${service_config_dir}/powerd || :
|
||||||
${csudo} rm -f ${service_config_dir}/tarbitratord || :
|
${csudo} rm -f ${service_config_dir}/tarbitratord || :
|
||||||
|
|
||||||
if $(which init &> /dev/null); then
|
if $(which init &> /dev/null); then
|
||||||
${csudo} init q || :
|
${csudo} init q || :
|
||||||
fi
|
fi
|
||||||
|
@ -514,10 +561,10 @@ function install_service_on_sysvinit() {
|
||||||
${csudo} cp -f ${script_dir}/init.d/tarbitratord.rpm ${install_main_dir}/init.d/tarbitratord
|
${csudo} cp -f ${script_dir}/init.d/tarbitratord.rpm ${install_main_dir}/init.d/tarbitratord
|
||||||
${csudo} cp ${script_dir}/init.d/tarbitratord.rpm ${service_config_dir}/tarbitratord && ${csudo} chmod a+x ${service_config_dir}/tarbitratord
|
${csudo} cp ${script_dir}/init.d/tarbitratord.rpm ${service_config_dir}/tarbitratord && ${csudo} chmod a+x ${service_config_dir}/tarbitratord
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#restart_config_str="power:2345:respawn:${service_config_dir}/powerd start"
|
#restart_config_str="power:2345:respawn:${service_config_dir}/powerd start"
|
||||||
#${csudo} grep -q -F "$restart_config_str" /etc/inittab || ${csudo} bash -c "echo '${restart_config_str}' >> /etc/inittab"
|
#${csudo} grep -q -F "$restart_config_str" /etc/inittab || ${csudo} bash -c "echo '${restart_config_str}' >> /etc/inittab"
|
||||||
|
|
||||||
if ((${initd_mod}==1)); then
|
if ((${initd_mod}==1)); then
|
||||||
${csudo} chkconfig --add powerd || :
|
${csudo} chkconfig --add powerd || :
|
||||||
${csudo} chkconfig --level 2345 powerd on || :
|
${csudo} chkconfig --level 2345 powerd on || :
|
||||||
|
@ -542,7 +589,7 @@ function clean_service_on_systemd() {
|
||||||
fi
|
fi
|
||||||
${csudo} systemctl disable powerd &> /dev/null || echo &> /dev/null
|
${csudo} systemctl disable powerd &> /dev/null || echo &> /dev/null
|
||||||
${csudo} rm -f ${powerd_service_config}
|
${csudo} rm -f ${powerd_service_config}
|
||||||
|
|
||||||
tarbitratord_service_config="${service_config_dir}/tarbitratord.service"
|
tarbitratord_service_config="${service_config_dir}/tarbitratord.service"
|
||||||
if systemctl is-active --quiet tarbitratord; then
|
if systemctl is-active --quiet tarbitratord; then
|
||||||
echo "tarbitrator is running, stopping it..."
|
echo "tarbitrator is running, stopping it..."
|
||||||
|
@ -550,7 +597,7 @@ function clean_service_on_systemd() {
|
||||||
fi
|
fi
|
||||||
${csudo} systemctl disable tarbitratord &> /dev/null || echo &> /dev/null
|
${csudo} systemctl disable tarbitratord &> /dev/null || echo &> /dev/null
|
||||||
${csudo} rm -f ${tarbitratord_service_config}
|
${csudo} rm -f ${tarbitratord_service_config}
|
||||||
|
|
||||||
if [ "$verMode" == "cluster" ]; then
|
if [ "$verMode" == "cluster" ]; then
|
||||||
nginx_service_config="${service_config_dir}/nginxd.service"
|
nginx_service_config="${service_config_dir}/nginxd.service"
|
||||||
if systemctl is-active --quiet nginxd; then
|
if systemctl is-active --quiet nginxd; then
|
||||||
|
@ -558,8 +605,8 @@ function clean_service_on_systemd() {
|
||||||
${csudo} systemctl stop nginxd &> /dev/null || echo &> /dev/null
|
${csudo} systemctl stop nginxd &> /dev/null || echo &> /dev/null
|
||||||
fi
|
fi
|
||||||
${csudo} systemctl disable nginxd &> /dev/null || echo &> /dev/null
|
${csudo} systemctl disable nginxd &> /dev/null || echo &> /dev/null
|
||||||
${csudo} rm -f ${nginx_service_config}
|
${csudo} rm -f ${nginx_service_config}
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# power:2345:respawn:/etc/init.d/powerd start
|
# power:2345:respawn:/etc/init.d/powerd start
|
||||||
|
@ -590,7 +637,7 @@ function install_service_on_systemd() {
|
||||||
${csudo} bash -c "echo '[Install]' >> ${powerd_service_config}"
|
${csudo} bash -c "echo '[Install]' >> ${powerd_service_config}"
|
||||||
${csudo} bash -c "echo 'WantedBy=multi-user.target' >> ${powerd_service_config}"
|
${csudo} bash -c "echo 'WantedBy=multi-user.target' >> ${powerd_service_config}"
|
||||||
${csudo} systemctl enable powerd
|
${csudo} systemctl enable powerd
|
||||||
|
|
||||||
tarbitratord_service_config="${service_config_dir}/tarbitratord.service"
|
tarbitratord_service_config="${service_config_dir}/tarbitratord.service"
|
||||||
${csudo} bash -c "echo '[Unit]' >> ${tarbitratord_service_config}"
|
${csudo} bash -c "echo '[Unit]' >> ${tarbitratord_service_config}"
|
||||||
${csudo} bash -c "echo 'Description=TDengine arbitrator service' >> ${tarbitratord_service_config}"
|
${csudo} bash -c "echo 'Description=TDengine arbitrator service' >> ${tarbitratord_service_config}"
|
||||||
|
@ -612,9 +659,9 @@ function install_service_on_systemd() {
|
||||||
${csudo} bash -c "echo >> ${tarbitratord_service_config}"
|
${csudo} bash -c "echo >> ${tarbitratord_service_config}"
|
||||||
${csudo} bash -c "echo '[Install]' >> ${tarbitratord_service_config}"
|
${csudo} bash -c "echo '[Install]' >> ${tarbitratord_service_config}"
|
||||||
${csudo} bash -c "echo 'WantedBy=multi-user.target' >> ${tarbitratord_service_config}"
|
${csudo} bash -c "echo 'WantedBy=multi-user.target' >> ${tarbitratord_service_config}"
|
||||||
#${csudo} systemctl enable tarbitratord
|
#${csudo} systemctl enable tarbitratord
|
||||||
|
|
||||||
if [ "$verMode" == "cluster" ]; then
|
if [ "$verMode" == "cluster" ]; then
|
||||||
nginx_service_config="${service_config_dir}/nginxd.service"
|
nginx_service_config="${service_config_dir}/nginxd.service"
|
||||||
${csudo} bash -c "echo '[Unit]' >> ${nginx_service_config}"
|
${csudo} bash -c "echo '[Unit]' >> ${nginx_service_config}"
|
||||||
${csudo} bash -c "echo 'Description=Nginx For PowrDB Service' >> ${nginx_service_config}"
|
${csudo} bash -c "echo 'Description=Nginx For PowrDB Service' >> ${nginx_service_config}"
|
||||||
|
@ -643,7 +690,7 @@ function install_service_on_systemd() {
|
||||||
${csudo} systemctl enable nginxd
|
${csudo} systemctl enable nginxd
|
||||||
fi
|
fi
|
||||||
${csudo} systemctl start nginxd
|
${csudo} systemctl start nginxd
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function install_service() {
|
function install_service() {
|
||||||
|
@ -706,7 +753,9 @@ function update_PowerDB() {
|
||||||
echo "File power.tar.gz does not exist"
|
echo "File power.tar.gz does not exist"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
install_jemalloc
|
||||||
tar -zxf power.tar.gz
|
tar -zxf power.tar.gz
|
||||||
|
install_jemalloc
|
||||||
|
|
||||||
# Check if version compatible
|
# Check if version compatible
|
||||||
if ! is_version_compatible; then
|
if ! is_version_compatible; then
|
||||||
|
@ -725,8 +774,8 @@ function update_PowerDB() {
|
||||||
kill_process powerd
|
kill_process powerd
|
||||||
fi
|
fi
|
||||||
sleep 1
|
sleep 1
|
||||||
fi
|
fi
|
||||||
if [ "$verMode" == "cluster" ]; then
|
if [ "$verMode" == "cluster" ]; then
|
||||||
if pidof nginx &> /dev/null; then
|
if pidof nginx &> /dev/null; then
|
||||||
if ((${service_mod}==0)); then
|
if ((${service_mod}==0)); then
|
||||||
${csudo} systemctl stop nginxd || :
|
${csudo} systemctl stop nginxd || :
|
||||||
|
@ -738,7 +787,7 @@ function update_PowerDB() {
|
||||||
sleep 1
|
sleep 1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
install_main_path
|
install_main_path
|
||||||
|
|
||||||
install_log
|
install_log
|
||||||
|
@ -751,10 +800,10 @@ function update_PowerDB() {
|
||||||
if [ -z $1 ]; then
|
if [ -z $1 ]; then
|
||||||
install_bin
|
install_bin
|
||||||
install_service
|
install_service
|
||||||
install_config
|
install_config
|
||||||
|
|
||||||
openresty_work=false
|
openresty_work=false
|
||||||
if [ "$verMode" == "cluster" ]; then
|
if [ "$verMode" == "cluster" ]; then
|
||||||
# Check if openresty is installed
|
# Check if openresty is installed
|
||||||
# Check if nginx is installed successfully
|
# Check if nginx is installed successfully
|
||||||
if type curl &> /dev/null; then
|
if type curl &> /dev/null; then
|
||||||
|
@ -765,7 +814,7 @@ function update_PowerDB() {
|
||||||
echo -e "\033[44;31;5mNginx for PowerDB does not work! Please try again!\033[0m"
|
echo -e "\033[44;31;5mNginx for PowerDB does not work! Please try again!\033[0m"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#echo
|
#echo
|
||||||
#echo -e "\033[44;32;1mPowerDB is updated successfully!${NC}"
|
#echo -e "\033[44;32;1mPowerDB is updated successfully!${NC}"
|
||||||
|
@ -784,7 +833,7 @@ function update_PowerDB() {
|
||||||
else
|
else
|
||||||
echo -e "${GREEN_DARK}To access PowerDB ${NC}: use ${GREEN_UNDERLINE}power -h $serverFqdn${NC} in shell${NC}"
|
echo -e "${GREEN_DARK}To access PowerDB ${NC}: use ${GREEN_UNDERLINE}power -h $serverFqdn${NC} in shell${NC}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo -e "\033[44;32;1mPowerDB is updated successfully!${NC}"
|
echo -e "\033[44;32;1mPowerDB is updated successfully!${NC}"
|
||||||
else
|
else
|
||||||
|
@ -807,16 +856,17 @@ function install_PowerDB() {
|
||||||
tar -zxf power.tar.gz
|
tar -zxf power.tar.gz
|
||||||
|
|
||||||
echo -e "${GREEN}Start to install PowerDB...${NC}"
|
echo -e "${GREEN}Start to install PowerDB...${NC}"
|
||||||
|
|
||||||
install_main_path
|
install_main_path
|
||||||
|
|
||||||
if [ -z $1 ]; then
|
if [ -z $1 ]; then
|
||||||
install_data
|
install_data
|
||||||
fi
|
fi
|
||||||
|
|
||||||
install_log
|
install_log
|
||||||
install_header
|
install_header
|
||||||
install_lib
|
install_lib
|
||||||
|
install_jemalloc
|
||||||
if [ "$pagMode" != "lite" ]; then
|
if [ "$pagMode" != "lite" ]; then
|
||||||
install_connector
|
install_connector
|
||||||
fi
|
fi
|
||||||
|
@ -839,8 +889,8 @@ function install_PowerDB() {
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
install_config
|
install_config
|
||||||
|
|
||||||
# Ask if to start the service
|
# Ask if to start the service
|
||||||
#echo
|
#echo
|
||||||
|
@ -853,35 +903,35 @@ function install_PowerDB() {
|
||||||
echo -e "${GREEN_DARK}To start PowerDB ${NC}: ${csudo} service powerd start${NC}"
|
echo -e "${GREEN_DARK}To start PowerDB ${NC}: ${csudo} service powerd start${NC}"
|
||||||
else
|
else
|
||||||
echo -e "${GREEN_DARK}To start PowerDB ${NC}: powerd${NC}"
|
echo -e "${GREEN_DARK}To start PowerDB ${NC}: powerd${NC}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#if [ ${openresty_work} = 'true' ]; then
|
#if [ ${openresty_work} = 'true' ]; then
|
||||||
# echo -e "${GREEN_DARK}To access PowerDB ${NC}: use ${GREEN_UNDERLINE}power${NC} in shell OR from ${GREEN_UNDERLINE}http://127.0.0.1:${nginx_port}${NC}"
|
# echo -e "${GREEN_DARK}To access PowerDB ${NC}: use ${GREEN_UNDERLINE}power${NC} in shell OR from ${GREEN_UNDERLINE}http://127.0.0.1:${nginx_port}${NC}"
|
||||||
#else
|
#else
|
||||||
# echo -e "${GREEN_DARK}To access PowerDB ${NC}: use ${GREEN_UNDERLINE}power${NC} in shell${NC}"
|
# echo -e "${GREEN_DARK}To access PowerDB ${NC}: use ${GREEN_UNDERLINE}power${NC} in shell${NC}"
|
||||||
#fi
|
#fi
|
||||||
|
|
||||||
if [ ! -z "$firstEp" ]; then
|
if [ ! -z "$firstEp" ]; then
|
||||||
tmpFqdn=${firstEp%%:*}
|
tmpFqdn=${firstEp%%:*}
|
||||||
substr=":"
|
substr=":"
|
||||||
if [[ $firstEp =~ $substr ]];then
|
if [[ $firstEp =~ $substr ]];then
|
||||||
tmpPort=${firstEp#*:}
|
tmpPort=${firstEp#*:}
|
||||||
else
|
else
|
||||||
tmpPort=""
|
tmpPort=""
|
||||||
fi
|
fi
|
||||||
if [[ "$tmpPort" != "" ]];then
|
if [[ "$tmpPort" != "" ]];then
|
||||||
echo -e "${GREEN_DARK}To access PowerDB ${NC}: power -h $tmpFqdn -P $tmpPort${GREEN_DARK} to login into cluster, then${NC}"
|
echo -e "${GREEN_DARK}To access PowerDB ${NC}: power -h $tmpFqdn -P $tmpPort${GREEN_DARK} to login into cluster, then${NC}"
|
||||||
else
|
else
|
||||||
echo -e "${GREEN_DARK}To access PowerDB ${NC}: power -h $tmpFqdn${GREEN_DARK} to login into cluster, then${NC}"
|
echo -e "${GREEN_DARK}To access PowerDB ${NC}: power -h $tmpFqdn${GREEN_DARK} to login into cluster, then${NC}"
|
||||||
fi
|
fi
|
||||||
echo -e "${GREEN_DARK}execute ${NC}: create dnode 'newDnodeFQDN:port'; ${GREEN_DARK}to add this new node${NC}"
|
echo -e "${GREEN_DARK}execute ${NC}: create dnode 'newDnodeFQDN:port'; ${GREEN_DARK}to add this new node${NC}"
|
||||||
echo
|
echo
|
||||||
elif [ ! -z "$serverFqdn" ]; then
|
elif [ ! -z "$serverFqdn" ]; then
|
||||||
echo -e "${GREEN_DARK}To access PowerDB ${NC}: power -h $serverFqdn${GREEN_DARK} to login into PowerDB server${NC}"
|
echo -e "${GREEN_DARK}To access PowerDB ${NC}: power -h $serverFqdn${GREEN_DARK} to login into PowerDB server${NC}"
|
||||||
echo
|
echo
|
||||||
fi
|
fi
|
||||||
echo -e "\033[44;32;1mPowerDB is installed successfully!${NC}"
|
echo -e "\033[44;32;1mPowerDB is installed successfully!${NC}"
|
||||||
echo
|
echo
|
||||||
else # Only install client
|
else # Only install client
|
||||||
install_bin
|
install_bin
|
||||||
install_config
|
install_config
|
||||||
|
@ -913,6 +963,6 @@ elif [ "$verType" == "client" ]; then
|
||||||
else
|
else
|
||||||
install_PowerDB client
|
install_PowerDB client
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo "please input correct verType"
|
echo "please input correct verType"
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -0,0 +1,968 @@
|
||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# This file is used to install database on linux systems. The operating system
|
||||||
|
# is required to use systemd to manage services at boot
|
||||||
|
|
||||||
|
set -e
|
||||||
|
#set -x
|
||||||
|
|
||||||
|
verMode=edge
|
||||||
|
pagMode=full
|
||||||
|
|
||||||
|
iplist=""
|
||||||
|
serverFqdn=""
|
||||||
|
# -----------------------Variables definition---------------------
|
||||||
|
script_dir=$(dirname $(readlink -f "$0"))
|
||||||
|
# Dynamic directory
|
||||||
|
data_dir="/var/lib/tq"
|
||||||
|
log_dir="/var/log/tq"
|
||||||
|
|
||||||
|
data_link_dir="/usr/local/tq/data"
|
||||||
|
log_link_dir="/usr/local/tq/log"
|
||||||
|
|
||||||
|
cfg_install_dir="/etc/tq"
|
||||||
|
|
||||||
|
bin_link_dir="/usr/bin"
|
||||||
|
lib_link_dir="/usr/lib"
|
||||||
|
lib64_link_dir="/usr/lib64"
|
||||||
|
inc_link_dir="/usr/include"
|
||||||
|
|
||||||
|
#install main path
|
||||||
|
install_main_dir="/usr/local/tq"
|
||||||
|
|
||||||
|
# old bin dir
|
||||||
|
bin_dir="/usr/local/tq/bin"
|
||||||
|
|
||||||
|
# v1.5 jar dir
|
||||||
|
#v15_java_app_dir="/usr/local/lib/tq"
|
||||||
|
|
||||||
|
service_config_dir="/etc/systemd/system"
|
||||||
|
nginx_port=6060
|
||||||
|
nginx_dir="/usr/local/nginxd"
|
||||||
|
|
||||||
|
# Color setting
|
||||||
|
RED='\033[0;31m'
|
||||||
|
GREEN='\033[1;32m'
|
||||||
|
GREEN_DARK='\033[0;32m'
|
||||||
|
GREEN_UNDERLINE='\033[4;32m'
|
||||||
|
NC='\033[0m'
|
||||||
|
|
||||||
|
csudo=""
|
||||||
|
if command -v sudo > /dev/null; then
|
||||||
|
csudo="sudo"
|
||||||
|
fi
|
||||||
|
|
||||||
|
update_flag=0
|
||||||
|
|
||||||
|
initd_mod=0
|
||||||
|
service_mod=2
|
||||||
|
if pidof systemd &> /dev/null; then
|
||||||
|
service_mod=0
|
||||||
|
elif $(which service &> /dev/null); then
|
||||||
|
service_mod=1
|
||||||
|
service_config_dir="/etc/init.d"
|
||||||
|
if $(which chkconfig &> /dev/null); then
|
||||||
|
initd_mod=1
|
||||||
|
elif $(which insserv &> /dev/null); then
|
||||||
|
initd_mod=2
|
||||||
|
elif $(which update-rc.d &> /dev/null); then
|
||||||
|
initd_mod=3
|
||||||
|
else
|
||||||
|
service_mod=2
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
service_mod=2
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# get the operating system type for using the corresponding init file
|
||||||
|
# ubuntu/debian(deb), centos/fedora(rpm), others: opensuse, redhat, ..., no verification
|
||||||
|
#osinfo=$(awk -F= '/^NAME/{print $2}' /etc/os-release)
|
||||||
|
if [[ -e /etc/os-release ]]; then
|
||||||
|
osinfo=$(cat /etc/os-release | grep "NAME" | cut -d '"' -f2) ||:
|
||||||
|
else
|
||||||
|
osinfo=""
|
||||||
|
fi
|
||||||
|
#echo "osinfo: ${osinfo}"
|
||||||
|
os_type=0
|
||||||
|
if echo $osinfo | grep -qwi "ubuntu" ; then
|
||||||
|
# echo "This is ubuntu system"
|
||||||
|
os_type=1
|
||||||
|
elif echo $osinfo | grep -qwi "debian" ; then
|
||||||
|
# echo "This is debian system"
|
||||||
|
os_type=1
|
||||||
|
elif echo $osinfo | grep -qwi "Kylin" ; then
|
||||||
|
# echo "This is Kylin system"
|
||||||
|
os_type=1
|
||||||
|
elif echo $osinfo | grep -qwi "centos" ; then
|
||||||
|
# echo "This is centos system"
|
||||||
|
os_type=2
|
||||||
|
elif echo $osinfo | grep -qwi "fedora" ; then
|
||||||
|
# echo "This is fedora system"
|
||||||
|
os_type=2
|
||||||
|
else
|
||||||
|
echo " osinfo: ${osinfo}"
|
||||||
|
echo " This is an officially unverified linux system,"
|
||||||
|
echo " if there are any problems with the installation and operation, "
|
||||||
|
echo " please feel free to contact taosdata.com for support."
|
||||||
|
os_type=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# ============================= get input parameters =================================================
|
||||||
|
|
||||||
|
# install.sh -v [server | client] -e [yes | no] -i [systemd | service | ...]
|
||||||
|
|
||||||
|
# set parameters by default value
|
||||||
|
interactiveFqdn=yes # [yes | no]
|
||||||
|
verType=server # [server | client]
|
||||||
|
initType=systemd # [systemd | service | ...]
|
||||||
|
|
||||||
|
while getopts "hv:e:i:" arg
|
||||||
|
do
|
||||||
|
case $arg in
|
||||||
|
e)
|
||||||
|
#echo "interactiveFqdn=$OPTARG"
|
||||||
|
interactiveFqdn=$( echo $OPTARG )
|
||||||
|
;;
|
||||||
|
v)
|
||||||
|
#echo "verType=$OPTARG"
|
||||||
|
verType=$(echo $OPTARG)
|
||||||
|
;;
|
||||||
|
i)
|
||||||
|
#echo "initType=$OPTARG"
|
||||||
|
initType=$(echo $OPTARG)
|
||||||
|
;;
|
||||||
|
h)
|
||||||
|
echo "Usage: `basename $0` -v [server | client] -e [yes | no]"
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
?) #unknow option
|
||||||
|
echo "unkonw argument"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
#echo "verType=${verType} interactiveFqdn=${interactiveFqdn}"
|
||||||
|
|
||||||
|
function kill_process() {
|
||||||
|
pid=$(ps -ef | grep "$1" | grep -v "grep" | awk '{print $2}')
|
||||||
|
if [ -n "$pid" ]; then
|
||||||
|
${csudo} kill -9 $pid || :
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function install_main_path() {
|
||||||
|
#create install main dir and all sub dir
|
||||||
|
${csudo} rm -rf ${install_main_dir} || :
|
||||||
|
${csudo} mkdir -p ${install_main_dir}
|
||||||
|
${csudo} mkdir -p ${install_main_dir}/cfg
|
||||||
|
${csudo} mkdir -p ${install_main_dir}/bin
|
||||||
|
${csudo} mkdir -p ${install_main_dir}/connector
|
||||||
|
${csudo} mkdir -p ${install_main_dir}/driver
|
||||||
|
${csudo} mkdir -p ${install_main_dir}/examples
|
||||||
|
${csudo} mkdir -p ${install_main_dir}/include
|
||||||
|
${csudo} mkdir -p ${install_main_dir}/init.d
|
||||||
|
if [ "$verMode" == "cluster" ]; then
|
||||||
|
${csudo} mkdir -p ${nginx_dir}
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function install_bin() {
|
||||||
|
# Remove links
|
||||||
|
${csudo} rm -f ${bin_link_dir}/tq || :
|
||||||
|
${csudo} rm -f ${bin_link_dir}/tqd || :
|
||||||
|
${csudo} rm -f ${bin_link_dir}/tqdemo || :
|
||||||
|
${csudo} rm -f ${bin_link_dir}/rmtq || :
|
||||||
|
${csudo} rm -f ${bin_link_dir}/tarbitrator || :
|
||||||
|
${csudo} rm -f ${bin_link_dir}/set_core || :
|
||||||
|
|
||||||
|
${csudo} cp -r ${script_dir}/bin/* ${install_main_dir}/bin && ${csudo} chmod 0555 ${install_main_dir}/bin/*
|
||||||
|
|
||||||
|
#Make link
|
||||||
|
[ -x ${install_main_dir}/bin/tq ] && ${csudo} ln -s ${install_main_dir}/bin/tq ${bin_link_dir}/tq || :
|
||||||
|
[ -x ${install_main_dir}/bin/tqd ] && ${csudo} ln -s ${install_main_dir}/bin/tqd ${bin_link_dir}/tqd || :
|
||||||
|
[ -x ${install_main_dir}/bin/tqdemo ] && ${csudo} ln -s ${install_main_dir}/bin/tqdemo ${bin_link_dir}/tqdemo || :
|
||||||
|
[ -x ${install_main_dir}/bin/remove_tq.sh ] && ${csudo} ln -s ${install_main_dir}/bin/remove_tq.sh ${bin_link_dir}/rmtq || :
|
||||||
|
[ -x ${install_main_dir}/bin/set_core.sh ] && ${csudo} ln -s ${install_main_dir}/bin/set_core.sh ${bin_link_dir}/set_core || :
|
||||||
|
[ -x ${install_main_dir}/bin/tarbitrator ] && ${csudo} ln -s ${install_main_dir}/bin/tarbitrator ${bin_link_dir}/tarbitrator || :
|
||||||
|
|
||||||
|
if [ "$verMode" == "cluster" ]; then
|
||||||
|
${csudo} cp -r ${script_dir}/nginxd/* ${nginx_dir} && ${csudo} chmod 0555 ${nginx_dir}/*
|
||||||
|
${csudo} mkdir -p ${nginx_dir}/logs
|
||||||
|
${csudo} chmod 777 ${nginx_dir}/sbin/nginx
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function install_lib() {
|
||||||
|
# Remove links
|
||||||
|
${csudo} rm -f ${lib_link_dir}/libtaos.* || :
|
||||||
|
${csudo} rm -f ${lib64_link_dir}/libtaos.* || :
|
||||||
|
#${csudo} rm -rf ${v15_java_app_dir} || :
|
||||||
|
${csudo} cp -rf ${script_dir}/driver/* ${install_main_dir}/driver && ${csudo} chmod 777 ${install_main_dir}/driver/*
|
||||||
|
|
||||||
|
${csudo} ln -s ${install_main_dir}/driver/libtaos.* ${lib_link_dir}/libtaos.so.1
|
||||||
|
${csudo} ln -s ${lib_link_dir}/libtaos.so.1 ${lib_link_dir}/libtaos.so
|
||||||
|
|
||||||
|
if [[ -d ${lib64_link_dir} && ! -e ${lib64_link_dir}/libtaos.so ]]; then
|
||||||
|
${csudo} ln -s ${install_main_dir}/driver/libtaos.* ${lib64_link_dir}/libtaos.so.1 || :
|
||||||
|
${csudo} ln -s ${lib64_link_dir}/libtaos.so.1 ${lib64_link_dir}/libtaos.so || :
|
||||||
|
fi
|
||||||
|
|
||||||
|
#if [ "$verMode" == "cluster" ]; then
|
||||||
|
# # Compatible with version 1.5
|
||||||
|
# ${csudo} mkdir -p ${v15_java_app_dir}
|
||||||
|
# ${csudo} ln -s ${install_main_dir}/connector/taos-jdbcdriver-1.0.2-dist.jar ${v15_java_app_dir}/JDBCDriver-1.0.2-dist.jar
|
||||||
|
# ${csudo} chmod 777 ${v15_java_app_dir} || :
|
||||||
|
#fi
|
||||||
|
|
||||||
|
${csudo} ldconfig
|
||||||
|
}
|
||||||
|
|
||||||
|
function install_header() {
|
||||||
|
${csudo} rm -f ${inc_link_dir}/taos.h ${inc_link_dir}/taoserror.h || :
|
||||||
|
${csudo} cp -f ${script_dir}/inc/* ${install_main_dir}/include && ${csudo} chmod 644 ${install_main_dir}/include/*
|
||||||
|
${csudo} ln -s ${install_main_dir}/include/taos.h ${inc_link_dir}/taos.h
|
||||||
|
${csudo} ln -s ${install_main_dir}/include/taoserror.h ${inc_link_dir}/taoserror.h
|
||||||
|
}
|
||||||
|
|
||||||
|
function install_jemalloc() {
|
||||||
|
jemalloc_dir=${script_dir}/jemalloc
|
||||||
|
|
||||||
|
if [ -d ${jemalloc_dir} ]; then
|
||||||
|
${csudo} /usr/bin/install -c -d /usr/local/bin
|
||||||
|
|
||||||
|
if [ -f ${jemalloc_dir}/bin/jemalloc-config ]; then
|
||||||
|
${csudo} /usr/bin/install -c -m 755 ${jemalloc_dir}/bin/jemalloc-config /usr/local/bin
|
||||||
|
fi
|
||||||
|
if [ -f ${jemalloc_dir}/bin/jemalloc.sh ]; then
|
||||||
|
${csudo} /usr/bin/install -c -m 755 ${jemalloc_dir}/bin/jemalloc.sh /usr/local/bin
|
||||||
|
fi
|
||||||
|
if [ -f ${jemalloc_dir}/bin/jeprof ]; then
|
||||||
|
${csudo} /usr/bin/install -c -m 755 ${jemalloc_dir}/bin/jeprof /usr/local/bin
|
||||||
|
fi
|
||||||
|
if [ -f ${jemalloc_dir}/include/jemalloc/jemalloc.h ]; then
|
||||||
|
${csudo} /usr/bin/install -c -d /usr/local/include/jemalloc
|
||||||
|
${csudo} /usr/bin/install -c -m 644 ${jemalloc_dir}/include/jemalloc/jemalloc.h /usr/local/include/jemalloc
|
||||||
|
fi
|
||||||
|
if [ -f ${jemalloc_dir}/lib/libjemalloc.so.2 ]; then
|
||||||
|
${csudo} /usr/bin/install -c -d /usr/local/lib
|
||||||
|
${csudo} /usr/bin/install -c -m 755 ${jemalloc_dir}/lib/libjemalloc.so.2 /usr/local/lib
|
||||||
|
${csudo} ln -sf libjemalloc.so.2 /usr/local/lib/libjemalloc.so
|
||||||
|
${csudo} /usr/bin/install -c -d /usr/local/lib
|
||||||
|
if [ -f ${jemalloc_dir}/lib/libjemalloc.a ]; then
|
||||||
|
${csudo} /usr/bin/install -c -m 755 ${jemalloc_dir}/lib/libjemalloc.a /usr/local/lib
|
||||||
|
fi
|
||||||
|
if [ -f ${jemalloc_dir}/lib/libjemalloc_pic.a ]; then
|
||||||
|
${csudo} /usr/bin/install -c -m 755 ${jemalloc_dir}/lib/libjemalloc_pic.a /usr/local/lib
|
||||||
|
fi
|
||||||
|
if [ -f ${jemalloc_dir}/lib/libjemalloc_pic.a ]; then
|
||||||
|
${csudo} /usr/bin/install -c -d /usr/local/lib/pkgconfig
|
||||||
|
${csudo} /usr/bin/install -c -m 644 ${jemalloc_dir}/lib/pkgconfig/jemalloc.pc /usr/local/lib/pkgconfig
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [ -f ${jemalloc_dir}/share/doc/jemalloc/jemalloc.html ]; then
|
||||||
|
${csudo} /usr/bin/install -c -d /usr/local/share/doc/jemalloc
|
||||||
|
${csudo} /usr/bin/install -c -m 644 ${jemalloc_dir}/share/doc/jemalloc/jemalloc.html /usr/local/share/doc/jemalloc
|
||||||
|
fi
|
||||||
|
if [ -f ${jemalloc_dir}/share/man/man3/jemalloc.3 ]; then
|
||||||
|
${csudo} /usr/bin/install -c -d /usr/local/share/man/man3
|
||||||
|
${csudo} /usr/bin/install -c -m 644 ${jemalloc_dir}/share/man/man3/jemalloc.3 /usr/local/share/man/man3
|
||||||
|
fi
|
||||||
|
${csudo} ldconfig
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function add_newHostname_to_hosts() {
|
||||||
|
localIp="127.0.0.1"
|
||||||
|
OLD_IFS="$IFS"
|
||||||
|
IFS=" "
|
||||||
|
iphost=$(cat /etc/hosts | grep $1 | awk '{print $1}')
|
||||||
|
arr=($iphost)
|
||||||
|
IFS="$OLD_IFS"
|
||||||
|
for s in ${arr[@]}
|
||||||
|
do
|
||||||
|
if [[ "$s" == "$localIp" ]]; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
${csudo} echo "127.0.0.1 $1" >> /etc/hosts ||:
|
||||||
|
}
|
||||||
|
|
||||||
|
function set_hostname() {
|
||||||
|
echo -e -n "${GREEN}Please enter one hostname(must not be 'localhost')${NC}:"
|
||||||
|
read newHostname
|
||||||
|
while true; do
|
||||||
|
if [[ ! -z "$newHostname" && "$newHostname" != "localhost" ]]; then
|
||||||
|
break
|
||||||
|
else
|
||||||
|
read -p "Please enter one hostname(must not be 'localhost'):" newHostname
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
${csudo} hostname $newHostname ||:
|
||||||
|
retval=`echo $?`
|
||||||
|
if [[ $retval != 0 ]]; then
|
||||||
|
echo
|
||||||
|
echo "set hostname fail!"
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
#echo -e -n "$(hostnamectl status --static)"
|
||||||
|
#echo -e -n "$(hostnamectl status --transient)"
|
||||||
|
#echo -e -n "$(hostnamectl status --pretty)"
|
||||||
|
|
||||||
|
#ubuntu/centos /etc/hostname
|
||||||
|
if [[ -e /etc/hostname ]]; then
|
||||||
|
${csudo} echo $newHostname > /etc/hostname ||:
|
||||||
|
fi
|
||||||
|
|
||||||
|
#debian: #HOSTNAME=yourname
|
||||||
|
if [[ -e /etc/sysconfig/network ]]; then
|
||||||
|
${csudo} sed -i -r "s/#*\s*(HOSTNAME=\s*).*/\1$newHostname/" /etc/sysconfig/network ||:
|
||||||
|
fi
|
||||||
|
|
||||||
|
${csudo} sed -i -r "s/#*\s*(fqdn\s*).*/\1$newHostname/" ${cfg_install_dir}/taos.cfg
|
||||||
|
serverFqdn=$newHostname
|
||||||
|
|
||||||
|
if [[ -e /etc/hosts ]]; then
|
||||||
|
add_newHostname_to_hosts $newHostname
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function is_correct_ipaddr() {
|
||||||
|
newIp=$1
|
||||||
|
OLD_IFS="$IFS"
|
||||||
|
IFS=" "
|
||||||
|
arr=($iplist)
|
||||||
|
IFS="$OLD_IFS"
|
||||||
|
for s in ${arr[@]}
|
||||||
|
do
|
||||||
|
if [[ "$s" == "$newIp" ]]; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
function set_ipAsFqdn() {
|
||||||
|
iplist=$(ip address |grep inet |grep -v inet6 |grep -v 127.0.0.1 |awk '{print $2}' |awk -F "/" '{print $1}') ||:
|
||||||
|
if [ -z "$iplist" ]; then
|
||||||
|
iplist=$(ifconfig |grep inet |grep -v inet6 |grep -v 127.0.0.1 |awk '{print $2}' |awk -F ":" '{print $2}') ||:
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$iplist" ]; then
|
||||||
|
echo
|
||||||
|
echo -e -n "${GREEN}Unable to get local ip, use 127.0.0.1${NC}"
|
||||||
|
localFqdn="127.0.0.1"
|
||||||
|
# Write the local FQDN to configuration file
|
||||||
|
${csudo} sed -i -r "s/#*\s*(fqdn\s*).*/\1$localFqdn/" ${cfg_install_dir}/taos.cfg
|
||||||
|
serverFqdn=$localFqdn
|
||||||
|
echo
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo -e -n "${GREEN}Please choose an IP from local IP list${NC}:"
|
||||||
|
echo
|
||||||
|
echo -e -n "${GREEN}$iplist${NC}"
|
||||||
|
echo
|
||||||
|
echo
|
||||||
|
echo -e -n "${GREEN}Notes: if IP is used as the node name, data can NOT be migrated to other machine directly${NC}:"
|
||||||
|
read localFqdn
|
||||||
|
while true; do
|
||||||
|
if [ ! -z "$localFqdn" ]; then
|
||||||
|
# Check if correct ip address
|
||||||
|
is_correct_ipaddr $localFqdn
|
||||||
|
retval=`echo $?`
|
||||||
|
if [[ $retval != 0 ]]; then
|
||||||
|
read -p "Please choose an IP from local IP list:" localFqdn
|
||||||
|
else
|
||||||
|
# Write the local FQDN to configuration file
|
||||||
|
${csudo} sed -i -r "s/#*\s*(fqdn\s*).*/\1$localFqdn/" ${cfg_install_dir}/taos.cfg
|
||||||
|
serverFqdn=$localFqdn
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
read -p "Please choose an IP from local IP list:" localFqdn
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
function local_fqdn_check() {
|
||||||
|
#serverFqdn=$(hostname)
|
||||||
|
echo
|
||||||
|
echo -e -n "System hostname is: ${GREEN}$serverFqdn${NC}"
|
||||||
|
echo
|
||||||
|
if [[ "$serverFqdn" == "" ]] || [[ "$serverFqdn" == "localhost" ]]; then
|
||||||
|
echo -e -n "${GREEN}It is strongly recommended to configure a hostname for this machine ${NC}"
|
||||||
|
echo
|
||||||
|
|
||||||
|
while true
|
||||||
|
do
|
||||||
|
read -r -p "Set hostname now? [Y/n] " input
|
||||||
|
if [ ! -n "$input" ]; then
|
||||||
|
set_hostname
|
||||||
|
break
|
||||||
|
else
|
||||||
|
case $input in
|
||||||
|
[yY][eE][sS]|[yY])
|
||||||
|
set_hostname
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
|
||||||
|
[nN][oO]|[nN])
|
||||||
|
set_ipAsFqdn
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo "Invalid input..."
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function install_config() {
|
||||||
|
#${csudo} rm -f ${install_main_dir}/cfg/taos.cfg || :
|
||||||
|
|
||||||
|
if [ ! -f ${cfg_install_dir}/taos.cfg ]; then
|
||||||
|
${csudo} mkdir -p ${cfg_install_dir}
|
||||||
|
[ -f ${script_dir}/cfg/taos.cfg ] && ${csudo} cp ${script_dir}/cfg/taos.cfg ${cfg_install_dir}
|
||||||
|
${csudo} chmod 644 ${cfg_install_dir}/*
|
||||||
|
fi
|
||||||
|
|
||||||
|
${csudo} cp -f ${script_dir}/cfg/taos.cfg ${install_main_dir}/cfg/taos.cfg.org
|
||||||
|
${csudo} ln -s ${cfg_install_dir}/taos.cfg ${install_main_dir}/cfg
|
||||||
|
|
||||||
|
[ ! -z $1 ] && return 0 || : # only install client
|
||||||
|
|
||||||
|
if ((${update_flag}==1)); then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$interactiveFqdn" == "no" ]; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
local_fqdn_check
|
||||||
|
|
||||||
|
#FQDN_FORMAT="(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"
|
||||||
|
#FQDN_FORMAT="(:[1-6][0-9][0-9][0-9][0-9]$)"
|
||||||
|
#PORT_FORMAT="(/[1-6][0-9][0-9][0-9][0-9]?/)"
|
||||||
|
#FQDN_PATTERN=":[0-9]{1,5}$"
|
||||||
|
|
||||||
|
# first full-qualified domain name (FQDN) for TQ cluster system
|
||||||
|
echo
|
||||||
|
echo -e -n "${GREEN}Enter FQDN:port (like h1.taosdata.com:6030) of an existing TQ cluster node to join${NC}"
|
||||||
|
echo
|
||||||
|
echo -e -n "${GREEN}OR leave it blank to build one${NC}:"
|
||||||
|
read firstEp
|
||||||
|
while true; do
|
||||||
|
if [ ! -z "$firstEp" ]; then
|
||||||
|
# check the format of the firstEp
|
||||||
|
#if [[ $firstEp == $FQDN_PATTERN ]]; then
|
||||||
|
# Write the first FQDN to configuration file
|
||||||
|
${csudo} sed -i -r "s/#*\s*(firstEp\s*).*/\1$firstEp/" ${cfg_install_dir}/taos.cfg
|
||||||
|
break
|
||||||
|
#else
|
||||||
|
# read -p "Please enter the correct FQDN:port: " firstEp
|
||||||
|
#fi
|
||||||
|
else
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function install_log() {
|
||||||
|
${csudo} rm -rf ${log_dir} || :
|
||||||
|
${csudo} mkdir -p ${log_dir} && ${csudo} chmod 777 ${log_dir}
|
||||||
|
|
||||||
|
${csudo} ln -s ${log_dir} ${install_main_dir}/log
|
||||||
|
}
|
||||||
|
|
||||||
|
function install_data() {
|
||||||
|
${csudo} mkdir -p ${data_dir}
|
||||||
|
|
||||||
|
${csudo} ln -s ${data_dir} ${install_main_dir}/data
|
||||||
|
}
|
||||||
|
|
||||||
|
function install_connector() {
|
||||||
|
${csudo} cp -rf ${script_dir}/connector/* ${install_main_dir}/connector
|
||||||
|
}
|
||||||
|
|
||||||
|
function install_examples() {
|
||||||
|
if [ -d ${script_dir}/examples ]; then
|
||||||
|
${csudo} cp -rf ${script_dir}/examples/* ${install_main_dir}/examples
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function clean_service_on_sysvinit() {
|
||||||
|
#restart_config_str="tq:2345:respawn:${service_config_dir}/tqd start"
|
||||||
|
#${csudo} sed -i "\|${restart_config_str}|d" /etc/inittab || :
|
||||||
|
|
||||||
|
if pidof tqd &> /dev/null; then
|
||||||
|
${csudo} service tqd stop || :
|
||||||
|
fi
|
||||||
|
|
||||||
|
if pidof tarbitrator &> /dev/null; then
|
||||||
|
${csudo} service tarbitratord stop || :
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ((${initd_mod}==1)); then
|
||||||
|
if [ -e ${service_config_dir}/tqd ]; then
|
||||||
|
${csudo} chkconfig --del tqd || :
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -e ${service_config_dir}/tarbitratord ]; then
|
||||||
|
${csudo} chkconfig --del tarbitratord || :
|
||||||
|
fi
|
||||||
|
elif ((${initd_mod}==2)); then
|
||||||
|
if [ -e ${service_config_dir}/tqd ]; then
|
||||||
|
${csudo} insserv -r tqd || :
|
||||||
|
fi
|
||||||
|
if [ -e ${service_config_dir}/tarbitratord ]; then
|
||||||
|
${csudo} insserv -r tarbitratord || :
|
||||||
|
fi
|
||||||
|
elif ((${initd_mod}==3)); then
|
||||||
|
if [ -e ${service_config_dir}/tqd ]; then
|
||||||
|
${csudo} update-rc.d -f tqd remove || :
|
||||||
|
fi
|
||||||
|
if [ -e ${service_config_dir}/tarbitratord ]; then
|
||||||
|
${csudo} update-rc.d -f tarbitratord remove || :
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
${csudo} rm -f ${service_config_dir}/tqd || :
|
||||||
|
${csudo} rm -f ${service_config_dir}/tarbitratord || :
|
||||||
|
|
||||||
|
if $(which init &> /dev/null); then
|
||||||
|
${csudo} init q || :
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function install_service_on_sysvinit() {
|
||||||
|
clean_service_on_sysvinit
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
# Install tqd service
|
||||||
|
|
||||||
|
if ((${os_type}==1)); then
|
||||||
|
${csudo} cp -f ${script_dir}/init.d/tqd.deb ${install_main_dir}/init.d/tqd
|
||||||
|
${csudo} cp ${script_dir}/init.d/tqd.deb ${service_config_dir}/tqd && ${csudo} chmod a+x ${service_config_dir}/tqd
|
||||||
|
${csudo} cp -f ${script_dir}/init.d/tarbitratord.deb ${install_main_dir}/init.d/tarbitratord
|
||||||
|
${csudo} cp ${script_dir}/init.d/tarbitratord.deb ${service_config_dir}/tarbitratord && ${csudo} chmod a+x ${service_config_dir}/tarbitratord
|
||||||
|
elif ((${os_type}==2)); then
|
||||||
|
${csudo} cp -f ${script_dir}/init.d/tqd.rpm ${install_main_dir}/init.d/tqd
|
||||||
|
${csudo} cp ${script_dir}/init.d/tqd.rpm ${service_config_dir}/tqd && ${csudo} chmod a+x ${service_config_dir}/tqd
|
||||||
|
${csudo} cp -f ${script_dir}/init.d/tarbitratord.rpm ${install_main_dir}/init.d/tarbitratord
|
||||||
|
${csudo} cp ${script_dir}/init.d/tarbitratord.rpm ${service_config_dir}/tarbitratord && ${csudo} chmod a+x ${service_config_dir}/tarbitratord
|
||||||
|
fi
|
||||||
|
|
||||||
|
#restart_config_str="tq:2345:respawn:${service_config_dir}/tqd start"
|
||||||
|
#${csudo} grep -q -F "$restart_config_str" /etc/inittab || ${csudo} bash -c "echo '${restart_config_str}' >> /etc/inittab"
|
||||||
|
|
||||||
|
if ((${initd_mod}==1)); then
|
||||||
|
${csudo} chkconfig --add tqd || :
|
||||||
|
${csudo} chkconfig --level 2345 tqd on || :
|
||||||
|
${csudo} chkconfig --add tarbitratord || :
|
||||||
|
${csudo} chkconfig --level 2345 tarbitratord on || :
|
||||||
|
elif ((${initd_mod}==2)); then
|
||||||
|
${csudo} insserv tqd || :
|
||||||
|
${csudo} insserv -d tqd || :
|
||||||
|
${csudo} insserv tarbitratord || :
|
||||||
|
${csudo} insserv -d tarbitratord || :
|
||||||
|
elif ((${initd_mod}==3)); then
|
||||||
|
${csudo} update-rc.d tqd defaults || :
|
||||||
|
${csudo} update-rc.d tarbitratord defaults || :
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function clean_service_on_systemd() {
|
||||||
|
tqd_service_config="${service_config_dir}/tqd.service"
|
||||||
|
if systemctl is-active --quiet tqd; then
|
||||||
|
echo "TQ is running, stopping it..."
|
||||||
|
${csudo} systemctl stop tqd &> /dev/null || echo &> /dev/null
|
||||||
|
fi
|
||||||
|
${csudo} systemctl disable tqd &> /dev/null || echo &> /dev/null
|
||||||
|
${csudo} rm -f ${tqd_service_config}
|
||||||
|
|
||||||
|
tarbitratord_service_config="${service_config_dir}/tarbitratord.service"
|
||||||
|
if systemctl is-active --quiet tarbitratord; then
|
||||||
|
echo "tarbitrator is running, stopping it..."
|
||||||
|
${csudo} systemctl stop tarbitratord &> /dev/null || echo &> /dev/null
|
||||||
|
fi
|
||||||
|
${csudo} systemctl disable tarbitratord &> /dev/null || echo &> /dev/null
|
||||||
|
${csudo} rm -f ${tarbitratord_service_config}
|
||||||
|
|
||||||
|
if [ "$verMode" == "cluster" ]; then
|
||||||
|
nginx_service_config="${service_config_dir}/nginxd.service"
|
||||||
|
if systemctl is-active --quiet nginxd; then
|
||||||
|
echo "Nginx for TDengine is running, stopping it..."
|
||||||
|
${csudo} systemctl stop nginxd &> /dev/null || echo &> /dev/null
|
||||||
|
fi
|
||||||
|
${csudo} systemctl disable nginxd &> /dev/null || echo &> /dev/null
|
||||||
|
${csudo} rm -f ${nginx_service_config}
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# tq:2345:respawn:/etc/init.d/tqd start
|
||||||
|
|
||||||
|
function install_service_on_systemd() {
|
||||||
|
clean_service_on_systemd
|
||||||
|
|
||||||
|
tqd_service_config="${service_config_dir}/tqd.service"
|
||||||
|
${csudo} bash -c "echo '[Unit]' >> ${tqd_service_config}"
|
||||||
|
${csudo} bash -c "echo 'Description=TQ server service' >> ${tqd_service_config}"
|
||||||
|
${csudo} bash -c "echo 'After=network-online.target' >> ${tqd_service_config}"
|
||||||
|
${csudo} bash -c "echo 'Wants=network-online.target' >> ${tqd_service_config}"
|
||||||
|
${csudo} bash -c "echo >> ${tqd_service_config}"
|
||||||
|
${csudo} bash -c "echo '[Service]' >> ${tqd_service_config}"
|
||||||
|
${csudo} bash -c "echo 'Type=simple' >> ${tqd_service_config}"
|
||||||
|
${csudo} bash -c "echo 'ExecStart=/usr/bin/tqd' >> ${tqd_service_config}"
|
||||||
|
${csudo} bash -c "echo 'ExecStartPre=/usr/local/tq/bin/startPre.sh' >> ${tqd_service_config}"
|
||||||
|
${csudo} bash -c "echo 'TimeoutStopSec=1000000s' >> ${tqd_service_config}"
|
||||||
|
${csudo} bash -c "echo 'LimitNOFILE=infinity' >> ${tqd_service_config}"
|
||||||
|
${csudo} bash -c "echo 'LimitNPROC=infinity' >> ${tqd_service_config}"
|
||||||
|
${csudo} bash -c "echo 'LimitCORE=infinity' >> ${tqd_service_config}"
|
||||||
|
${csudo} bash -c "echo 'TimeoutStartSec=0' >> ${tqd_service_config}"
|
||||||
|
${csudo} bash -c "echo 'StandardOutput=null' >> ${tqd_service_config}"
|
||||||
|
${csudo} bash -c "echo 'Restart=always' >> ${tqd_service_config}"
|
||||||
|
${csudo} bash -c "echo 'StartLimitBurst=3' >> ${tqd_service_config}"
|
||||||
|
${csudo} bash -c "echo 'StartLimitInterval=60s' >> ${tqd_service_config}"
|
||||||
|
${csudo} bash -c "echo >> ${tqd_service_config}"
|
||||||
|
${csudo} bash -c "echo '[Install]' >> ${tqd_service_config}"
|
||||||
|
${csudo} bash -c "echo 'WantedBy=multi-user.target' >> ${tqd_service_config}"
|
||||||
|
${csudo} systemctl enable tqd
|
||||||
|
|
||||||
|
tarbitratord_service_config="${service_config_dir}/tarbitratord.service"
|
||||||
|
${csudo} bash -c "echo '[Unit]' >> ${tarbitratord_service_config}"
|
||||||
|
${csudo} bash -c "echo 'Description=TDengine arbitrator service' >> ${tarbitratord_service_config}"
|
||||||
|
${csudo} bash -c "echo 'After=network-online.target' >> ${tarbitratord_service_config}"
|
||||||
|
${csudo} bash -c "echo 'Wants=network-online.target' >> ${tarbitratord_service_config}"
|
||||||
|
${csudo} bash -c "echo >> ${tarbitratord_service_config}"
|
||||||
|
${csudo} bash -c "echo '[Service]' >> ${tarbitratord_service_config}"
|
||||||
|
${csudo} bash -c "echo 'Type=simple' >> ${tarbitratord_service_config}"
|
||||||
|
${csudo} bash -c "echo 'ExecStart=/usr/bin/tarbitrator' >> ${tarbitratord_service_config}"
|
||||||
|
${csudo} bash -c "echo 'TimeoutStopSec=1000000s' >> ${tarbitratord_service_config}"
|
||||||
|
${csudo} bash -c "echo 'LimitNOFILE=infinity' >> ${tarbitratord_service_config}"
|
||||||
|
${csudo} bash -c "echo 'LimitNPROC=infinity' >> ${tarbitratord_service_config}"
|
||||||
|
${csudo} bash -c "echo 'LimitCORE=infinity' >> ${tarbitratord_service_config}"
|
||||||
|
${csudo} bash -c "echo 'TimeoutStartSec=0' >> ${tarbitratord_service_config}"
|
||||||
|
${csudo} bash -c "echo 'StandardOutput=null' >> ${tarbitratord_service_config}"
|
||||||
|
${csudo} bash -c "echo 'Restart=always' >> ${tarbitratord_service_config}"
|
||||||
|
${csudo} bash -c "echo 'StartLimitBurst=3' >> ${tarbitratord_service_config}"
|
||||||
|
${csudo} bash -c "echo 'StartLimitInterval=60s' >> ${tarbitratord_service_config}"
|
||||||
|
${csudo} bash -c "echo >> ${tarbitratord_service_config}"
|
||||||
|
${csudo} bash -c "echo '[Install]' >> ${tarbitratord_service_config}"
|
||||||
|
${csudo} bash -c "echo 'WantedBy=multi-user.target' >> ${tarbitratord_service_config}"
|
||||||
|
#${csudo} systemctl enable tarbitratord
|
||||||
|
|
||||||
|
if [ "$verMode" == "cluster" ]; then
|
||||||
|
nginx_service_config="${service_config_dir}/nginxd.service"
|
||||||
|
${csudo} bash -c "echo '[Unit]' >> ${nginx_service_config}"
|
||||||
|
${csudo} bash -c "echo 'Description=Nginx For PowrDB Service' >> ${nginx_service_config}"
|
||||||
|
${csudo} bash -c "echo 'After=network-online.target' >> ${nginx_service_config}"
|
||||||
|
${csudo} bash -c "echo 'Wants=network-online.target' >> ${nginx_service_config}"
|
||||||
|
${csudo} bash -c "echo >> ${nginx_service_config}"
|
||||||
|
${csudo} bash -c "echo '[Service]' >> ${nginx_service_config}"
|
||||||
|
${csudo} bash -c "echo 'Type=forking' >> ${nginx_service_config}"
|
||||||
|
${csudo} bash -c "echo 'PIDFile=/usr/local/nginxd/logs/nginx.pid' >> ${nginx_service_config}"
|
||||||
|
${csudo} bash -c "echo 'ExecStart=/usr/local/nginxd/sbin/nginx' >> ${nginx_service_config}"
|
||||||
|
${csudo} bash -c "echo 'ExecStop=/usr/local/nginxd/sbin/nginx -s stop' >> ${nginx_service_config}"
|
||||||
|
${csudo} bash -c "echo 'TimeoutStopSec=1000000s' >> ${nginx_service_config}"
|
||||||
|
${csudo} bash -c "echo 'LimitNOFILE=infinity' >> ${nginx_service_config}"
|
||||||
|
${csudo} bash -c "echo 'LimitNPROC=infinity' >> ${nginx_service_config}"
|
||||||
|
${csudo} bash -c "echo 'LimitCORE=infinity' >> ${nginx_service_config}"
|
||||||
|
${csudo} bash -c "echo 'TimeoutStartSec=0' >> ${nginx_service_config}"
|
||||||
|
${csudo} bash -c "echo 'StandardOutput=null' >> ${nginx_service_config}"
|
||||||
|
${csudo} bash -c "echo 'Restart=always' >> ${nginx_service_config}"
|
||||||
|
${csudo} bash -c "echo 'StartLimitBurst=3' >> ${nginx_service_config}"
|
||||||
|
${csudo} bash -c "echo 'StartLimitInterval=60s' >> ${nginx_service_config}"
|
||||||
|
${csudo} bash -c "echo >> ${nginx_service_config}"
|
||||||
|
${csudo} bash -c "echo '[Install]' >> ${nginx_service_config}"
|
||||||
|
${csudo} bash -c "echo 'WantedBy=multi-user.target' >> ${nginx_service_config}"
|
||||||
|
if ! ${csudo} systemctl enable nginxd &> /dev/null; then
|
||||||
|
${csudo} systemctl daemon-reexec
|
||||||
|
${csudo} systemctl enable nginxd
|
||||||
|
fi
|
||||||
|
${csudo} systemctl start nginxd
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function install_service() {
|
||||||
|
if ((${service_mod}==0)); then
|
||||||
|
install_service_on_systemd
|
||||||
|
elif ((${service_mod}==1)); then
|
||||||
|
install_service_on_sysvinit
|
||||||
|
else
|
||||||
|
# must manual stop tqd
|
||||||
|
kill_process tqd
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
vercomp () {
|
||||||
|
if [[ $1 == $2 ]]; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
local IFS=.
|
||||||
|
local i ver1=($1) ver2=($2)
|
||||||
|
# fill empty fields in ver1 with zeros
|
||||||
|
for ((i=${#ver1[@]}; i<${#ver2[@]}; i++)); do
|
||||||
|
ver1[i]=0
|
||||||
|
done
|
||||||
|
|
||||||
|
for ((i=0; i<${#ver1[@]}; i++)); do
|
||||||
|
if [[ -z ${ver2[i]} ]]
|
||||||
|
then
|
||||||
|
# fill empty fields in ver2 with zeros
|
||||||
|
ver2[i]=0
|
||||||
|
fi
|
||||||
|
if ((10#${ver1[i]} > 10#${ver2[i]}))
|
||||||
|
then
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
if ((10#${ver1[i]} < 10#${ver2[i]}))
|
||||||
|
then
|
||||||
|
return 2
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
function is_version_compatible() {
|
||||||
|
|
||||||
|
curr_version=$(${bin_dir}/tqd -V | head -1 | cut -d ' ' -f 3)
|
||||||
|
|
||||||
|
min_compatible_version=$(${script_dir}/bin/tqd -V | head -1 | cut -d ' ' -f 5)
|
||||||
|
|
||||||
|
vercomp $curr_version $min_compatible_version
|
||||||
|
case $? in
|
||||||
|
0) return 0;;
|
||||||
|
1) return 0;;
|
||||||
|
2) return 1;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
function update_tq() {
|
||||||
|
# Start to update
|
||||||
|
if [ ! -e tq.tar.gz ]; then
|
||||||
|
echo "File tq.tar.gz does not exist"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
install_jemalloc
|
||||||
|
tar -zxf tq.tar.gz
|
||||||
|
install_jemalloc
|
||||||
|
|
||||||
|
# Check if version compatible
|
||||||
|
if ! is_version_compatible; then
|
||||||
|
echo -e "${RED}Version incompatible${NC}"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo -e "${GREEN}Start to update TQ...${NC}"
|
||||||
|
# Stop the service if running
|
||||||
|
if pidof tqd &> /dev/null; then
|
||||||
|
if ((${service_mod}==0)); then
|
||||||
|
${csudo} systemctl stop tqd || :
|
||||||
|
elif ((${service_mod}==1)); then
|
||||||
|
${csudo} service tqd stop || :
|
||||||
|
else
|
||||||
|
kill_process tqd
|
||||||
|
fi
|
||||||
|
sleep 1
|
||||||
|
fi
|
||||||
|
if [ "$verMode" == "cluster" ]; then
|
||||||
|
if pidof nginx &> /dev/null; then
|
||||||
|
if ((${service_mod}==0)); then
|
||||||
|
${csudo} systemctl stop nginxd || :
|
||||||
|
elif ((${service_mod}==1)); then
|
||||||
|
${csudo} service nginxd stop || :
|
||||||
|
else
|
||||||
|
kill_process nginx
|
||||||
|
fi
|
||||||
|
sleep 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
install_main_path
|
||||||
|
|
||||||
|
install_log
|
||||||
|
install_header
|
||||||
|
install_lib
|
||||||
|
if [ "$pagMode" != "lite" ]; then
|
||||||
|
install_connector
|
||||||
|
fi
|
||||||
|
install_examples
|
||||||
|
if [ -z $1 ]; then
|
||||||
|
install_bin
|
||||||
|
install_service
|
||||||
|
install_config
|
||||||
|
|
||||||
|
openresty_work=false
|
||||||
|
if [ "$verMode" == "cluster" ]; then
|
||||||
|
# Check if openresty is installed
|
||||||
|
# Check if nginx is installed successfully
|
||||||
|
if type curl &> /dev/null; then
|
||||||
|
if curl -sSf http://127.0.0.1:${nginx_port} &> /dev/null; then
|
||||||
|
echo -e "\033[44;32;1mNginx for TQ is updated successfully!${NC}"
|
||||||
|
openresty_work=true
|
||||||
|
else
|
||||||
|
echo -e "\033[44;31;5mNginx for TQ does not work! Please try again!\033[0m"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
#echo
|
||||||
|
#echo -e "\033[44;32;1mTQ is updated successfully!${NC}"
|
||||||
|
echo
|
||||||
|
echo -e "${GREEN_DARK}To configure TQ ${NC}: edit /etc/tq/taos.cfg"
|
||||||
|
if ((${service_mod}==0)); then
|
||||||
|
echo -e "${GREEN_DARK}To start TQ ${NC}: ${csudo} systemctl start tqd${NC}"
|
||||||
|
elif ((${service_mod}==1)); then
|
||||||
|
echo -e "${GREEN_DARK}To start TQ ${NC}: ${csudo} service tqd start${NC}"
|
||||||
|
else
|
||||||
|
echo -e "${GREEN_DARK}To start TQ ${NC}: ./tqd${NC}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ${openresty_work} = 'true' ]; then
|
||||||
|
echo -e "${GREEN_DARK}To access TQ ${NC}: use ${GREEN_UNDERLINE}tq -h $serverFqdn${NC} in shell OR from ${GREEN_UNDERLINE}http://127.0.0.1:${nginx_port}${NC}"
|
||||||
|
else
|
||||||
|
echo -e "${GREEN_DARK}To access TQ ${NC}: use ${GREEN_UNDERLINE}tq -h $serverFqdn${NC} in shell${NC}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo -e "\033[44;32;1mTQ is updated successfully!${NC}"
|
||||||
|
else
|
||||||
|
install_bin
|
||||||
|
install_config
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo -e "\033[44;32;1mTQ client is updated successfully!${NC}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -rf $(tar -tf tq.tar.gz)
|
||||||
|
}
|
||||||
|
|
||||||
|
function install_tq() {
|
||||||
|
# Start to install
|
||||||
|
if [ ! -e tq.tar.gz ]; then
|
||||||
|
echo "File tq.tar.gz does not exist"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
tar -zxf tq.tar.gz
|
||||||
|
|
||||||
|
echo -e "${GREEN}Start to install TQ...${NC}"
|
||||||
|
|
||||||
|
install_main_path
|
||||||
|
|
||||||
|
if [ -z $1 ]; then
|
||||||
|
install_data
|
||||||
|
fi
|
||||||
|
|
||||||
|
install_log
|
||||||
|
install_header
|
||||||
|
install_lib
|
||||||
|
install_jemalloc
|
||||||
|
if [ "$pagMode" != "lite" ]; then
|
||||||
|
install_connector
|
||||||
|
fi
|
||||||
|
install_examples
|
||||||
|
|
||||||
|
if [ -z $1 ]; then # install service and client
|
||||||
|
# For installing new
|
||||||
|
install_bin
|
||||||
|
install_service
|
||||||
|
|
||||||
|
openresty_work=false
|
||||||
|
if [ "$verMode" == "cluster" ]; then
|
||||||
|
# Check if nginx is installed successfully
|
||||||
|
if type curl &> /dev/null; then
|
||||||
|
if curl -sSf http://127.0.0.1:${nginx_port} &> /dev/null; then
|
||||||
|
echo -e "\033[44;32;1mNginx for TQ is installed successfully!${NC}"
|
||||||
|
openresty_work=true
|
||||||
|
else
|
||||||
|
echo -e "\033[44;31;5mNginx for TQ does not work! Please try again!\033[0m"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
install_config
|
||||||
|
|
||||||
|
# Ask if to start the service
|
||||||
|
#echo
|
||||||
|
#echo -e "\033[44;32;1mTQ is installed successfully!${NC}"
|
||||||
|
echo
|
||||||
|
echo -e "${GREEN_DARK}To configure TQ ${NC}: edit /etc/tq/taos.cfg"
|
||||||
|
if ((${service_mod}==0)); then
|
||||||
|
echo -e "${GREEN_DARK}To start TQ ${NC}: ${csudo} systemctl start tqd${NC}"
|
||||||
|
elif ((${service_mod}==1)); then
|
||||||
|
echo -e "${GREEN_DARK}To start TQ ${NC}: ${csudo} service tqd start${NC}"
|
||||||
|
else
|
||||||
|
echo -e "${GREEN_DARK}To start TQ ${NC}: tqd${NC}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
#if [ ${openresty_work} = 'true' ]; then
|
||||||
|
# echo -e "${GREEN_DARK}To access TQ ${NC}: use ${GREEN_UNDERLINE}tq${NC} in shell OR from ${GREEN_UNDERLINE}http://127.0.0.1:${nginx_port}${NC}"
|
||||||
|
#else
|
||||||
|
# echo -e "${GREEN_DARK}To access TQ ${NC}: use ${GREEN_UNDERLINE}tq${NC} in shell${NC}"
|
||||||
|
#fi
|
||||||
|
|
||||||
|
if [ ! -z "$firstEp" ]; then
|
||||||
|
tmpFqdn=${firstEp%%:*}
|
||||||
|
substr=":"
|
||||||
|
if [[ $firstEp =~ $substr ]];then
|
||||||
|
tmpPort=${firstEp#*:}
|
||||||
|
else
|
||||||
|
tmpPort=""
|
||||||
|
fi
|
||||||
|
if [[ "$tmpPort" != "" ]];then
|
||||||
|
echo -e "${GREEN_DARK}To access TQ ${NC}: tq -h $tmpFqdn -P $tmpPort${GREEN_DARK} to login into cluster, then${NC}"
|
||||||
|
else
|
||||||
|
echo -e "${GREEN_DARK}To access TQ ${NC}: tq -h $tmpFqdn${GREEN_DARK} to login into cluster, then${NC}"
|
||||||
|
fi
|
||||||
|
echo -e "${GREEN_DARK}execute ${NC}: create dnode 'newDnodeFQDN:port'; ${GREEN_DARK}to add this new node${NC}"
|
||||||
|
echo
|
||||||
|
elif [ ! -z "$serverFqdn" ]; then
|
||||||
|
echo -e "${GREEN_DARK}To access TQ ${NC}: tq -h $serverFqdn${GREEN_DARK} to login into TQ server${NC}"
|
||||||
|
echo
|
||||||
|
fi
|
||||||
|
echo -e "\033[44;32;1mTQ is installed successfully!${NC}"
|
||||||
|
echo
|
||||||
|
else # Only install client
|
||||||
|
install_bin
|
||||||
|
install_config
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo -e "\033[44;32;1mTQ client is installed successfully!${NC}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -rf $(tar -tf tq.tar.gz)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
## ==============================Main program starts from here============================
|
||||||
|
serverFqdn=$(hostname)
|
||||||
|
if [ "$verType" == "server" ]; then
|
||||||
|
# Install server and client
|
||||||
|
if [ -x ${bin_dir}/tqd ]; then
|
||||||
|
update_flag=1
|
||||||
|
update_tq
|
||||||
|
else
|
||||||
|
install_tq
|
||||||
|
fi
|
||||||
|
elif [ "$verType" == "client" ]; then
|
||||||
|
interactiveFqdn=no
|
||||||
|
# Only install client
|
||||||
|
if [ -x ${bin_dir}/tq ]; then
|
||||||
|
update_flag=1
|
||||||
|
update_tq client
|
||||||
|
else
|
||||||
|
install_tq client
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "please input correct verType"
|
||||||
|
fi
|
|
@ -176,6 +176,7 @@ function install_bin() {
|
||||||
[ -x ${install_main_dir}/bin/remove_client.sh ] && ${csudo} ln -s ${install_main_dir}/bin/remove_client.sh ${bin_link_dir}/rmtaos || :
|
[ -x ${install_main_dir}/bin/remove_client.sh ] && ${csudo} ln -s ${install_main_dir}/bin/remove_client.sh ${bin_link_dir}/rmtaos || :
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function install_jemalloc() {
|
function install_jemalloc() {
|
||||||
if [ "$osType" != "Darwin" ]; then
|
if [ "$osType" != "Darwin" ]; then
|
||||||
/usr/bin/install -c -d /usr/local/bin
|
/usr/bin/install -c -d /usr/local/bin
|
||||||
|
@ -217,6 +218,7 @@ function install_jemalloc() {
|
||||||
/usr/bin/install -c -d /usr/local/share/man/man3
|
/usr/bin/install -c -d /usr/local/share/man/man3
|
||||||
/usr/bin/install -c -m 644 ${binary_dir}/build/share/man/man3/jemalloc.3 /usr/local/share/man/man3
|
/usr/bin/install -c -m 644 ${binary_dir}/build/share/man/man3/jemalloc.3 /usr/local/share/man/man3
|
||||||
fi
|
fi
|
||||||
|
${csudo} ldconfig
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,75 @@
|
||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Generate arbitrator's tar.gz setup package for all os system
|
||||||
|
|
||||||
|
set -e
|
||||||
|
#set -x
|
||||||
|
|
||||||
|
curr_dir=$(pwd)
|
||||||
|
compile_dir=$1
|
||||||
|
version=$2
|
||||||
|
build_time=$3
|
||||||
|
cpuType=$4
|
||||||
|
osType=$5
|
||||||
|
verMode=$6
|
||||||
|
verType=$7
|
||||||
|
pagMode=$8
|
||||||
|
|
||||||
|
script_dir="$(dirname $(readlink -f $0))"
|
||||||
|
top_dir="$(readlink -f ${script_dir}/../..)"
|
||||||
|
|
||||||
|
# create compressed install file.
|
||||||
|
build_dir="${compile_dir}/build"
|
||||||
|
code_dir="${top_dir}/src"
|
||||||
|
release_dir="${top_dir}/release"
|
||||||
|
|
||||||
|
#package_name='linux'
|
||||||
|
if [ "$verMode" == "cluster" ]; then
|
||||||
|
install_dir="${release_dir}/TQ-enterprise-arbitrator-${version}"
|
||||||
|
else
|
||||||
|
install_dir="${release_dir}/TQ-arbitrator-${version}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Directories and files.
|
||||||
|
bin_files="${build_dir}/bin/tarbitrator ${script_dir}/remove_arbi_tq.sh"
|
||||||
|
install_files="${script_dir}/install_arbi_tq.sh"
|
||||||
|
|
||||||
|
#header_files="${code_dir}/inc/taos.h ${code_dir}/inc/taoserror.h"
|
||||||
|
init_file_tarbitrator_deb=${script_dir}/../deb/tarbitratord
|
||||||
|
init_file_tarbitrator_rpm=${script_dir}/../rpm/tarbitratord
|
||||||
|
|
||||||
|
# make directories.
|
||||||
|
mkdir -p ${install_dir} && cp ${install_files} ${install_dir} && chmod a+x ${install_dir}/install_arbi_tq.sh || :
|
||||||
|
#mkdir -p ${install_dir}/inc && cp ${header_files} ${install_dir}/inc || :
|
||||||
|
mkdir -p ${install_dir}/bin && cp ${bin_files} ${install_dir}/bin && chmod a+x ${install_dir}/bin/* || :
|
||||||
|
mkdir -p ${install_dir}/init.d && cp ${init_file_tarbitrator_deb} ${install_dir}/init.d/tarbitratord.deb || :
|
||||||
|
mkdir -p ${install_dir}/init.d && cp ${init_file_tarbitrator_rpm} ${install_dir}/init.d/tarbitratord.rpm || :
|
||||||
|
|
||||||
|
cd ${release_dir}
|
||||||
|
|
||||||
|
if [ "$verMode" == "cluster" ]; then
|
||||||
|
pkg_name=${install_dir}-${osType}-${cpuType}
|
||||||
|
elif [ "$verMode" == "edge" ]; then
|
||||||
|
pkg_name=${install_dir}-${osType}-${cpuType}
|
||||||
|
else
|
||||||
|
echo "unknow verMode, nor cluster or edge"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$verType" == "beta" ]; then
|
||||||
|
pkg_name=${pkg_name}-${verType}
|
||||||
|
elif [ "$verType" == "stable" ]; then
|
||||||
|
pkg_name=${pkg_name}
|
||||||
|
else
|
||||||
|
echo "unknow verType, nor stabel or beta"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
tar -zcv -f "$(basename ${pkg_name}).tar.gz" $(basename ${install_dir}) --remove-files || :
|
||||||
|
exitcode=$?
|
||||||
|
if [ "$exitcode" != "0" ]; then
|
||||||
|
echo "tar ${pkg_name}.tar.gz error !!!"
|
||||||
|
exit $exitcode
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd ${curr_dir}
|
|
@ -0,0 +1,203 @@
|
||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Generate tar.gz package for linux client in all os system
|
||||||
|
set -e
|
||||||
|
#set -x
|
||||||
|
|
||||||
|
curr_dir=$(pwd)
|
||||||
|
compile_dir=$1
|
||||||
|
version=$2
|
||||||
|
build_time=$3
|
||||||
|
cpuType=$4
|
||||||
|
osType=$5
|
||||||
|
verMode=$6
|
||||||
|
verType=$7
|
||||||
|
pagMode=$8
|
||||||
|
|
||||||
|
if [ "$osType" != "Darwin" ]; then
|
||||||
|
script_dir="$(dirname $(readlink -f $0))"
|
||||||
|
top_dir="$(readlink -f ${script_dir}/../..)"
|
||||||
|
else
|
||||||
|
script_dir=`dirname $0`
|
||||||
|
cd ${script_dir}
|
||||||
|
script_dir="$(pwd)"
|
||||||
|
top_dir=${script_dir}/../..
|
||||||
|
fi
|
||||||
|
|
||||||
|
# create compressed install file.
|
||||||
|
build_dir="${compile_dir}/build"
|
||||||
|
code_dir="${top_dir}/src"
|
||||||
|
release_dir="${top_dir}/release"
|
||||||
|
|
||||||
|
#package_name='linux'
|
||||||
|
|
||||||
|
if [ "$verMode" == "cluster" ]; then
|
||||||
|
install_dir="${release_dir}/TQ-enterprise-client-${version}"
|
||||||
|
else
|
||||||
|
install_dir="${release_dir}/TQ-client-${version}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Directories and files.
|
||||||
|
|
||||||
|
if [ "$osType" != "Darwin" ]; then
|
||||||
|
# if [ "$pagMode" == "lite" ]; then
|
||||||
|
# strip ${build_dir}/bin/tqd
|
||||||
|
# strip ${build_dir}/bin/tq
|
||||||
|
# bin_files="${build_dir}/bin/tq ${script_dir}/remove_client_tq.sh"
|
||||||
|
# else
|
||||||
|
# bin_files="${build_dir}/bin/tq ${build_dir}/bin/tqdemo ${script_dir}/remove_client_tq.sh ${script_dir}/set_core.sh"
|
||||||
|
# fi
|
||||||
|
lib_files="${build_dir}/lib/libtaos.so.${version}"
|
||||||
|
else
|
||||||
|
bin_files="${build_dir}/bin/tq ${script_dir}/remove_client_tq.sh"
|
||||||
|
lib_files="${build_dir}/lib/libtaos.${version}.dylib"
|
||||||
|
fi
|
||||||
|
|
||||||
|
header_files="${code_dir}/inc/taos.h ${code_dir}/inc/taoserror.h"
|
||||||
|
if [ "$verMode" == "cluster" ]; then
|
||||||
|
cfg_dir="${top_dir}/../enterprise/packaging/cfg"
|
||||||
|
else
|
||||||
|
cfg_dir="${top_dir}/packaging/cfg"
|
||||||
|
fi
|
||||||
|
|
||||||
|
install_files="${script_dir}/install_client_tq.sh"
|
||||||
|
|
||||||
|
# make directories.
|
||||||
|
mkdir -p ${install_dir}
|
||||||
|
mkdir -p ${install_dir}/inc && cp ${header_files} ${install_dir}/inc
|
||||||
|
mkdir -p ${install_dir}/cfg && cp ${cfg_dir}/taos.cfg ${install_dir}/cfg/taos.cfg
|
||||||
|
|
||||||
|
sed -i '/dataDir/ {s/taos/tq/g}' ${install_dir}/cfg/taos.cfg
|
||||||
|
sed -i '/logDir/ {s/taos/tq/g}' ${install_dir}/cfg/taos.cfg
|
||||||
|
sed -i "s/TDengine/TQ/g" ${install_dir}/cfg/taos.cfg
|
||||||
|
|
||||||
|
mkdir -p ${install_dir}/bin
|
||||||
|
if [ "$osType" != "Darwin" ]; then
|
||||||
|
if [ "$pagMode" == "lite" ]; then
|
||||||
|
strip ${build_dir}/bin/taos
|
||||||
|
cp ${build_dir}/bin/taos ${install_dir}/bin/tq
|
||||||
|
cp ${script_dir}/remove_tq.sh ${install_dir}/bin
|
||||||
|
else
|
||||||
|
cp ${build_dir}/bin/taos ${install_dir}/bin/tq
|
||||||
|
cp ${script_dir}/remove_tq.sh ${install_dir}/bin
|
||||||
|
cp ${build_dir}/bin/taosdemo ${install_dir}/bin/tqdemo
|
||||||
|
cp ${build_dir}/bin/taosdump ${install_dir}/bin/tqdump
|
||||||
|
cp ${script_dir}/set_core.sh ${install_dir}/bin
|
||||||
|
cp ${script_dir}/get_client.sh ${install_dir}/bin
|
||||||
|
cp ${script_dir}/taosd-dump-cfg.gdb ${install_dir}/bin
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
cp ${bin_files} ${install_dir}/bin
|
||||||
|
fi
|
||||||
|
chmod a+x ${install_dir}/bin/* || :
|
||||||
|
|
||||||
|
cd ${install_dir}
|
||||||
|
|
||||||
|
if [ "$osType" != "Darwin" ]; then
|
||||||
|
tar -zcv -f tq.tar.gz * --remove-files || :
|
||||||
|
else
|
||||||
|
tar -zcv -f tq.tar.gz * || :
|
||||||
|
mv tq.tar.gz ..
|
||||||
|
rm -rf ./*
|
||||||
|
mv ../tq.tar.gz .
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd ${curr_dir}
|
||||||
|
cp ${install_files} ${install_dir}
|
||||||
|
if [ "$osType" == "Darwin" ]; then
|
||||||
|
sed 's/osType=Linux/osType=Darwin/g' ${install_dir}/install_client_tq.sh >> install_client_tq_temp.sh
|
||||||
|
mv install_client_tq_temp.sh ${install_dir}/install_client_tq.sh
|
||||||
|
fi
|
||||||
|
if [ "$pagMode" == "lite" ]; then
|
||||||
|
sed 's/pagMode=full/pagMode=lite/g' ${install_dir}/install_client_tq.sh >> install_client_tq_temp.sh
|
||||||
|
mv install_client_tq_temp.sh ${install_dir}/install_client_tq.sh
|
||||||
|
fi
|
||||||
|
chmod a+x ${install_dir}/install_client_tq.sh
|
||||||
|
|
||||||
|
# Copy example code
|
||||||
|
mkdir -p ${install_dir}/examples
|
||||||
|
examples_dir="${top_dir}/tests/examples"
|
||||||
|
cp -r ${examples_dir}/c ${install_dir}/examples
|
||||||
|
sed -i '/passwd/ {s/taosdata/tqueue/g}' ${install_dir}/examples/c/*.c
|
||||||
|
sed -i '/root/ {s/taosdata/tqueue/g}' ${install_dir}/examples/c/*.c
|
||||||
|
|
||||||
|
if [[ "$pagMode" != "lite" ]] && [[ "$cpuType" != "aarch32" ]]; then
|
||||||
|
cp -r ${examples_dir}/JDBC ${install_dir}/examples
|
||||||
|
cp -r ${examples_dir}/matlab ${install_dir}/examples
|
||||||
|
sed -i '/password/ {s/taosdata/tqueue/g}' ${install_dir}/examples/matlab/TDengineDemo.m
|
||||||
|
cp -r ${examples_dir}/python ${install_dir}/examples
|
||||||
|
sed -i '/password/ {s/taosdata/tqueue/g}' ${install_dir}/examples/python/read_example.py
|
||||||
|
cp -r ${examples_dir}/R ${install_dir}/examples
|
||||||
|
sed -i '/password/ {s/taosdata/tqueue/g}' ${install_dir}/examples/R/command.txt
|
||||||
|
cp -r ${examples_dir}/go ${install_dir}/examples
|
||||||
|
sed -i '/root/ {s/taosdata/tqueue/g}' ${install_dir}/examples/go/taosdemo.go
|
||||||
|
fi
|
||||||
|
# Copy driver
|
||||||
|
mkdir -p ${install_dir}/driver
|
||||||
|
cp ${lib_files} ${install_dir}/driver
|
||||||
|
|
||||||
|
# Copy connector
|
||||||
|
connector_dir="${code_dir}/connector"
|
||||||
|
mkdir -p ${install_dir}/connector
|
||||||
|
|
||||||
|
if [[ "$pagMode" != "lite" ]] && [[ "$cpuType" != "aarch32" ]]; then
|
||||||
|
if [ "$osType" != "Darwin" ]; then
|
||||||
|
cp ${build_dir}/lib/*.jar ${install_dir}/connector ||:
|
||||||
|
fi
|
||||||
|
if [ -d "${connector_dir}/grafanaplugin/dist" ]; then
|
||||||
|
cp -r ${connector_dir}/grafanaplugin/dist ${install_dir}/connector/grafanaplugin
|
||||||
|
else
|
||||||
|
echo "WARNING: grafanaplugin bunlded dir not found, please check if want to use it!"
|
||||||
|
fi
|
||||||
|
if find ${connector_dir}/go -mindepth 1 -maxdepth 1 | read; then
|
||||||
|
cp -r ${connector_dir}/go ${install_dir}/connector
|
||||||
|
else
|
||||||
|
echo "WARNING: go connector not found, please check if want to use it!"
|
||||||
|
fi
|
||||||
|
cp -r ${connector_dir}/python ${install_dir}/connector
|
||||||
|
|
||||||
|
sed -i '/password/ {s/taosdata/tqueue/g}' ${install_dir}/connector/python/taos/cinterface.py
|
||||||
|
|
||||||
|
sed -i '/password/ {s/taosdata/tqueue/g}' ${install_dir}/connector/python/taos/subscription.py
|
||||||
|
|
||||||
|
sed -i '/self._password/ {s/taosdata/tqueue/g}' ${install_dir}/connector/python/taos/connection.py
|
||||||
|
fi
|
||||||
|
# Copy release note
|
||||||
|
# cp ${script_dir}/release_note ${install_dir}
|
||||||
|
|
||||||
|
# exit 1
|
||||||
|
|
||||||
|
cd ${release_dir}
|
||||||
|
|
||||||
|
if [ "$verMode" == "cluster" ]; then
|
||||||
|
pkg_name=${install_dir}-${osType}-${cpuType}
|
||||||
|
elif [ "$verMode" == "edge" ]; then
|
||||||
|
pkg_name=${install_dir}-${osType}-${cpuType}
|
||||||
|
else
|
||||||
|
echo "unknow verMode, nor cluster or edge"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$pagMode" == "lite" ]; then
|
||||||
|
pkg_name=${pkg_name}-Lite
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$verType" == "beta" ]; then
|
||||||
|
pkg_name=${pkg_name}-${verType}
|
||||||
|
elif [ "$verType" == "stable" ]; then
|
||||||
|
pkg_name=${pkg_name}
|
||||||
|
else
|
||||||
|
echo "unknow verType, nor stable or beta"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$osType" != "Darwin" ]; then
|
||||||
|
tar -zcv -f "$(basename ${pkg_name}).tar.gz" $(basename ${install_dir}) --remove-files || :
|
||||||
|
else
|
||||||
|
tar -zcv -f "$(basename ${pkg_name}).tar.gz" $(basename ${install_dir}) || :
|
||||||
|
mv "$(basename ${pkg_name}).tar.gz" ..
|
||||||
|
rm -rf ./*
|
||||||
|
mv ../"$(basename ${pkg_name}).tar.gz" .
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd ${curr_dir}
|
|
@ -0,0 +1,224 @@
|
||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Generate tar.gz package for all os system
|
||||||
|
|
||||||
|
set -e
|
||||||
|
#set -x
|
||||||
|
|
||||||
|
curr_dir=$(pwd)
|
||||||
|
compile_dir=$1
|
||||||
|
version=$2
|
||||||
|
build_time=$3
|
||||||
|
cpuType=$4
|
||||||
|
osType=$5
|
||||||
|
verMode=$6
|
||||||
|
verType=$7
|
||||||
|
pagMode=$8
|
||||||
|
|
||||||
|
script_dir="$(dirname $(readlink -f $0))"
|
||||||
|
top_dir="$(readlink -f ${script_dir}/../..)"
|
||||||
|
|
||||||
|
# create compressed install file.
|
||||||
|
build_dir="${compile_dir}/build"
|
||||||
|
code_dir="${top_dir}/src"
|
||||||
|
release_dir="${top_dir}/release"
|
||||||
|
|
||||||
|
#package_name='linux'
|
||||||
|
if [ "$verMode" == "cluster" ]; then
|
||||||
|
install_dir="${release_dir}/TQ-enterprise-server-${version}"
|
||||||
|
else
|
||||||
|
install_dir="${release_dir}/TQ-server-${version}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Directories and files.
|
||||||
|
#if [ "$pagMode" == "lite" ]; then
|
||||||
|
# strip ${build_dir}/bin/taosd
|
||||||
|
# strip ${build_dir}/bin/taos
|
||||||
|
# bin_files="${build_dir}/bin/tqd ${build_dir}/bin/tq ${script_dir}/remove_tq.sh"
|
||||||
|
#else
|
||||||
|
# bin_files="${build_dir}/bin/tqd ${build_dir}/bin/tq ${build_dir}/bin/tqdemo ${build_dir}/bin/tarbitrator ${script_dir}/remove_tq.sh\
|
||||||
|
# ${script_dir}/set_core.sh ${script_dir}/startPre.sh ${script_dir}/taosd-dump-cfg.gdb"
|
||||||
|
#fi
|
||||||
|
|
||||||
|
lib_files="${build_dir}/lib/libtaos.so.${version}"
|
||||||
|
header_files="${code_dir}/inc/taos.h ${code_dir}/inc/taoserror.h"
|
||||||
|
if [ "$verMode" == "cluster" ]; then
|
||||||
|
cfg_dir="${top_dir}/../enterprise/packaging/cfg"
|
||||||
|
else
|
||||||
|
cfg_dir="${top_dir}/packaging/cfg"
|
||||||
|
fi
|
||||||
|
install_files="${script_dir}/install_tq.sh"
|
||||||
|
nginx_dir="${code_dir}/../../enterprise/src/plugins/web"
|
||||||
|
|
||||||
|
# Init file
|
||||||
|
#init_dir=${script_dir}/deb
|
||||||
|
#if [ $package_type = "centos" ]; then
|
||||||
|
# init_dir=${script_dir}/rpm
|
||||||
|
#fi
|
||||||
|
#init_files=${init_dir}/tqd
|
||||||
|
# temp use rpm's tqd. TODO: later modify according to os type
|
||||||
|
#init_file_deb=${script_dir}/../deb/tqd
|
||||||
|
#init_file_rpm=${script_dir}/../rpm/tqd
|
||||||
|
#init_file_tarbitrator_deb=${script_dir}/../deb/tarbitratord
|
||||||
|
#init_file_tarbitrator_rpm=${script_dir}/../rpm/tarbitratord
|
||||||
|
|
||||||
|
# make directories.
|
||||||
|
mkdir -p ${install_dir}
|
||||||
|
mkdir -p ${install_dir}/inc && cp ${header_files} ${install_dir}/inc
|
||||||
|
mkdir -p ${install_dir}/cfg && cp ${cfg_dir}/taos.cfg ${install_dir}/cfg/taos.cfg
|
||||||
|
|
||||||
|
#mkdir -p ${install_dir}/bin && cp ${bin_files} ${install_dir}/bin && chmod a+x ${install_dir}/bin/* || :
|
||||||
|
mkdir -p ${install_dir}/bin
|
||||||
|
if [ "$pagMode" == "lite" ]; then
|
||||||
|
strip ${build_dir}/bin/taosd
|
||||||
|
strip ${build_dir}/bin/taos
|
||||||
|
# bin_files="${build_dir}/bin/tqd ${build_dir}/bin/tq ${script_dir}/remove_tq.sh"
|
||||||
|
cp ${build_dir}/bin/taos ${install_dir}/bin/tq
|
||||||
|
cp ${build_dir}/bin/taosd ${install_dir}/bin/tqd
|
||||||
|
cp ${script_dir}/remove_tq.sh ${install_dir}/bin
|
||||||
|
else
|
||||||
|
# bin_files="${build_dir}/bin/tqd ${build_dir}/bin/tq ${build_dir}/bin/tqdemo ${build_dir}/bin/tarbitrator ${script_dir}/remove_tq.sh ${script_dir}/set_core.sh"
|
||||||
|
cp ${build_dir}/bin/taos ${install_dir}/bin/tq
|
||||||
|
cp ${build_dir}/bin/taosd ${install_dir}/bin/tqd
|
||||||
|
cp ${script_dir}/remove_tq.sh ${install_dir}/bin
|
||||||
|
cp ${build_dir}/bin/taosdemo ${install_dir}/bin/tqdemo
|
||||||
|
cp ${build_dir}/bin/taosdump ${install_dir}/bin/tqdump
|
||||||
|
cp ${build_dir}/bin/tarbitrator ${install_dir}/bin
|
||||||
|
cp ${script_dir}/set_core.sh ${install_dir}/bin
|
||||||
|
cp ${script_dir}/get_client.sh ${install_dir}/bin
|
||||||
|
cp ${script_dir}/startPre.sh ${install_dir}/bin
|
||||||
|
cp ${script_dir}/taosd-dump-cfg.gdb ${install_dir}/bin
|
||||||
|
fi
|
||||||
|
chmod a+x ${install_dir}/bin/* || :
|
||||||
|
|
||||||
|
#mkdir -p ${install_dir}/init.d && cp ${init_file_deb} ${install_dir}/init.d/tqd.deb
|
||||||
|
#mkdir -p ${install_dir}/init.d && cp ${init_file_rpm} ${install_dir}/init.d/tqd.rpm
|
||||||
|
#mkdir -p ${install_dir}/init.d && cp ${init_file_tarbitrator_deb} ${install_dir}/init.d/tarbitratord.deb || :
|
||||||
|
#mkdir -p ${install_dir}/init.d && cp ${init_file_tarbitrator_rpm} ${install_dir}/init.d/tarbitratord.rpm || :
|
||||||
|
|
||||||
|
if [ "$verMode" == "cluster" ]; then
|
||||||
|
sed 's/verMode=edge/verMode=cluster/g' ${install_dir}/bin/remove_tq.sh >> remove_tq_temp.sh
|
||||||
|
mv remove_tq_temp.sh ${install_dir}/bin/remove_tq.sh
|
||||||
|
|
||||||
|
mkdir -p ${install_dir}/nginxd && cp -r ${nginx_dir}/* ${install_dir}/nginxd
|
||||||
|
cp ${nginx_dir}/png/taos.png ${install_dir}/nginxd/admin/images/taos.png
|
||||||
|
rm -rf ${install_dir}/nginxd/png
|
||||||
|
|
||||||
|
sed -i "s/TDengine/TQ/g" ${install_dir}/nginxd/admin/*.html
|
||||||
|
sed -i "s/TDengine/TQ/g" ${install_dir}/nginxd/admin/js/*.js
|
||||||
|
|
||||||
|
sed -i '/dataDir/ {s/taos/tq/g}' ${install_dir}/cfg/taos.cfg
|
||||||
|
sed -i '/logDir/ {s/taos/tq/g}' ${install_dir}/cfg/taos.cfg
|
||||||
|
sed -i "s/TDengine/TQ/g" ${install_dir}/cfg/taos.cfg
|
||||||
|
|
||||||
|
if [ "$cpuType" == "aarch64" ]; then
|
||||||
|
cp -f ${install_dir}/nginxd/sbin/arm/64bit/nginx ${install_dir}/nginxd/sbin/
|
||||||
|
elif [ "$cpuType" == "aarch32" ]; then
|
||||||
|
cp -f ${install_dir}/nginxd/sbin/arm/32bit/nginx ${install_dir}/nginxd/sbin/
|
||||||
|
fi
|
||||||
|
rm -rf ${install_dir}/nginxd/sbin/arm
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd ${install_dir}
|
||||||
|
tar -zcv -f tq.tar.gz * --remove-files || :
|
||||||
|
exitcode=$?
|
||||||
|
if [ "$exitcode" != "0" ]; then
|
||||||
|
echo "tar tq.tar.gz error !!!"
|
||||||
|
exit $exitcode
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd ${curr_dir}
|
||||||
|
cp ${install_files} ${install_dir}
|
||||||
|
if [ "$verMode" == "cluster" ]; then
|
||||||
|
sed 's/verMode=edge/verMode=cluster/g' ${install_dir}/install_tq.sh >> install_tq_temp.sh
|
||||||
|
mv install_tq_temp.sh ${install_dir}/install_tq.sh
|
||||||
|
fi
|
||||||
|
if [ "$pagMode" == "lite" ]; then
|
||||||
|
sed 's/pagMode=full/pagMode=lite/g' ${install_dir}/install.sh >> install_tq_temp.sh
|
||||||
|
mv install_tq_temp.sh ${install_dir}/install_tq.sh
|
||||||
|
fi
|
||||||
|
chmod a+x ${install_dir}/install_tq.sh
|
||||||
|
|
||||||
|
# Copy example code
|
||||||
|
mkdir -p ${install_dir}/examples
|
||||||
|
examples_dir="${top_dir}/tests/examples"
|
||||||
|
cp -r ${examples_dir}/c ${install_dir}/examples
|
||||||
|
sed -i '/passwd/ {s/taosdata/tqueue/g}' ${install_dir}/examples/c/*.c
|
||||||
|
sed -i '/root/ {s/taosdata/tqueue/g}' ${install_dir}/examples/c/*.c
|
||||||
|
|
||||||
|
if [[ "$pagMode" != "lite" ]] && [[ "$cpuType" != "aarch32" ]]; then
|
||||||
|
cp -r ${examples_dir}/JDBC ${install_dir}/examples
|
||||||
|
cp -r ${examples_dir}/matlab ${install_dir}/examples
|
||||||
|
sed -i '/password/ {s/taosdata/tqueue/g}' ${install_dir}/examples/matlab/TDengineDemo.m
|
||||||
|
cp -r ${examples_dir}/python ${install_dir}/examples
|
||||||
|
sed -i '/password/ {s/taosdata/tqueue/g}' ${install_dir}/examples/python/read_example.py
|
||||||
|
cp -r ${examples_dir}/R ${install_dir}/examples
|
||||||
|
sed -i '/password/ {s/taosdata/tqueue/g}' ${install_dir}/examples/R/command.txt
|
||||||
|
cp -r ${examples_dir}/go ${install_dir}/examples
|
||||||
|
sed -i '/root/ {s/taosdata/tqueue/g}' ${install_dir}/examples/go/taosdemo.go
|
||||||
|
fi
|
||||||
|
# Copy driver
|
||||||
|
mkdir -p ${install_dir}/driver
|
||||||
|
cp ${lib_files} ${install_dir}/driver
|
||||||
|
|
||||||
|
# Copy connector
|
||||||
|
connector_dir="${code_dir}/connector"
|
||||||
|
mkdir -p ${install_dir}/connector
|
||||||
|
if [[ "$pagMode" != "lite" ]] && [[ "$cpuType" != "aarch32" ]]; then
|
||||||
|
cp ${build_dir}/lib/*.jar ${install_dir}/connector ||:
|
||||||
|
|
||||||
|
if [ -d "${connector_dir}/grafanaplugin/dist" ]; then
|
||||||
|
cp -r ${connector_dir}/grafanaplugin/dist ${install_dir}/connector/grafanaplugin
|
||||||
|
else
|
||||||
|
echo "WARNING: grafanaplugin bundled dir not found, please check if want to use it!"
|
||||||
|
fi
|
||||||
|
if find ${connector_dir}/go -mindepth 1 -maxdepth 1 | read; then
|
||||||
|
cp -r ${connector_dir}/go ${install_dir}/connector
|
||||||
|
else
|
||||||
|
echo "WARNING: go connector not found, please check if want to use it!"
|
||||||
|
fi
|
||||||
|
cp -r ${connector_dir}/python ${install_dir}/connector/
|
||||||
|
|
||||||
|
sed -i '/password/ {s/taosdata/tqueue/g}' ${install_dir}/connector/python/taos/cinterface.py
|
||||||
|
|
||||||
|
sed -i '/password/ {s/taosdata/tqueue/g}' ${install_dir}/connector/python/taos/subscription.py
|
||||||
|
|
||||||
|
sed -i '/self._password/ {s/taosdata/tqueue/g}' ${install_dir}/connector/python/taos/connection.py
|
||||||
|
fi
|
||||||
|
# Copy release note
|
||||||
|
# cp ${script_dir}/release_note ${install_dir}
|
||||||
|
|
||||||
|
# exit 1
|
||||||
|
|
||||||
|
cd ${release_dir}
|
||||||
|
|
||||||
|
if [ "$verMode" == "cluster" ]; then
|
||||||
|
pkg_name=${install_dir}-${osType}-${cpuType}
|
||||||
|
elif [ "$verMode" == "edge" ]; then
|
||||||
|
pkg_name=${install_dir}-${osType}-${cpuType}
|
||||||
|
else
|
||||||
|
echo "unknow verMode, nor cluster or edge"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$pagMode" == "lite" ]; then
|
||||||
|
pkg_name=${pkg_name}-Lite
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$verType" == "beta" ]; then
|
||||||
|
pkg_name=${pkg_name}-${verType}
|
||||||
|
elif [ "$verType" == "stable" ]; then
|
||||||
|
pkg_name=${pkg_name}
|
||||||
|
else
|
||||||
|
echo "unknow verType, nor stabel or beta"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
tar -zcv -f "$(basename ${pkg_name}).tar.gz" $(basename ${install_dir}) --remove-files || :
|
||||||
|
exitcode=$?
|
||||||
|
if [ "$exitcode" != "0" ]; then
|
||||||
|
echo "tar ${pkg_name}.tar.gz error !!!"
|
||||||
|
exit $exitcode
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd ${curr_dir}
|
|
@ -0,0 +1,130 @@
|
||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Script to stop the service and uninstall TQ's arbitrator
|
||||||
|
|
||||||
|
set -e
|
||||||
|
#set -x
|
||||||
|
|
||||||
|
verMode=edge
|
||||||
|
|
||||||
|
RED='\033[0;31m'
|
||||||
|
GREEN='\033[1;32m'
|
||||||
|
NC='\033[0m'
|
||||||
|
|
||||||
|
#install main path
|
||||||
|
install_main_dir="/usr/local/tarbitrator"
|
||||||
|
bin_link_dir="/usr/bin"
|
||||||
|
#inc_link_dir="/usr/include"
|
||||||
|
|
||||||
|
service_config_dir="/etc/systemd/system"
|
||||||
|
tarbitrator_service_name="tarbitratord"
|
||||||
|
csudo=""
|
||||||
|
if command -v sudo > /dev/null; then
|
||||||
|
csudo="sudo"
|
||||||
|
fi
|
||||||
|
|
||||||
|
initd_mod=0
|
||||||
|
service_mod=2
|
||||||
|
if pidof systemd &> /dev/null; then
|
||||||
|
service_mod=0
|
||||||
|
elif $(which service &> /dev/null); then
|
||||||
|
service_mod=1
|
||||||
|
service_config_dir="/etc/init.d"
|
||||||
|
if $(which chkconfig &> /dev/null); then
|
||||||
|
initd_mod=1
|
||||||
|
elif $(which insserv &> /dev/null); then
|
||||||
|
initd_mod=2
|
||||||
|
elif $(which update-rc.d &> /dev/null); then
|
||||||
|
initd_mod=3
|
||||||
|
else
|
||||||
|
service_mod=2
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
service_mod=2
|
||||||
|
fi
|
||||||
|
|
||||||
|
function kill_tarbitrator() {
|
||||||
|
pid=$(ps -ef | grep "tarbitrator" | grep -v "grep" | awk '{print $2}')
|
||||||
|
if [ -n "$pid" ]; then
|
||||||
|
${csudo} kill -9 $pid || :
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
function clean_bin() {
|
||||||
|
# Remove link
|
||||||
|
${csudo} rm -f ${bin_link_dir}/tarbitrator || :
|
||||||
|
}
|
||||||
|
|
||||||
|
function clean_header() {
|
||||||
|
# Remove link
|
||||||
|
${csudo} rm -f ${inc_link_dir}/taos.h || :
|
||||||
|
${csudo} rm -f ${inc_link_dir}/taoserror.h || :
|
||||||
|
}
|
||||||
|
|
||||||
|
function clean_log() {
|
||||||
|
# Remove link
|
||||||
|
${csudo} rm -rf /arbitrator.log || :
|
||||||
|
}
|
||||||
|
|
||||||
|
function clean_service_on_systemd() {
|
||||||
|
tarbitratord_service_config="${service_config_dir}/${tarbitrator_service_name}.service"
|
||||||
|
|
||||||
|
if systemctl is-active --quiet ${tarbitrator_service_name}; then
|
||||||
|
echo "TQ tarbitrator is running, stopping it..."
|
||||||
|
${csudo} systemctl stop ${tarbitrator_service_name} &> /dev/null || echo &> /dev/null
|
||||||
|
fi
|
||||||
|
${csudo} systemctl disable ${tarbitrator_service_name} &> /dev/null || echo &> /dev/null
|
||||||
|
|
||||||
|
${csudo} rm -f ${tarbitratord_service_config}
|
||||||
|
}
|
||||||
|
|
||||||
|
function clean_service_on_sysvinit() {
|
||||||
|
if pidof tarbitrator &> /dev/null; then
|
||||||
|
echo "TQ's tarbitrator is running, stopping it..."
|
||||||
|
${csudo} service tarbitratord stop || :
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ((${initd_mod}==1)); then
|
||||||
|
if [ -e ${service_config_dir}/tarbitratord ]; then
|
||||||
|
${csudo} chkconfig --del tarbitratord || :
|
||||||
|
fi
|
||||||
|
elif ((${initd_mod}==2)); then
|
||||||
|
if [ -e ${service_config_dir}/tarbitratord ]; then
|
||||||
|
${csudo} insserv -r tarbitratord || :
|
||||||
|
fi
|
||||||
|
elif ((${initd_mod}==3)); then
|
||||||
|
if [ -e ${service_config_dir}/tarbitratord ]; then
|
||||||
|
${csudo} update-rc.d -f tarbitratord remove || :
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
${csudo} rm -f ${service_config_dir}/tarbitratord || :
|
||||||
|
|
||||||
|
if $(which init &> /dev/null); then
|
||||||
|
${csudo} init q || :
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function clean_service() {
|
||||||
|
if ((${service_mod}==0)); then
|
||||||
|
clean_service_on_systemd
|
||||||
|
elif ((${service_mod}==1)); then
|
||||||
|
clean_service_on_sysvinit
|
||||||
|
else
|
||||||
|
# must manual stop
|
||||||
|
kill_tarbitrator
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Stop service and disable booting start.
|
||||||
|
clean_service
|
||||||
|
# Remove binary file and links
|
||||||
|
clean_bin
|
||||||
|
# Remove header file.
|
||||||
|
##clean_header
|
||||||
|
# Remove log file
|
||||||
|
clean_log
|
||||||
|
|
||||||
|
${csudo} rm -rf ${install_main_dir}
|
||||||
|
|
||||||
|
echo -e "${GREEN}TQ's arbitrator is removed successfully!${NC}"
|
||||||
|
echo
|
|
@ -0,0 +1,85 @@
|
||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Script to stop the client and uninstall database, but retain the config and log files.
|
||||||
|
set -e
|
||||||
|
# set -x
|
||||||
|
|
||||||
|
RED='\033[0;31m'
|
||||||
|
GREEN='\033[1;32m'
|
||||||
|
NC='\033[0m'
|
||||||
|
|
||||||
|
#install main path
|
||||||
|
install_main_dir="/usr/local/tq"
|
||||||
|
|
||||||
|
log_link_dir="/usr/local/tq/log"
|
||||||
|
cfg_link_dir="/usr/local/tq/cfg"
|
||||||
|
bin_link_dir="/usr/bin"
|
||||||
|
lib_link_dir="/usr/lib"
|
||||||
|
lib64_link_dir="/usr/lib64"
|
||||||
|
inc_link_dir="/usr/include"
|
||||||
|
|
||||||
|
|
||||||
|
# v1.5 jar dir
|
||||||
|
#v15_java_app_dir="/usr/local/lib/tq"
|
||||||
|
|
||||||
|
csudo=""
|
||||||
|
if command -v sudo > /dev/null; then
|
||||||
|
csudo="sudo"
|
||||||
|
fi
|
||||||
|
|
||||||
|
function kill_client() {
|
||||||
|
#pid=$(ps -ef | grep "tq" | grep -v "grep" | awk '{print $2}')
|
||||||
|
if [ -n "$(pidof tq)" ]; then
|
||||||
|
${csudo} kill -9 $pid || :
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function clean_bin() {
|
||||||
|
# Remove link
|
||||||
|
${csudo} rm -f ${bin_link_dir}/tq || :
|
||||||
|
${csudo} rm -f ${bin_link_dir}/tqdemo || :
|
||||||
|
${csudo} rm -f ${bin_link_dir}/tqdump || :
|
||||||
|
${csudo} rm -f ${bin_link_dir}/rmtq || :
|
||||||
|
${csudo} rm -f ${bin_link_dir}/set_core || :
|
||||||
|
}
|
||||||
|
|
||||||
|
function clean_lib() {
|
||||||
|
# Remove link
|
||||||
|
${csudo} rm -f ${lib_link_dir}/libtaos.* || :
|
||||||
|
${csudo} rm -f ${lib64_link_dir}/libtaos.* || :
|
||||||
|
#${csudo} rm -rf ${v15_java_app_dir} || :
|
||||||
|
}
|
||||||
|
|
||||||
|
function clean_header() {
|
||||||
|
# Remove link
|
||||||
|
${csudo} rm -f ${inc_link_dir}/taos.h || :
|
||||||
|
${csudo} rm -f ${inc_link_dir}/taoserror.h || :
|
||||||
|
}
|
||||||
|
|
||||||
|
function clean_config() {
|
||||||
|
# Remove link
|
||||||
|
${csudo} rm -f ${cfg_link_dir}/* || :
|
||||||
|
}
|
||||||
|
|
||||||
|
function clean_log() {
|
||||||
|
# Remove link
|
||||||
|
${csudo} rm -rf ${log_link_dir} || :
|
||||||
|
}
|
||||||
|
|
||||||
|
# Stop client.
|
||||||
|
kill_client
|
||||||
|
# Remove binary file and links
|
||||||
|
clean_bin
|
||||||
|
# Remove header file.
|
||||||
|
clean_header
|
||||||
|
# Remove lib file
|
||||||
|
clean_lib
|
||||||
|
# Remove link log directory
|
||||||
|
clean_log
|
||||||
|
# Remove link configuration file
|
||||||
|
clean_config
|
||||||
|
|
||||||
|
${csudo} rm -rf ${install_main_dir}
|
||||||
|
|
||||||
|
echo -e "${GREEN}TQ client is removed successfully!${NC}"
|
||||||
|
echo
|
|
@ -0,0 +1,227 @@
|
||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Script to stop the service and uninstall TDengine, but retain the config, data and log files.
|
||||||
|
|
||||||
|
set -e
|
||||||
|
#set -x
|
||||||
|
|
||||||
|
verMode=edge
|
||||||
|
|
||||||
|
RED='\033[0;31m'
|
||||||
|
GREEN='\033[1;32m'
|
||||||
|
NC='\033[0m'
|
||||||
|
|
||||||
|
#install main path
|
||||||
|
install_main_dir="/usr/local/tq"
|
||||||
|
data_link_dir="/usr/local/tq/data"
|
||||||
|
log_link_dir="/usr/local/tq/log"
|
||||||
|
cfg_link_dir="/usr/local/tq/cfg"
|
||||||
|
bin_link_dir="/usr/bin"
|
||||||
|
lib_link_dir="/usr/lib"
|
||||||
|
lib64_link_dir="/usr/lib64"
|
||||||
|
inc_link_dir="/usr/include"
|
||||||
|
install_nginxd_dir="/usr/local/nginxd"
|
||||||
|
|
||||||
|
# v1.5 jar dir
|
||||||
|
#v15_java_app_dir="/usr/local/lib/tq"
|
||||||
|
|
||||||
|
service_config_dir="/etc/systemd/system"
|
||||||
|
tq_service_name="tqd"
|
||||||
|
tarbitrator_service_name="tarbitratord"
|
||||||
|
nginx_service_name="nginxd"
|
||||||
|
csudo=""
|
||||||
|
if command -v sudo > /dev/null; then
|
||||||
|
csudo="sudo"
|
||||||
|
fi
|
||||||
|
|
||||||
|
initd_mod=0
|
||||||
|
service_mod=2
|
||||||
|
if pidof systemd &> /dev/null; then
|
||||||
|
service_mod=0
|
||||||
|
elif $(which service &> /dev/null); then
|
||||||
|
service_mod=1
|
||||||
|
service_config_dir="/etc/init.d"
|
||||||
|
if $(which chkconfig &> /dev/null); then
|
||||||
|
initd_mod=1
|
||||||
|
elif $(which insserv &> /dev/null); then
|
||||||
|
initd_mod=2
|
||||||
|
elif $(which update-rc.d &> /dev/null); then
|
||||||
|
initd_mod=3
|
||||||
|
else
|
||||||
|
service_mod=2
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
service_mod=2
|
||||||
|
fi
|
||||||
|
|
||||||
|
function kill_tqd() {
|
||||||
|
pid=$(ps -ef | grep "tqd" | grep -v "grep" | awk '{print $2}')
|
||||||
|
if [ -n "$pid" ]; then
|
||||||
|
${csudo} kill -9 $pid || :
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function kill_tarbitrator() {
|
||||||
|
pid=$(ps -ef | grep "tarbitrator" | grep -v "grep" | awk '{print $2}')
|
||||||
|
if [ -n "$pid" ]; then
|
||||||
|
${csudo} kill -9 $pid || :
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
function clean_bin() {
|
||||||
|
# Remove link
|
||||||
|
${csudo} rm -f ${bin_link_dir}/tq || :
|
||||||
|
${csudo} rm -f ${bin_link_dir}/tqd || :
|
||||||
|
${csudo} rm -f ${bin_link_dir}/tqdemo || :
|
||||||
|
${csudo} rm -f ${bin_link_dir}/tqdump || :
|
||||||
|
${csudo} rm -f ${bin_link_dir}/rmtq || :
|
||||||
|
${csudo} rm -f ${bin_link_dir}/tarbitrator || :
|
||||||
|
${csudo} rm -f ${bin_link_dir}/set_core || :
|
||||||
|
}
|
||||||
|
|
||||||
|
function clean_lib() {
|
||||||
|
# Remove link
|
||||||
|
${csudo} rm -f ${lib_link_dir}/libtaos.* || :
|
||||||
|
${csudo} rm -f ${lib64_link_dir}/libtaos.* || :
|
||||||
|
#${csudo} rm -rf ${v15_java_app_dir} || :
|
||||||
|
}
|
||||||
|
|
||||||
|
function clean_header() {
|
||||||
|
# Remove link
|
||||||
|
${csudo} rm -f ${inc_link_dir}/taos.h || :
|
||||||
|
${csudo} rm -f ${inc_link_dir}/taoserror.h || :
|
||||||
|
}
|
||||||
|
|
||||||
|
function clean_config() {
|
||||||
|
# Remove link
|
||||||
|
${csudo} rm -f ${cfg_link_dir}/* || :
|
||||||
|
}
|
||||||
|
|
||||||
|
function clean_log() {
|
||||||
|
# Remove link
|
||||||
|
${csudo} rm -rf ${log_link_dir} || :
|
||||||
|
}
|
||||||
|
|
||||||
|
function clean_service_on_systemd() {
|
||||||
|
tq_service_config="${service_config_dir}/${tq_service_name}.service"
|
||||||
|
if systemctl is-active --quiet ${tq_service_name}; then
|
||||||
|
echo "TQ tqd is running, stopping it..."
|
||||||
|
${csudo} systemctl stop ${tq_service_name} &> /dev/null || echo &> /dev/null
|
||||||
|
fi
|
||||||
|
${csudo} systemctl disable ${tq_service_name} &> /dev/null || echo &> /dev/null
|
||||||
|
${csudo} rm -f ${tq_service_config}
|
||||||
|
|
||||||
|
tarbitratord_service_config="${service_config_dir}/${tarbitrator_service_name}.service"
|
||||||
|
if systemctl is-active --quiet ${tarbitrator_service_name}; then
|
||||||
|
echo "TDengine tarbitrator is running, stopping it..."
|
||||||
|
${csudo} systemctl stop ${tarbitrator_service_name} &> /dev/null || echo &> /dev/null
|
||||||
|
fi
|
||||||
|
${csudo} systemctl disable ${tarbitrator_service_name} &> /dev/null || echo &> /dev/null
|
||||||
|
${csudo} rm -f ${tarbitratord_service_config}
|
||||||
|
|
||||||
|
if [ "$verMode" == "cluster" ]; then
|
||||||
|
nginx_service_config="${service_config_dir}/${nginx_service_name}.service"
|
||||||
|
if [ -d ${bin_dir}/web ]; then
|
||||||
|
if systemctl is-active --quiet ${nginx_service_name}; then
|
||||||
|
echo "Nginx for TDengine is running, stopping it..."
|
||||||
|
${csudo} systemctl stop ${nginx_service_name} &> /dev/null || echo &> /dev/null
|
||||||
|
fi
|
||||||
|
${csudo} systemctl disable ${nginx_service_name} &> /dev/null || echo &> /dev/null
|
||||||
|
|
||||||
|
${csudo} rm -f ${nginx_service_config}
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function clean_service_on_sysvinit() {
|
||||||
|
#restart_config_str="tq:2345:respawn:${service_config_dir}/tqd start"
|
||||||
|
#${csudo} sed -i "\|${restart_config_str}|d" /etc/inittab || :
|
||||||
|
|
||||||
|
if pidof tqd &> /dev/null; then
|
||||||
|
echo "TQ tqd is running, stopping it..."
|
||||||
|
${csudo} service tqd stop || :
|
||||||
|
fi
|
||||||
|
|
||||||
|
if pidof tarbitrator &> /dev/null; then
|
||||||
|
echo "TQ tarbitrator is running, stopping it..."
|
||||||
|
${csudo} service tarbitratord stop || :
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ((${initd_mod}==1)); then
|
||||||
|
if [ -e ${service_config_dir}/tqd ]; then
|
||||||
|
${csudo} chkconfig --del tqd || :
|
||||||
|
fi
|
||||||
|
if [ -e ${service_config_dir}/tarbitratord ]; then
|
||||||
|
${csudo} chkconfig --del tarbitratord || :
|
||||||
|
fi
|
||||||
|
elif ((${initd_mod}==2)); then
|
||||||
|
if [ -e ${service_config_dir}/tqd ]; then
|
||||||
|
${csudo} insserv -r tqd || :
|
||||||
|
fi
|
||||||
|
if [ -e ${service_config_dir}/tarbitratord ]; then
|
||||||
|
${csudo} insserv -r tarbitratord || :
|
||||||
|
fi
|
||||||
|
elif ((${initd_mod}==3)); then
|
||||||
|
if [ -e ${service_config_dir}/tqd ]; then
|
||||||
|
${csudo} update-rc.d -f tqd remove || :
|
||||||
|
fi
|
||||||
|
if [ -e ${service_config_dir}/tarbitratord ]; then
|
||||||
|
${csudo} update-rc.d -f tarbitratord remove || :
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
${csudo} rm -f ${service_config_dir}/tqd || :
|
||||||
|
${csudo} rm -f ${service_config_dir}/tarbitratord || :
|
||||||
|
|
||||||
|
if $(which init &> /dev/null); then
|
||||||
|
${csudo} init q || :
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function clean_service() {
|
||||||
|
if ((${service_mod}==0)); then
|
||||||
|
clean_service_on_systemd
|
||||||
|
elif ((${service_mod}==1)); then
|
||||||
|
clean_service_on_sysvinit
|
||||||
|
else
|
||||||
|
# must manual stop taosd
|
||||||
|
kill_tqd
|
||||||
|
kill_tarbitrator
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Stop service and disable booting start.
|
||||||
|
clean_service
|
||||||
|
# Remove binary file and links
|
||||||
|
clean_bin
|
||||||
|
# Remove header file.
|
||||||
|
clean_header
|
||||||
|
# Remove lib file
|
||||||
|
clean_lib
|
||||||
|
# Remove link log directory
|
||||||
|
clean_log
|
||||||
|
# Remove link configuration file
|
||||||
|
clean_config
|
||||||
|
# Remove data link directory
|
||||||
|
${csudo} rm -rf ${data_link_dir} || :
|
||||||
|
|
||||||
|
${csudo} rm -rf ${install_main_dir}
|
||||||
|
${csudo} rm -rf ${install_nginxd_dir}
|
||||||
|
if [[ -e /etc/os-release ]]; then
|
||||||
|
osinfo=$(awk -F= '/^NAME/{print $2}' /etc/os-release)
|
||||||
|
else
|
||||||
|
osinfo=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
#if echo $osinfo | grep -qwi "ubuntu" ; then
|
||||||
|
## echo "this is ubuntu system"
|
||||||
|
# ${csudo} rm -f /var/lib/dpkg/info/tdengine* || :
|
||||||
|
#elif echo $osinfo | grep -qwi "debian" ; then
|
||||||
|
## echo "this is debian system"
|
||||||
|
# ${csudo} rm -f /var/lib/dpkg/info/tdengine* || :
|
||||||
|
#elif echo $osinfo | grep -qwi "centos" ; then
|
||||||
|
## echo "this is centos system"
|
||||||
|
# ${csudo} rpm -e --noscripts tdengine || :
|
||||||
|
#fi
|
||||||
|
|
||||||
|
echo -e "${GREEN}TQ is removed successfully!${NC}"
|
||||||
|
echo
|
|
@ -920,7 +920,7 @@ int tscProcessLocalCmd(SSqlObj *pSql) {
|
||||||
} else if (pCmd->command == TSDB_SQL_SHOW_CREATE_DATABASE) {
|
} else if (pCmd->command == TSDB_SQL_SHOW_CREATE_DATABASE) {
|
||||||
pRes->code = tscProcessShowCreateDatabase(pSql);
|
pRes->code = tscProcessShowCreateDatabase(pSql);
|
||||||
} else if (pCmd->command == TSDB_SQL_RESET_CACHE) {
|
} else if (pCmd->command == TSDB_SQL_RESET_CACHE) {
|
||||||
taosHashEmpty(tscTableMetaInfo);
|
taosHashClear(tscTableMetaInfo);
|
||||||
pRes->code = TSDB_CODE_SUCCESS;
|
pRes->code = TSDB_CODE_SUCCESS;
|
||||||
} else if (pCmd->command == TSDB_SQL_SERV_VERSION) {
|
} else if (pCmd->command == TSDB_SQL_SERV_VERSION) {
|
||||||
pRes->code = tscProcessServerVer(pSql);
|
pRes->code = tscProcessServerVer(pSql);
|
||||||
|
|
|
@ -1163,7 +1163,7 @@ static void insertBatchClean(STscStmt* pStmt) {
|
||||||
pCmd->insertParam.pDataBlocks = tscDestroyBlockArrayList(pCmd->insertParam.pDataBlocks);
|
pCmd->insertParam.pDataBlocks = tscDestroyBlockArrayList(pCmd->insertParam.pDataBlocks);
|
||||||
pCmd->insertParam.numOfTables = 0;
|
pCmd->insertParam.numOfTables = 0;
|
||||||
|
|
||||||
taosHashEmpty(pCmd->insertParam.pTableBlockHashList);
|
taosHashClear(pCmd->insertParam.pTableBlockHashList);
|
||||||
tscFreeSqlResult(pSql);
|
tscFreeSqlResult(pSql);
|
||||||
tscFreeSubobj(pSql);
|
tscFreeSubobj(pSql);
|
||||||
tfree(pSql->pSubs);
|
tfree(pSql->pSubs);
|
||||||
|
|
|
@ -916,7 +916,8 @@ static int32_t checkInvalidExprForTimeWindow(SSqlCmd* pCmd, SQueryInfo* pQueryIn
|
||||||
|
|
||||||
int32_t validateIntervalNode(SSqlObj* pSql, SQueryInfo* pQueryInfo, SSqlNode* pSqlNode) {
|
int32_t validateIntervalNode(SSqlObj* pSql, SQueryInfo* pQueryInfo, SSqlNode* pSqlNode) {
|
||||||
const char* msg1 = "sliding cannot be used without interval";
|
const char* msg1 = "sliding cannot be used without interval";
|
||||||
const char* msg2 = "interval cannot be less than 10 ms";
|
const char* msg2 = "interval cannot be less than 1 us";
|
||||||
|
const char* msg3 = "interval value is too small";
|
||||||
|
|
||||||
SSqlCmd* pCmd = &pSql->cmd;
|
SSqlCmd* pCmd = &pSql->cmd;
|
||||||
|
|
||||||
|
@ -943,6 +944,10 @@ int32_t validateIntervalNode(SSqlObj* pSql, SQueryInfo* pQueryInfo, SSqlNode* pS
|
||||||
return TSDB_CODE_TSC_INVALID_OPERATION;
|
return TSDB_CODE_TSC_INVALID_OPERATION;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (pQueryInfo->interval.interval <= 0) {
|
||||||
|
return invalidOperationMsg(tscGetErrorMsgPayload(pCmd), msg3);
|
||||||
|
}
|
||||||
|
|
||||||
if (pQueryInfo->interval.intervalUnit != 'n' && pQueryInfo->interval.intervalUnit != 'y') {
|
if (pQueryInfo->interval.intervalUnit != 'n' && pQueryInfo->interval.intervalUnit != 'y') {
|
||||||
|
|
||||||
// interval cannot be less than 10 milliseconds
|
// interval cannot be less than 10 milliseconds
|
||||||
|
@ -5287,17 +5292,30 @@ int32_t validateOrderbyNode(SSqlCmd* pCmd, SQueryInfo* pQueryInfo, SSqlNode* pSq
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isTopBottomQuery(pQueryInfo)) {
|
if (isTopBottomQuery(pQueryInfo)) {
|
||||||
/* order of top/bottom query in interval is not valid */
|
bool validOrder = false;
|
||||||
SExprInfo* pExpr = tscExprGet(pQueryInfo, 0);
|
SArray *columnInfo = pQueryInfo->groupbyExpr.columnInfo;
|
||||||
assert(pExpr->base.functionId == TSDB_FUNC_TS);
|
if (columnInfo != NULL && taosArrayGetSize(columnInfo) > 0) {
|
||||||
|
SColIndex* pColIndex = taosArrayGet(columnInfo, 0);
|
||||||
|
validOrder = (pColIndex->colIndex == index.columnIndex);
|
||||||
|
} else {
|
||||||
|
/* order of top/bottom query in interval is not valid */
|
||||||
|
SExprInfo* pExpr = tscExprGet(pQueryInfo, 0);
|
||||||
|
assert(pExpr->base.functionId == TSDB_FUNC_TS);
|
||||||
|
|
||||||
pExpr = tscExprGet(pQueryInfo, 1);
|
pExpr = tscExprGet(pQueryInfo, 1);
|
||||||
if (pExpr->base.colInfo.colIndex != index.columnIndex && index.columnIndex != PRIMARYKEY_TIMESTAMP_COL_INDEX) {
|
if (pExpr->base.colInfo.colIndex != index.columnIndex && index.columnIndex != PRIMARYKEY_TIMESTAMP_COL_INDEX) {
|
||||||
|
return invalidOperationMsg(tscGetErrorMsgPayload(pCmd), msg2);
|
||||||
|
}
|
||||||
|
validOrder = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!validOrder) {
|
||||||
return invalidOperationMsg(tscGetErrorMsgPayload(pCmd), msg2);
|
return invalidOperationMsg(tscGetErrorMsgPayload(pCmd), msg2);
|
||||||
}
|
}
|
||||||
|
|
||||||
tVariantListItem* pItem = taosArrayGet(pSqlNode->pSortOrder, 0);
|
tVariantListItem* pItem = taosArrayGet(pSqlNode->pSortOrder, 0);
|
||||||
pQueryInfo->order.order = pItem->sortOrder;
|
pQueryInfo->order.order = pItem->sortOrder;
|
||||||
|
|
||||||
pQueryInfo->order.orderColId = pSchema[index.columnIndex].colId;
|
pQueryInfo->order.orderColId = pSchema[index.columnIndex].colId;
|
||||||
return TSDB_CODE_SUCCESS;
|
return TSDB_CODE_SUCCESS;
|
||||||
}
|
}
|
||||||
|
@ -6520,6 +6538,7 @@ int32_t doFunctionsCompatibleCheck(SSqlCmd* pCmd, SQueryInfo* pQueryInfo, char*
|
||||||
const char* msg3 = "group by/session/state_window not allowed on projection query";
|
const char* msg3 = "group by/session/state_window not allowed on projection query";
|
||||||
const char* msg4 = "retrieve tags not compatible with group by or interval query";
|
const char* msg4 = "retrieve tags not compatible with group by or interval query";
|
||||||
const char* msg5 = "functions can not be mixed up";
|
const char* msg5 = "functions can not be mixed up";
|
||||||
|
const char* msg6 = "TWA/Diff/Derivative/Irate only support group by tbname";
|
||||||
|
|
||||||
// only retrieve tags, group by is not supportted
|
// only retrieve tags, group by is not supportted
|
||||||
if (tscQueryTags(pQueryInfo)) {
|
if (tscQueryTags(pQueryInfo)) {
|
||||||
|
@ -6571,6 +6590,19 @@ int32_t doFunctionsCompatibleCheck(SSqlCmd* pCmd, SQueryInfo* pQueryInfo, char*
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ((!pQueryInfo->stateWindow) && (f == TSDB_FUNC_DIFF || f == TSDB_FUNC_DERIVATIVE || f == TSDB_FUNC_TWA || f == TSDB_FUNC_IRATE)) {
|
||||||
|
for (int32_t j = 0; j < pQueryInfo->groupbyExpr.numOfGroupCols; ++j) {
|
||||||
|
SColIndex* pColIndex = taosArrayGet(pQueryInfo->groupbyExpr.columnInfo, j);
|
||||||
|
if (j == 0) {
|
||||||
|
if (pColIndex->colIndex != TSDB_TBNAME_COLUMN_INDEX) {
|
||||||
|
return invalidOperationMsg(msg, msg6);
|
||||||
|
}
|
||||||
|
} else if (!TSDB_COL_IS_TAG(pColIndex->flag)) {
|
||||||
|
return invalidOperationMsg(msg, msg6);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (IS_MULTIOUTPUT(aAggs[f].status) && f != TSDB_FUNC_TOP && f != TSDB_FUNC_BOTTOM &&
|
if (IS_MULTIOUTPUT(aAggs[f].status) && f != TSDB_FUNC_TOP && f != TSDB_FUNC_BOTTOM &&
|
||||||
f != TSDB_FUNC_DIFF && f != TSDB_FUNC_DERIVATIVE && f != TSDB_FUNC_TAGPRJ && f != TSDB_FUNC_PRJ) {
|
f != TSDB_FUNC_DIFF && f != TSDB_FUNC_DERIVATIVE && f != TSDB_FUNC_TAGPRJ && f != TSDB_FUNC_PRJ) {
|
||||||
return invalidOperationMsg(msg, msg1);
|
return invalidOperationMsg(msg, msg1);
|
||||||
|
|
|
@ -2309,7 +2309,7 @@ int tscProcessDropDbRsp(SSqlObj *pSql) {
|
||||||
//TODO LOCK DB WHEN MODIFY IT
|
//TODO LOCK DB WHEN MODIFY IT
|
||||||
//pSql->pTscObj->db[0] = 0;
|
//pSql->pTscObj->db[0] = 0;
|
||||||
|
|
||||||
taosHashEmpty(tscTableMetaInfo);
|
taosHashClear(tscTableMetaInfo);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2340,7 +2340,7 @@ int tscProcessAlterTableMsgRsp(SSqlObj *pSql) {
|
||||||
tfree(pTableMetaInfo->pTableMeta);
|
tfree(pTableMetaInfo->pTableMeta);
|
||||||
|
|
||||||
if (isSuperTable) { // if it is a super table, iterate the hashTable and remove all the childTableMeta
|
if (isSuperTable) { // if it is a super table, iterate the hashTable and remove all the childTableMeta
|
||||||
taosHashEmpty(tscTableMetaInfo);
|
taosHashClear(tscTableMetaInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -2947,6 +2947,7 @@ int32_t tscQueryInfoCopy(SQueryInfo* pQueryInfo, const SQueryInfo* pSrc) {
|
||||||
pQueryInfo->fillType = pSrc->fillType;
|
pQueryInfo->fillType = pSrc->fillType;
|
||||||
pQueryInfo->fillVal = NULL;
|
pQueryInfo->fillVal = NULL;
|
||||||
pQueryInfo->clauseLimit = pSrc->clauseLimit;
|
pQueryInfo->clauseLimit = pSrc->clauseLimit;
|
||||||
|
pQueryInfo->prjOffset = pSrc->prjOffset;
|
||||||
pQueryInfo->numOfTables = 0;
|
pQueryInfo->numOfTables = 0;
|
||||||
pQueryInfo->window = pSrc->window;
|
pQueryInfo->window = pSrc->window;
|
||||||
pQueryInfo->sessionWindow = pSrc->sessionWindow;
|
pQueryInfo->sessionWindow = pSrc->sessionWindow;
|
||||||
|
@ -3326,6 +3327,7 @@ SSqlObj* createSubqueryObj(SSqlObj* pSql, int16_t tableIndex, __async_cb_func_t
|
||||||
pNewQueryInfo->fillType = pQueryInfo->fillType;
|
pNewQueryInfo->fillType = pQueryInfo->fillType;
|
||||||
pNewQueryInfo->fillVal = NULL;
|
pNewQueryInfo->fillVal = NULL;
|
||||||
pNewQueryInfo->clauseLimit = pQueryInfo->clauseLimit;
|
pNewQueryInfo->clauseLimit = pQueryInfo->clauseLimit;
|
||||||
|
pNewQueryInfo->prjOffset = pQueryInfo->prjOffset;
|
||||||
pNewQueryInfo->numOfTables = 0;
|
pNewQueryInfo->numOfTables = 0;
|
||||||
pNewQueryInfo->pTableMetaInfo = NULL;
|
pNewQueryInfo->pTableMetaInfo = NULL;
|
||||||
pNewQueryInfo->bufLen = pQueryInfo->bufLen;
|
pNewQueryInfo->bufLen = pQueryInfo->bufLen;
|
||||||
|
|
|
@ -81,6 +81,8 @@ extern const int32_t TYPE_BYTES[15];
|
||||||
#define TSDB_DEFAULT_USER "root"
|
#define TSDB_DEFAULT_USER "root"
|
||||||
#ifdef _TD_POWER_
|
#ifdef _TD_POWER_
|
||||||
#define TSDB_DEFAULT_PASS "powerdb"
|
#define TSDB_DEFAULT_PASS "powerdb"
|
||||||
|
#elif (_TD_TQ_ == true)
|
||||||
|
#define TSDB_DEFAULT_PASS "tqueue"
|
||||||
#else
|
#else
|
||||||
#define TSDB_DEFAULT_PASS "taosdata"
|
#define TSDB_DEFAULT_PASS "taosdata"
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -37,6 +37,13 @@ char PROMPT_HEADER[] = "power> ";
|
||||||
|
|
||||||
char CONTINUE_PROMPT[] = " -> ";
|
char CONTINUE_PROMPT[] = " -> ";
|
||||||
int prompt_size = 7;
|
int prompt_size = 7;
|
||||||
|
#elif (_TD_TQ_ == true)
|
||||||
|
char CLIENT_VERSION[] = "Welcome to the TQ shell from %s, Client Version:%s\n"
|
||||||
|
"Copyright (c) 2020 by TQ, Inc. All rights reserved.\n\n";
|
||||||
|
char PROMPT_HEADER[] = "tq> ";
|
||||||
|
|
||||||
|
char CONTINUE_PROMPT[] = " -> ";
|
||||||
|
int prompt_size = 4;
|
||||||
#else
|
#else
|
||||||
char CLIENT_VERSION[] = "Welcome to the TDengine shell from %s, Client Version:%s\n"
|
char CLIENT_VERSION[] = "Welcome to the TDengine shell from %s, Client Version:%s\n"
|
||||||
"Copyright (c) 2020 by TAOS Data, Inc. All rights reserved.\n\n";
|
"Copyright (c) 2020 by TAOS Data, Inc. All rights reserved.\n\n";
|
||||||
|
|
|
@ -571,6 +571,8 @@ SArguments g_args = {
|
||||||
"root", // user
|
"root", // user
|
||||||
#ifdef _TD_POWER_
|
#ifdef _TD_POWER_
|
||||||
"powerdb", // password
|
"powerdb", // password
|
||||||
|
#elif (_TD_TQ_ == true)
|
||||||
|
"tqueue", // password
|
||||||
#else
|
#else
|
||||||
"taosdata", // password
|
"taosdata", // password
|
||||||
#endif
|
#endif
|
||||||
|
@ -681,6 +683,11 @@ static void printHelp() {
|
||||||
"The password to use when connecting to the server. Default is 'powerdb'.");
|
"The password to use when connecting to the server. Default is 'powerdb'.");
|
||||||
printf("%s%s%s%s\n", indent, "-c", indent,
|
printf("%s%s%s%s\n", indent, "-c", indent,
|
||||||
"Configuration directory. Default is '/etc/power/'.");
|
"Configuration directory. Default is '/etc/power/'.");
|
||||||
|
#elif (_TD_TQ_ == true)
|
||||||
|
printf("%s%s%s%s\n", indent, "-P", indent,
|
||||||
|
"The password to use when connecting to the server. Default is 'tqueue'.");
|
||||||
|
printf("%s%s%s%s\n", indent, "-c", indent,
|
||||||
|
"Configuration directory. Default is '/etc/tq/'.");
|
||||||
#else
|
#else
|
||||||
printf("%s%s%s%s\n", indent, "-P", indent,
|
printf("%s%s%s%s\n", indent, "-P", indent,
|
||||||
"The password to use when connecting to the server. Default is 'taosdata'.");
|
"The password to use when connecting to the server. Default is 'taosdata'.");
|
||||||
|
@ -4834,7 +4841,7 @@ static int64_t generateStbRowData(
|
||||||
dataLen += snprintf(pstr + dataLen, maxLen - dataLen,
|
dataLen += snprintf(pstr + dataLen, maxLen - dataLen,
|
||||||
"%"PRId64",", rand_bigint());
|
"%"PRId64",", rand_bigint());
|
||||||
} else {
|
} else {
|
||||||
errorPrint( "No support data type: %s\n", stbInfo->columns[i].dataType);
|
errorPrint( "Not support data type: %s\n", stbInfo->columns[i].dataType);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4842,6 +4849,7 @@ static int64_t generateStbRowData(
|
||||||
dataLen -= 1;
|
dataLen -= 1;
|
||||||
dataLen += snprintf(pstr + dataLen, maxLen - dataLen, ")");
|
dataLen += snprintf(pstr + dataLen, maxLen - dataLen, ")");
|
||||||
|
|
||||||
|
verbosePrint("%s() LN%d, dataLen:%"PRId64"\n", __func__, __LINE__, dataLen);
|
||||||
verbosePrint("%s() LN%d, recBuf:\n\t%s\n", __func__, __LINE__, recBuf);
|
verbosePrint("%s() LN%d, recBuf:\n\t%s\n", __func__, __LINE__, recBuf);
|
||||||
|
|
||||||
return strlen(recBuf);
|
return strlen(recBuf);
|
||||||
|
@ -5094,24 +5102,25 @@ static int32_t generateStbDataTail(
|
||||||
} else {
|
} else {
|
||||||
tsRand = false;
|
tsRand = false;
|
||||||
}
|
}
|
||||||
verbosePrint("%s() LN%d batch=%u\n", __func__, __LINE__, batch);
|
verbosePrint("%s() LN%d batch=%u buflen=%"PRId64"\n",
|
||||||
|
__func__, __LINE__, batch, remainderBufLen);
|
||||||
|
|
||||||
int32_t k = 0;
|
int32_t k = 0;
|
||||||
for (k = 0; k < batch;) {
|
for (k = 0; k < batch;) {
|
||||||
char data[MAX_DATA_SIZE];
|
char data[MAX_DATA_SIZE];
|
||||||
memset(data, 0, MAX_DATA_SIZE);
|
memset(data, 0, MAX_DATA_SIZE);
|
||||||
|
|
||||||
int64_t retLen = 0;
|
int64_t lenOfRow = 0;
|
||||||
|
|
||||||
if (tsRand) {
|
if (tsRand) {
|
||||||
retLen = generateStbRowData(superTblInfo, data,
|
lenOfRow = generateStbRowData(superTblInfo, data,
|
||||||
startTime + getTSRandTail(
|
startTime + getTSRandTail(
|
||||||
superTblInfo->timeStampStep, k,
|
superTblInfo->timeStampStep, k,
|
||||||
superTblInfo->disorderRatio,
|
superTblInfo->disorderRatio,
|
||||||
superTblInfo->disorderRange)
|
superTblInfo->disorderRange)
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
retLen = getRowDataFromSample(
|
lenOfRow = getRowDataFromSample(
|
||||||
data,
|
data,
|
||||||
remainderBufLen < MAX_DATA_SIZE ? remainderBufLen : MAX_DATA_SIZE,
|
remainderBufLen < MAX_DATA_SIZE ? remainderBufLen : MAX_DATA_SIZE,
|
||||||
startTime + superTblInfo->timeStampStep * k,
|
startTime + superTblInfo->timeStampStep * k,
|
||||||
|
@ -5119,14 +5128,14 @@ static int32_t generateStbDataTail(
|
||||||
pSamplePos);
|
pSamplePos);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (retLen > remainderBufLen) {
|
if (lenOfRow > remainderBufLen) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
pstr += snprintf(pstr , retLen + 1, "%s", data);
|
pstr += snprintf(pstr , lenOfRow + 1, "%s", data);
|
||||||
k++;
|
k++;
|
||||||
len += retLen;
|
len += lenOfRow;
|
||||||
remainderBufLen -= retLen;
|
remainderBufLen -= lenOfRow;
|
||||||
|
|
||||||
verbosePrint("%s() LN%d len=%"PRIu64" k=%u \nbuffer=%s\n",
|
verbosePrint("%s() LN%d len=%"PRIu64" k=%u \nbuffer=%s\n",
|
||||||
__func__, __LINE__, len, k, buffer);
|
__func__, __LINE__, len, k, buffer);
|
||||||
|
@ -5915,11 +5924,14 @@ static void* syncWriteInterlace(threadInfo *pThreadInfo) {
|
||||||
startTs = taosGetTimestampMs();
|
startTs = taosGetTimestampMs();
|
||||||
|
|
||||||
if (recOfBatch == 0) {
|
if (recOfBatch == 0) {
|
||||||
errorPrint("[%d] %s() LN%d try inserting records of batch is %d\n",
|
errorPrint("[%d] %s() LN%d Failed to insert records of batch %d\n",
|
||||||
pThreadInfo->threadID, __func__, __LINE__,
|
pThreadInfo->threadID, __func__, __LINE__,
|
||||||
recOfBatch);
|
batchPerTbl);
|
||||||
errorPrint("%s\n", "\tPlease check if the batch or the buffer length is proper value!\n");
|
errorPrint("\tIf the batch is %d, the length of the SQL to insert a row must be less then %"PRId64"\n",
|
||||||
goto free_of_interlace;
|
batchPerTbl, maxSqlLen / batchPerTbl);
|
||||||
|
errorPrint("\tPlease check if the buffer length(%"PRId64") or batch(%d) is set with proper value!\n",
|
||||||
|
maxSqlLen, batchPerTbl);
|
||||||
|
goto free_of_interlace;
|
||||||
}
|
}
|
||||||
int64_t affectedRows = execInsert(pThreadInfo, recOfBatch);
|
int64_t affectedRows = execInsert(pThreadInfo, recOfBatch);
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -25,6 +25,13 @@ void osInit() {
|
||||||
strcpy(tsDataDir, "/var/lib/power");
|
strcpy(tsDataDir, "/var/lib/power");
|
||||||
strcpy(tsLogDir, "/var/log/power");
|
strcpy(tsLogDir, "/var/log/power");
|
||||||
strcpy(tsScriptDir, "/etc/power");
|
strcpy(tsScriptDir, "/etc/power");
|
||||||
|
#elif (_TD_TQ_ == true)
|
||||||
|
if (configDir[0] == 0) {
|
||||||
|
strcpy(configDir, "/etc/tq");
|
||||||
|
}
|
||||||
|
strcpy(tsDataDir, "/var/lib/tq");
|
||||||
|
strcpy(tsLogDir, "/var/log/tq");
|
||||||
|
strcpy(tsScriptDir, "/etc/tq");
|
||||||
#else
|
#else
|
||||||
if (configDir[0] == 0) {
|
if (configDir[0] == 0) {
|
||||||
strcpy(configDir, "/etc/taos");
|
strcpy(configDir, "/etc/taos");
|
||||||
|
|
|
@ -31,7 +31,14 @@ void osInit() {
|
||||||
strcpy(tsDataDir, "C:/PowerDB/data");
|
strcpy(tsDataDir, "C:/PowerDB/data");
|
||||||
strcpy(tsLogDir, "C:/PowerDB/log");
|
strcpy(tsLogDir, "C:/PowerDB/log");
|
||||||
strcpy(tsScriptDir, "C:/PowerDB/script");
|
strcpy(tsScriptDir, "C:/PowerDB/script");
|
||||||
|
#elif (_TD_TQ_ == true)
|
||||||
|
if (configDir[0] == 0) {
|
||||||
|
strcpy(configDir, "C:/TQ/cfg");
|
||||||
|
}
|
||||||
|
strcpy(tsVnodeDir, "C:/TQ/data");
|
||||||
|
strcpy(tsDataDir, "C:/TQ/data");
|
||||||
|
strcpy(tsLogDir, "C:/TQ/log");
|
||||||
|
strcpy(tsScriptDir, "C:/TQ/script");
|
||||||
#else
|
#else
|
||||||
if (configDir[0] == 0) {
|
if (configDir[0] == 0) {
|
||||||
strcpy(configDir, "C:/TDengine/cfg");
|
strcpy(configDir, "C:/TDengine/cfg");
|
||||||
|
|
|
@ -242,7 +242,6 @@ static void sortGroupResByOrderList(SGroupResInfo *pGroupResInfo, SQueryRuntimeE
|
||||||
if (size <= 0) {
|
if (size <= 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t orderId = pRuntimeEnv->pQueryAttr->order.orderColId;
|
int32_t orderId = pRuntimeEnv->pQueryAttr->order.orderColId;
|
||||||
if (orderId <= 0) {
|
if (orderId <= 0) {
|
||||||
return;
|
return;
|
||||||
|
@ -1408,8 +1407,9 @@ static void doHashGroupbyAgg(SOperatorInfo* pOperator, SGroupbyOperatorInfo *pIn
|
||||||
}
|
}
|
||||||
|
|
||||||
doApplyFunctions(pRuntimeEnv, pInfo->binfo.pCtx, &w, pSDataBlock->info.rows - num, num, tsList, pSDataBlock->info.rows, pOperator->numOfOutput);
|
doApplyFunctions(pRuntimeEnv, pInfo->binfo.pCtx, &w, pSDataBlock->info.rows - num, num, tsList, pSDataBlock->info.rows, pOperator->numOfOutput);
|
||||||
tfree(pInfo->prevData);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
tfree(pInfo->prevData);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void doSessionWindowAggImpl(SOperatorInfo* pOperator, SSWindowOperatorInfo *pInfo, SSDataBlock *pSDataBlock) {
|
static void doSessionWindowAggImpl(SOperatorInfo* pOperator, SSWindowOperatorInfo *pInfo, SSDataBlock *pSDataBlock) {
|
||||||
|
@ -1743,8 +1743,7 @@ static SQLFunctionCtx* createSQLFunctionCtx(SQueryRuntimeEnv* pRuntimeEnv, SExpr
|
||||||
}
|
}
|
||||||
|
|
||||||
for(int32_t i = 1; i < numOfOutput; ++i) {
|
for(int32_t i = 1; i < numOfOutput; ++i) {
|
||||||
(*rowCellInfoOffset)[i] = (int32_t)((*rowCellInfoOffset)[i - 1] + sizeof(SResultRowCellInfo) +
|
(*rowCellInfoOffset)[i] = (int32_t)((*rowCellInfoOffset)[i - 1] + sizeof(SResultRowCellInfo) + pExpr[i - 1].base.interBytes);
|
||||||
pExpr[i - 1].base.interBytes * GET_ROW_PARAM_FOR_MULTIOUTPUT(pQueryAttr, pQueryAttr->topBotQuery, pQueryAttr->stableQuery));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
setCtxTagColumnInfo(pFuncCtx, numOfOutput);
|
setCtxTagColumnInfo(pFuncCtx, numOfOutput);
|
||||||
|
@ -3718,6 +3717,9 @@ static int32_t doCopyToSDataBlock(SQueryRuntimeEnv* pRuntimeEnv, SGroupResInfo*
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t numOfRowsToCopy = pRow->numOfRows;
|
int32_t numOfRowsToCopy = pRow->numOfRows;
|
||||||
|
if (numOfResult + numOfRowsToCopy >= pRuntimeEnv->resultInfo.capacity) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
pGroupResInfo->index += 1;
|
pGroupResInfo->index += 1;
|
||||||
|
|
||||||
|
@ -6108,7 +6110,14 @@ SOperatorInfo* createGroupbyOperatorInfo(SQueryRuntimeEnv* pRuntimeEnv, SOperato
|
||||||
SGroupbyOperatorInfo* pInfo = calloc(1, sizeof(SGroupbyOperatorInfo));
|
SGroupbyOperatorInfo* pInfo = calloc(1, sizeof(SGroupbyOperatorInfo));
|
||||||
pInfo->colIndex = -1; // group by column index
|
pInfo->colIndex = -1; // group by column index
|
||||||
|
|
||||||
|
|
||||||
pInfo->binfo.pCtx = createSQLFunctionCtx(pRuntimeEnv, pExpr, numOfOutput, &pInfo->binfo.rowCellInfoOffset);
|
pInfo->binfo.pCtx = createSQLFunctionCtx(pRuntimeEnv, pExpr, numOfOutput, &pInfo->binfo.rowCellInfoOffset);
|
||||||
|
|
||||||
|
SQueryAttr *pQueryAttr = pRuntimeEnv->pQueryAttr;
|
||||||
|
|
||||||
|
pQueryAttr->resultRowSize = (pQueryAttr->resultRowSize *
|
||||||
|
(int32_t)(GET_ROW_PARAM_FOR_MULTIOUTPUT(pQueryAttr, pQueryAttr->topBotQuery, pQueryAttr->stableQuery)));
|
||||||
|
|
||||||
pInfo->binfo.pRes = createOutputBuf(pExpr, numOfOutput, pRuntimeEnv->resultInfo.capacity);
|
pInfo->binfo.pRes = createOutputBuf(pExpr, numOfOutput, pRuntimeEnv->resultInfo.capacity);
|
||||||
initResultRowInfo(&pInfo->binfo.resultRowInfo, 8, TSDB_DATA_TYPE_INT);
|
initResultRowInfo(&pInfo->binfo.resultRowInfo, 8, TSDB_DATA_TYPE_INT);
|
||||||
|
|
||||||
|
|
|
@ -771,7 +771,7 @@ int tsdbLoadMetaCache(STsdbRepo *pRepo, bool recoverMeta) {
|
||||||
int64_t maxBufSize = 0;
|
int64_t maxBufSize = 0;
|
||||||
SMFInfo minfo;
|
SMFInfo minfo;
|
||||||
|
|
||||||
taosHashEmpty(pfs->metaCache);
|
taosHashClear(pfs->metaCache);
|
||||||
|
|
||||||
// No meta file, just return
|
// No meta file, just return
|
||||||
if (pfs->cstatus->pmf == NULL) return 0;
|
if (pfs->cstatus->pmf == NULL) return 0;
|
||||||
|
|
|
@ -140,7 +140,7 @@ int32_t taosHashRemoveWithData(SHashObj *pHashObj, const void *key, size_t keyLe
|
||||||
|
|
||||||
int32_t taosHashCondTraverse(SHashObj *pHashObj, bool (*fp)(void *, void *), void *param);
|
int32_t taosHashCondTraverse(SHashObj *pHashObj, bool (*fp)(void *, void *), void *param);
|
||||||
|
|
||||||
void taosHashEmpty(SHashObj *pHashObj);
|
void taosHashClear(SHashObj *pHashObj);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* clean up hash table
|
* clean up hash table
|
||||||
|
|
|
@ -144,6 +144,14 @@ static FORCE_INLINE SHashNode *doUpdateHashNode(SHashObj *pHashObj, SHashEntry*
|
||||||
*/
|
*/
|
||||||
static void pushfrontNodeInEntryList(SHashEntry *pEntry, SHashNode *pNode);
|
static void pushfrontNodeInEntryList(SHashEntry *pEntry, SHashNode *pNode);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check whether the hash table is empty or not.
|
||||||
|
*
|
||||||
|
* @param pHashObj the hash table object
|
||||||
|
* @return if the hash table is empty or not
|
||||||
|
*/
|
||||||
|
static FORCE_INLINE bool taosHashTableEmpty(const SHashObj *pHashObj);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the next element in hash table for iterator
|
* Get the next element in hash table for iterator
|
||||||
* @param pIter
|
* @param pIter
|
||||||
|
@ -195,7 +203,16 @@ void taosHashSetEqualFp(SHashObj *pHashObj, _equal_fn_t fp) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t taosHashGetSize(const SHashObj *pHashObj) { return (int32_t)((pHashObj == NULL) ? 0 : pHashObj->size); }
|
int32_t taosHashGetSize(const SHashObj *pHashObj) {
|
||||||
|
if (!pHashObj) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return (int32_t)atomic_load_64(&pHashObj->size);
|
||||||
|
}
|
||||||
|
|
||||||
|
static FORCE_INLINE bool taosHashTableEmpty(const SHashObj *pHashObj) {
|
||||||
|
return taosHashGetSize(pHashObj) == 0;
|
||||||
|
}
|
||||||
|
|
||||||
int32_t taosHashPut(SHashObj *pHashObj, const void *key, size_t keyLen, void *data, size_t size) {
|
int32_t taosHashPut(SHashObj *pHashObj, const void *key, size_t keyLen, void *data, size_t size) {
|
||||||
uint32_t hashVal = (*pHashObj->hashFp)(key, (uint32_t)keyLen);
|
uint32_t hashVal = (*pHashObj->hashFp)(key, (uint32_t)keyLen);
|
||||||
|
@ -281,7 +298,7 @@ void *taosHashGet(SHashObj *pHashObj, const void *key, size_t keyLen) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void* taosHashGetClone(SHashObj *pHashObj, const void *key, size_t keyLen, void (*fp)(void *), void* d, size_t dsize) {
|
void* taosHashGetClone(SHashObj *pHashObj, const void *key, size_t keyLen, void (*fp)(void *), void* d, size_t dsize) {
|
||||||
if (pHashObj->size <= 0 || keyLen == 0 || key == NULL) {
|
if (taosHashTableEmpty(pHashObj) || keyLen == 0 || key == NULL) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -338,7 +355,7 @@ int32_t taosHashRemove(SHashObj *pHashObj, const void *key, size_t keyLen) {
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t taosHashRemoveWithData(SHashObj *pHashObj, const void *key, size_t keyLen, void *data, size_t dsize) {
|
int32_t taosHashRemoveWithData(SHashObj *pHashObj, const void *key, size_t keyLen, void *data, size_t dsize) {
|
||||||
if (pHashObj == NULL || pHashObj->size <= 0) {
|
if (pHashObj == NULL || taosHashTableEmpty(pHashObj)) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -405,7 +422,7 @@ int32_t taosHashRemoveWithData(SHashObj *pHashObj, const void *key, size_t keyLe
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t taosHashCondTraverse(SHashObj *pHashObj, bool (*fp)(void *, void *), void *param) {
|
int32_t taosHashCondTraverse(SHashObj *pHashObj, bool (*fp)(void *, void *), void *param) {
|
||||||
if (pHashObj == NULL || pHashObj->size == 0) {
|
if (pHashObj == NULL || taosHashTableEmpty(pHashObj)) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -478,7 +495,7 @@ int32_t taosHashCondTraverse(SHashObj *pHashObj, bool (*fp)(void *, void *), voi
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void taosHashEmpty(SHashObj *pHashObj) {
|
void taosHashClear(SHashObj *pHashObj) {
|
||||||
if (pHashObj == NULL) {
|
if (pHashObj == NULL) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -517,7 +534,7 @@ void taosHashCleanup(SHashObj *pHashObj) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
taosHashEmpty(pHashObj);
|
taosHashClear(pHashObj);
|
||||||
tfree(pHashObj->hashList);
|
tfree(pHashObj->hashList);
|
||||||
|
|
||||||
// destroy mem block
|
// destroy mem block
|
||||||
|
@ -535,7 +552,7 @@ void taosHashCleanup(SHashObj *pHashObj) {
|
||||||
|
|
||||||
// for profile only
|
// for profile only
|
||||||
int32_t taosHashGetMaxOverflowLinkLength(const SHashObj *pHashObj) {
|
int32_t taosHashGetMaxOverflowLinkLength(const SHashObj *pHashObj) {
|
||||||
if (pHashObj == NULL || pHashObj->size == 0) {
|
if (pHashObj == NULL || taosHashTableEmpty(pHashObj)) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -312,6 +312,9 @@ void taosReadGlobalLogCfg() {
|
||||||
#ifdef _TD_POWER_
|
#ifdef _TD_POWER_
|
||||||
printf("configDir:%s not there, use default value: /etc/power", configDir);
|
printf("configDir:%s not there, use default value: /etc/power", configDir);
|
||||||
strcpy(configDir, "/etc/power");
|
strcpy(configDir, "/etc/power");
|
||||||
|
#elif (_TD_TQ_ == true)
|
||||||
|
printf("configDir:%s not there, use default value: /etc/tq", configDir);
|
||||||
|
strcpy(configDir, "/etc/tq");
|
||||||
#else
|
#else
|
||||||
printf("configDir:%s not there, use default value: /etc/taos", configDir);
|
printf("configDir:%s not there, use default value: /etc/taos", configDir);
|
||||||
strcpy(configDir, "/etc/taos");
|
strcpy(configDir, "/etc/taos");
|
||||||
|
|
|
@ -83,6 +83,8 @@ int64_t dbgWSize = 0;
|
||||||
|
|
||||||
#ifdef _TD_POWER_
|
#ifdef _TD_POWER_
|
||||||
char tsLogDir[TSDB_FILENAME_LEN] = "/var/log/power";
|
char tsLogDir[TSDB_FILENAME_LEN] = "/var/log/power";
|
||||||
|
#elif (_TD_TQ_ == true)
|
||||||
|
char tsLogDir[TSDB_FILENAME_LEN] = "/var/log/tq";
|
||||||
#else
|
#else
|
||||||
char tsLogDir[TSDB_FILENAME_LEN] = "/var/log/taos";
|
char tsLogDir[TSDB_FILENAME_LEN] = "/var/log/taos";
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -9,12 +9,12 @@
|
||||||
<version>1.0-SNAPSHOT</version>
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
<!-- taos -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.taosdata.jdbc</groupId>
|
<groupId>com.taosdata.jdbc</groupId>
|
||||||
<artifactId>taos-jdbcdriver</artifactId>
|
<artifactId>taos-jdbcdriver</artifactId>
|
||||||
<version>2.0.18</version>
|
<version>2.0.18</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<!-- druid -->
|
<!-- druid -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.alibaba</groupId>
|
<groupId>com.alibaba</groupId>
|
||||||
|
@ -50,6 +50,12 @@
|
||||||
<artifactId>log4j</artifactId>
|
<artifactId>log4j</artifactId>
|
||||||
<version>1.2.17</version>
|
<version>1.2.17</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<!-- proxool -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.cloudhopper.proxool</groupId>
|
||||||
|
<artifactId>proxool</artifactId>
|
||||||
|
<version>0.9.1</version>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
@ -57,25 +63,46 @@
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-assembly-plugin</artifactId>
|
<artifactId>maven-assembly-plugin</artifactId>
|
||||||
<version>3.1.0</version>
|
<version>3.3.0</version>
|
||||||
<configuration>
|
|
||||||
<archive>
|
|
||||||
<manifest>
|
|
||||||
<mainClass>com.taosdata.example.ConnectionPoolDemo</mainClass>
|
|
||||||
</manifest>
|
|
||||||
</archive>
|
|
||||||
<descriptorRefs>
|
|
||||||
<descriptorRef>jar-with-dependencies</descriptorRef>
|
|
||||||
</descriptorRefs>
|
|
||||||
</configuration>
|
|
||||||
<executions>
|
<executions>
|
||||||
<execution>
|
<execution>
|
||||||
<id>make-assembly</id>
|
<id>ConnectionPoolDemo</id>
|
||||||
|
<configuration>
|
||||||
|
<finalName>ConnectionPoolDemo</finalName>
|
||||||
|
<archive>
|
||||||
|
<manifest>
|
||||||
|
<mainClass>com.taosdata.example.ConnectionPoolDemo</mainClass>
|
||||||
|
</manifest>
|
||||||
|
</archive>
|
||||||
|
<descriptorRefs>
|
||||||
|
<descriptorRef>jar-with-dependencies</descriptorRef>
|
||||||
|
</descriptorRefs>
|
||||||
|
</configuration>
|
||||||
<phase>package</phase>
|
<phase>package</phase>
|
||||||
<goals>
|
<goals>
|
||||||
<goal>single</goal>
|
<goal>single</goal>
|
||||||
</goals>
|
</goals>
|
||||||
</execution>
|
</execution>
|
||||||
|
|
||||||
|
<execution>
|
||||||
|
<id>ProxoolDemo</id>
|
||||||
|
<configuration>
|
||||||
|
<finalName>ProxoolDemo</finalName>
|
||||||
|
<archive>
|
||||||
|
<manifest>
|
||||||
|
<mainClass>com.taosdata.example.ProxoolDemo</mainClass>
|
||||||
|
</manifest>
|
||||||
|
</archive>
|
||||||
|
<descriptorRefs>
|
||||||
|
<descriptorRef>jar-with-dependencies</descriptorRef>
|
||||||
|
</descriptorRefs>
|
||||||
|
</configuration>
|
||||||
|
<phase>package</phase>
|
||||||
|
<goals>
|
||||||
|
<goal>single</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
|
||||||
</executions>
|
</executions>
|
||||||
</plugin>
|
</plugin>
|
||||||
</plugins>
|
</plugins>
|
||||||
|
|
|
@ -0,0 +1,56 @@
|
||||||
|
package com.taosdata.example;
|
||||||
|
|
||||||
|
import org.logicalcobwebs.proxool.ProxoolException;
|
||||||
|
import org.logicalcobwebs.proxool.configuration.JAXPConfigurator;
|
||||||
|
|
||||||
|
import java.sql.*;
|
||||||
|
|
||||||
|
public class ProxoolDemo {
|
||||||
|
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
|
||||||
|
String xml = parseConfigurationXml(args);
|
||||||
|
if (xml == null) {
|
||||||
|
printHelp();
|
||||||
|
System.exit(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
JAXPConfigurator.configure(xml, false);
|
||||||
|
Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
|
||||||
|
Connection connection = DriverManager.getConnection("proxool.ds");
|
||||||
|
|
||||||
|
Statement stmt = connection.createStatement();
|
||||||
|
|
||||||
|
ResultSet rs = stmt.executeQuery("show databases");
|
||||||
|
ResultSetMetaData metaData = rs.getMetaData();
|
||||||
|
while (rs.next()) {
|
||||||
|
for (int i = 1; i <= metaData.getColumnCount(); i++) {
|
||||||
|
System.out.print(metaData.getColumnLabel(i) + ": " + rs.getString(i));
|
||||||
|
}
|
||||||
|
System.out.println();
|
||||||
|
}
|
||||||
|
|
||||||
|
stmt.close();
|
||||||
|
|
||||||
|
} catch (ClassNotFoundException | SQLException | ProxoolException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static String parseConfigurationXml(String[] args) {
|
||||||
|
String host = null;
|
||||||
|
for (int i = 0; i < args.length; i++) {
|
||||||
|
if ("--xml".equalsIgnoreCase(args[i]) && i < args.length - 1) {
|
||||||
|
host = args[++i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return host;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void printHelp() {
|
||||||
|
System.out.println("Usage: java -jar ProxoolDemo.jar --xml [xml]");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,27 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<something-else-entirely>
|
||||||
|
<proxool>
|
||||||
|
<alias>ds</alias>
|
||||||
|
<!--数据源的别名-->
|
||||||
|
<driver-url>jdbc:TAOS-RS://127.0.0.1:6041/log</driver-url>
|
||||||
|
<!--url连接串-->
|
||||||
|
<driver-class>com.taosdata.jdbc.rs.RestfulDriver</driver-class>
|
||||||
|
<!--驱动类-->
|
||||||
|
<driver-properties>
|
||||||
|
<property name="user" value="root"/>
|
||||||
|
<property name="password" value="taosdata"/>
|
||||||
|
</driver-properties>
|
||||||
|
<!--最大连接数(默认5个),超过了这个连接数,再有请求时,就排在队列中等候,最大的等待请求数由maximum-new-connections决定 -->
|
||||||
|
<maximum-connection-count>100</maximum-connection-count>
|
||||||
|
<!-- 定义连接池中的最大连接数 -->
|
||||||
|
<maximum-active-time>100</maximum-active-time>
|
||||||
|
<!--最少保持的空闲连接数(默认2个)-->
|
||||||
|
<prototype-count>1</prototype-count>
|
||||||
|
<!--最小连接数(默认2个)-->
|
||||||
|
<minimum-connection-count>5</minimum-connection-count>
|
||||||
|
<!--proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回收,超时的销毁 默认30秒-->
|
||||||
|
<house-keeping-sleep-time>30000</house-keeping-sleep-time>
|
||||||
|
<!--用于保持连接的测试语句 -->
|
||||||
|
<house-keeping-test-sql>select server_status()</house-keeping-test-sql>
|
||||||
|
</proxool>
|
||||||
|
</something-else-entirely>
|
|
@ -99,6 +99,15 @@ class TDTestCase:
|
||||||
tdSql.query('select avg(speed) from tb interval(100000000b)')
|
tdSql.query('select avg(speed) from tb interval(100000000b)')
|
||||||
tdSql.checkRows(4)
|
tdSql.checkRows(4)
|
||||||
|
|
||||||
|
tdSql.error('select avg(speed) from tb interval(1b);')
|
||||||
|
tdSql.error('select avg(speed) from tb interval(999b);')
|
||||||
|
|
||||||
|
tdSql.query('select avg(speed) from tb interval(1000b);')
|
||||||
|
tdSql.checkRows(5)
|
||||||
|
|
||||||
|
tdSql.query('select avg(speed) from tb interval(1u);')
|
||||||
|
tdSql.checkRows(5)
|
||||||
|
|
||||||
tdSql.query('select avg(speed) from tb interval(100000000b) sliding (100000000b);')
|
tdSql.query('select avg(speed) from tb interval(100000000b) sliding (100000000b);')
|
||||||
tdSql.checkRows(4)
|
tdSql.checkRows(4)
|
||||||
|
|
||||||
|
|
|
@ -238,6 +238,7 @@ python3 ./test.py -f query/queryTsisNull.py
|
||||||
python3 ./test.py -f query/subqueryFilter.py
|
python3 ./test.py -f query/subqueryFilter.py
|
||||||
# python3 ./test.py -f query/nestedQuery/queryInterval.py
|
# python3 ./test.py -f query/nestedQuery/queryInterval.py
|
||||||
python3 ./test.py -f query/queryStateWindow.py
|
python3 ./test.py -f query/queryStateWindow.py
|
||||||
|
python3 ./test.py -f query/nestedQuery/queryWithOrderLimit.py
|
||||||
|
|
||||||
|
|
||||||
#stream
|
#stream
|
||||||
|
|
|
@ -0,0 +1,79 @@
|
||||||
|
###################################################################
|
||||||
|
# Copyright (c) 2016 by TAOS Technologies, Inc.
|
||||||
|
# All rights reserved.
|
||||||
|
#
|
||||||
|
# This file is proprietary and confidential to TAOS Technologies.
|
||||||
|
# No part of this file may be reproduced, stored, transmitted,
|
||||||
|
# disclosed or used in any form or by any means other than as
|
||||||
|
# expressly provided by the written permission from Jianhui Tao
|
||||||
|
#
|
||||||
|
###################################################################
|
||||||
|
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
import sys
|
||||||
|
import os
|
||||||
|
import taos
|
||||||
|
from util.log import tdLog
|
||||||
|
from util.cases import tdCases
|
||||||
|
from util.sql import tdSql
|
||||||
|
from util.dnodes import tdDnodes
|
||||||
|
import random
|
||||||
|
|
||||||
|
class TDTestCase:
|
||||||
|
def init(self, conn, logSql):
|
||||||
|
tdLog.debug("start to execute %s" % __file__)
|
||||||
|
tdSql.init(conn.cursor(), logSql)
|
||||||
|
|
||||||
|
self.ts = 1593548685000
|
||||||
|
self.tables = 10
|
||||||
|
self.rowsPerTable = 100
|
||||||
|
|
||||||
|
|
||||||
|
def run(self):
|
||||||
|
# tdSql.execute("drop database db ")
|
||||||
|
tdSql.prepare()
|
||||||
|
tdSql.execute("create table st (ts timestamp, num int, value int) tags (loc nchar(30))")
|
||||||
|
for i in range(self.tables):
|
||||||
|
for j in range(self.rowsPerTable):
|
||||||
|
args1=(i, i, self.ts + i * self.rowsPerTable + j * 10000, i, random.randint(1, 100))
|
||||||
|
tdSql.execute("insert into t%d using st tags('beijing%d') values(%d, %d, %d)" % args1)
|
||||||
|
|
||||||
|
tdSql.query("select * from (select * from st)")
|
||||||
|
tdSql.checkRows(self.tables * self.rowsPerTable)
|
||||||
|
|
||||||
|
tdSql.query("select * from (select * from st limit 10)")
|
||||||
|
tdSql.checkRows(10)
|
||||||
|
|
||||||
|
tdSql.query("select * from (select * from st order by ts desc limit 10)")
|
||||||
|
tdSql.checkRows(10)
|
||||||
|
|
||||||
|
# bug: https://jira.taosdata.com:18080/browse/TD-5043
|
||||||
|
# tdSql.query("select * from (select * from st order by ts desc limit 10 offset 1000)")
|
||||||
|
# tdSql.checkRows(0)
|
||||||
|
|
||||||
|
tdSql.query("select avg(value), sum(value) from st group by tbname")
|
||||||
|
tdSql.checkRows(self.tables)
|
||||||
|
|
||||||
|
tdSql.query("select * from (select avg(value), sum(value) from st group by tbname)")
|
||||||
|
tdSql.checkRows(self.tables)
|
||||||
|
|
||||||
|
tdSql.query("select avg(value), sum(value) from st group by tbname slimit 5")
|
||||||
|
tdSql.checkRows(5)
|
||||||
|
|
||||||
|
tdSql.query("select * from (select avg(value), sum(value) from st group by tbname slimit 5)")
|
||||||
|
tdSql.checkRows(5)
|
||||||
|
|
||||||
|
tdSql.query("select avg(value), sum(value) from st group by tbname slimit 5 soffset 7")
|
||||||
|
tdSql.checkRows(3)
|
||||||
|
|
||||||
|
tdSql.query("select * from (select avg(value), sum(value) from st group by tbname slimit 5 soffset 7)")
|
||||||
|
tdSql.checkRows(3)
|
||||||
|
|
||||||
|
def stop(self):
|
||||||
|
tdSql.close()
|
||||||
|
tdLog.success("%s successfully executed" % __file__)
|
||||||
|
|
||||||
|
|
||||||
|
tdCases.addWindows(__file__, TDTestCase())
|
||||||
|
tdCases.addLinux(__file__, TDTestCase())
|
|
@ -114,8 +114,7 @@ class TDTestCase:
|
||||||
tdSql.query("select first(ts),twa(c) from tb interval(14a)")
|
tdSql.query("select first(ts),twa(c) from tb interval(14a)")
|
||||||
tdSql.checkRows(6)
|
tdSql.checkRows(6)
|
||||||
|
|
||||||
tdSql.query("select twa(c) from tb group by c")
|
tdSql.error("select twa(c) from tb group by c")
|
||||||
tdSql.checkRows(4)
|
|
||||||
|
|
||||||
|
|
||||||
def stop(self):
|
def stop(self):
|
||||||
|
|
|
@ -45,28 +45,38 @@ class taosdemoQueryPerformace:
|
||||||
sql = "select count(*) from test.meters"
|
sql = "select count(*) from test.meters"
|
||||||
tableid = 1
|
tableid = 1
|
||||||
cursor.execute("create table if not exists %s%d using %s tags(%d, '%s')" % (self.tbPerfix, tableid, self.stbName, tableid, sql))
|
cursor.execute("create table if not exists %s%d using %s tags(%d, '%s')" % (self.tbPerfix, tableid, self.stbName, tableid, sql))
|
||||||
|
|
||||||
sql = "select avg(f1), max(f2), min(f3) from test.meters"
|
sql = "select avg(f1), max(f2), min(f3) from test.meters"
|
||||||
tableid = 2
|
tableid = 2
|
||||||
cursor.execute("create table if not exists %s%d using %s tags(%d, '%s')" % (self.tbPerfix, tableid, self.stbName, tableid, sql))
|
cursor.execute("create table if not exists %s%d using %s tags(%d, '%s')" % (self.tbPerfix, tableid, self.stbName, tableid, sql))
|
||||||
|
|
||||||
sql = "select count(*) from test.meters where loc='beijing'"
|
sql = "select count(*) from test.meters where loc='beijing'"
|
||||||
tableid = 3
|
tableid = 3
|
||||||
cursor.execute("create table if not exists %s%d using %s tags(%d, \"%s\")" % (self.tbPerfix, tableid, self.stbName, tableid, sql))
|
cursor.execute("create table if not exists %s%d using %s tags(%d, \"%s\")" % (self.tbPerfix, tableid, self.stbName, tableid, sql))
|
||||||
|
|
||||||
sql = "select avg(f1), max(f2), min(f3) from test.meters where areaid=10"
|
sql = "select avg(f1), max(f2), min(f3) from test.meters where areaid=10"
|
||||||
tableid = 4
|
tableid = 4
|
||||||
cursor.execute("create table if not exists %s%d using %s tags(%d, '%s')" % (self.tbPerfix, tableid, self.stbName, tableid, sql))
|
cursor.execute("create table if not exists %s%d using %s tags(%d, '%s')" % (self.tbPerfix, tableid, self.stbName, tableid, sql))
|
||||||
|
|
||||||
sql = "select avg(f1), max(f2), min(f3) from test.t10 interval(10s)"
|
sql = "select avg(f1), max(f2), min(f3) from test.t10 interval(10s)"
|
||||||
tableid = 5
|
tableid = 5
|
||||||
cursor.execute("create table if not exists %s%d using %s tags(%d, '%s')" % (self.tbPerfix, tableid, self.stbName, tableid, sql))
|
cursor.execute("create table if not exists %s%d using %s tags(%d, '%s')" % (self.tbPerfix, tableid, self.stbName, tableid, sql))
|
||||||
|
|
||||||
sql = "select last_row(*) from meters"
|
sql = "select last_row(*) from meters"
|
||||||
tableid = 6
|
tableid = 6
|
||||||
cursor.execute("create table if not exists %s%d using %s tags(%d, '%s')" % (self.tbPerfix, tableid, self.stbName, tableid, sql))
|
cursor.execute("create table if not exists %s%d using %s tags(%d, '%s')" % (self.tbPerfix, tableid, self.stbName, tableid, sql))
|
||||||
|
|
||||||
sql = "select * from meters"
|
sql = "select * from meters"
|
||||||
tableid = 7
|
tableid = 7
|
||||||
cursor.execute("create table if not exists %s%d using %s tags(%d, '%s')" % (self.tbPerfix, tableid, self.stbName, tableid, sql))
|
cursor.execute("create table if not exists %s%d using %s tags(%d, '%s')" % (self.tbPerfix, tableid, self.stbName, tableid, sql))
|
||||||
|
|
||||||
sql = "select avg(f1), max(f2), min(f3) from meters where ts <= '2017-07-15 10:40:01.000' and ts <= '2017-07-15 14:00:40.000'"
|
sql = "select avg(f1), max(f2), min(f3) from meters where ts <= '2017-07-15 10:40:01.000' and ts <= '2017-07-15 14:00:40.000'"
|
||||||
tableid = 8
|
tableid = 8
|
||||||
cursor.execute("create table if not exists %s%d using %s tags(%d, \"%s\")" % (self.tbPerfix, tableid, self.stbName, tableid, sql))
|
cursor.execute("create table if not exists %s%d using %s tags(%d, \"%s\")" % (self.tbPerfix, tableid, self.stbName, tableid, sql))
|
||||||
|
|
||||||
|
sql = "select last(*) from meters"
|
||||||
|
tableid = 9
|
||||||
|
cursor.execute("create table if not exists %s%d using %s tags(%d, '%s')" % (self.tbPerfix, tableid, self.stbName, tableid, sql))
|
||||||
cursor.close()
|
cursor.close()
|
||||||
|
|
||||||
def query(self):
|
def query(self):
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
{
|
||||||
|
"filetype": "subscribe",
|
||||||
|
"cfgdir": "/etc/taos",
|
||||||
|
"host": "127.0.0.1",
|
||||||
|
"port": 6030,
|
||||||
|
"user": "root",
|
||||||
|
"password": "taosdata",
|
||||||
|
"databases": "db",
|
||||||
|
"confirm_parameter_prompt": "no",
|
||||||
|
"specified_table_query":
|
||||||
|
{
|
||||||
|
"concurrent":1,
|
||||||
|
"mode":"sync",
|
||||||
|
"interval": 0,
|
||||||
|
"restart":"yes",
|
||||||
|
"keepProgress":"no",
|
||||||
|
"endAfterConsume": 1100000,
|
||||||
|
"sqls": [
|
||||||
|
{
|
||||||
|
"sql": "select * from st;",
|
||||||
|
"result": ""
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,82 @@
|
||||||
|
###################################################################
|
||||||
|
# Copyright (c) 2016 by TAOS Technologies, Inc.
|
||||||
|
# All rights reserved.
|
||||||
|
#
|
||||||
|
# This file is proprietary and confidential to TAOS Technologies.
|
||||||
|
# No part of this file may be reproduced, stored, transmitted,
|
||||||
|
# disclosed or used in any form or by any means other than as
|
||||||
|
# expressly provided by the written permission from Jianhui Tao
|
||||||
|
#
|
||||||
|
###################################################################
|
||||||
|
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
import sys
|
||||||
|
import os
|
||||||
|
import time
|
||||||
|
from util.log import *
|
||||||
|
from util.cases import *
|
||||||
|
from util.sql import *
|
||||||
|
from util.dnodes import *
|
||||||
|
import _thread
|
||||||
|
|
||||||
|
class TDTestCase:
|
||||||
|
def init(self, conn, logSql):
|
||||||
|
tdLog.debug("start to execute %s" % __file__)
|
||||||
|
tdSql.init(conn.cursor(), logSql)
|
||||||
|
|
||||||
|
self.ts = 1601481600000
|
||||||
|
self.numberOfRecords = 1100000
|
||||||
|
|
||||||
|
def execCmdAndGetOutput(self, cmd):
|
||||||
|
r = os.popen(cmd)
|
||||||
|
text = r.read()
|
||||||
|
r.close()
|
||||||
|
return text
|
||||||
|
|
||||||
|
def getBuildPath(self):
|
||||||
|
selfPath = os.path.dirname(os.path.realpath(__file__))
|
||||||
|
|
||||||
|
if ("community" in selfPath):
|
||||||
|
projPath = selfPath[:selfPath.find("community")]
|
||||||
|
else:
|
||||||
|
projPath = selfPath[:selfPath.find("tests")]
|
||||||
|
|
||||||
|
for root, dirs, files in os.walk(projPath):
|
||||||
|
if ("taosd" in files):
|
||||||
|
rootRealPath = os.path.dirname(os.path.realpath(root))
|
||||||
|
if ("packaging" not in rootRealPath):
|
||||||
|
buildPath = root[:len(root)-len("/build/bin")]
|
||||||
|
break
|
||||||
|
return buildPath
|
||||||
|
|
||||||
|
def run(self):
|
||||||
|
buildPath = self.getBuildPath()
|
||||||
|
tdSql.prepare()
|
||||||
|
tdSql.execute("create table st(ts timestamp, c1 timestamp, c2 int, c3 bigint, c4 float, c5 double, c6 binary(8), c7 smallint, c8 tinyint, c9 bool, c10 nchar(8)) tags(t1 int)")
|
||||||
|
tdSql.execute("create table t1 using st tags(0)")
|
||||||
|
currts = self.ts
|
||||||
|
finish = 0
|
||||||
|
while(finish < self.numberOfRecords):
|
||||||
|
sql = "insert into t1 values"
|
||||||
|
for i in range(finish, self.numberOfRecords):
|
||||||
|
sql += "(%d, 1019774612, 29931, 1442173978, 165092.468750, 1128.643179, 'MOCq1pTu', 18405, 82, 0, 'g0A6S0Fu')" % (currts + i)
|
||||||
|
finish = i + 1
|
||||||
|
if (1048576 - len(sql)) < 16384:
|
||||||
|
break
|
||||||
|
tdSql.execute(sql)
|
||||||
|
|
||||||
|
binPath = buildPath+ "/build/bin/"
|
||||||
|
|
||||||
|
os.system("%staosdemo -f tools/taosdemoAllTest/sub_no_result.json -g 2>&1 | tee sub_no_result.log" % binPath)
|
||||||
|
test_line = int(self.execCmdAndGetOutput("cat sub_no_result.log | wc -l"))
|
||||||
|
if(test_line < 1100024):
|
||||||
|
tdLog.exit("failed test subscribeNoResult: %d != expected(1100024)" % test_line)
|
||||||
|
|
||||||
|
def stop(self):
|
||||||
|
tdSql.close()
|
||||||
|
tdLog.success("%s successfully executed" % __file__)
|
||||||
|
|
||||||
|
|
||||||
|
tdCases.addWindows(__file__, TDTestCase())
|
||||||
|
tdCases.addLinux(__file__, TDTestCase())
|
|
@ -131,6 +131,7 @@ run general/parser/join.sim
|
||||||
run general/parser/join_multivnode.sim
|
run general/parser/join_multivnode.sim
|
||||||
run general/parser/select_with_tags.sim
|
run general/parser/select_with_tags.sim
|
||||||
run general/parser/groupby.sim
|
run general/parser/groupby.sim
|
||||||
|
run general/parser/top_groupby.sim
|
||||||
run general/parser/tags_dynamically_specifiy.sim
|
run general/parser/tags_dynamically_specifiy.sim
|
||||||
run general/parser/set_tag_vals.sim
|
run general/parser/set_tag_vals.sim
|
||||||
#unsupport run general/parser/repeatAlter.sim
|
#unsupport run general/parser/repeatAlter.sim
|
||||||
|
|
|
@ -692,6 +692,7 @@ if $data31 != 4 then
|
||||||
return -1
|
return -1
|
||||||
endi
|
endi
|
||||||
|
|
||||||
|
sql_error select irate(c) from st where t1="1" and ts >= '2020-03-27 04:11:17.732' and ts < '2020-03-27 05:11:17.732' interval(1m) sliding(15s) group by tbname,c;
|
||||||
sql select irate(c) from st where t1="1" and ts >= '2020-03-27 04:11:17.732' and ts < '2020-03-27 05:11:17.732' interval(1m) sliding(15s) group by tbname,t1,t2;
|
sql select irate(c) from st where t1="1" and ts >= '2020-03-27 04:11:17.732' and ts < '2020-03-27 05:11:17.732' interval(1m) sliding(15s) group by tbname,t1,t2;
|
||||||
if $rows != 40 then
|
if $rows != 40 then
|
||||||
return -1
|
return -1
|
||||||
|
|
|
@ -306,41 +306,11 @@ endi
|
||||||
|
|
||||||
sql_error select avg(f1),count(f1),sum(f1),twa(f1) from tb1 group by tbname having twa(f1) > 0;
|
sql_error select avg(f1),count(f1),sum(f1),twa(f1) from tb1 group by tbname having twa(f1) > 0;
|
||||||
|
|
||||||
sql select avg(f1),count(f1),sum(f1),twa(f1) from tb1 group by f1 having twa(f1) > 3;
|
sql_error select avg(f1),count(f1),sum(f1),twa(f1) from tb1 group by f1 having twa(f1) > 3;
|
||||||
if $rows != 1 then
|
|
||||||
return -1
|
|
||||||
endi
|
|
||||||
if $data00 != 4.000000000 then
|
|
||||||
return -1
|
|
||||||
endi
|
|
||||||
if $data01 != 2 then
|
|
||||||
return -1
|
|
||||||
endi
|
|
||||||
if $data02 != 8 then
|
|
||||||
return -1
|
|
||||||
endi
|
|
||||||
if $data03 != 4.000000000 then
|
|
||||||
return -1
|
|
||||||
endi
|
|
||||||
|
|
||||||
sql_error select avg(f1),count(f1),sum(f1),twa(f1) from tb1 group by tbname having sum(f1) > 0;
|
sql_error select avg(f1),count(f1),sum(f1),twa(f1) from tb1 group by tbname having sum(f1) > 0;
|
||||||
|
|
||||||
sql select avg(f1),count(f1),sum(f1),twa(f1) from tb1 group by f1 having sum(f1) = 4;
|
sql_error select avg(f1),count(f1),sum(f1),twa(f1) from tb1 group by f1 having sum(f1) = 4;
|
||||||
if $rows != 1 then
|
|
||||||
return -1
|
|
||||||
endi
|
|
||||||
if $data00 != 2.000000000 then
|
|
||||||
return -1
|
|
||||||
endi
|
|
||||||
if $data01 != 2 then
|
|
||||||
return -1
|
|
||||||
endi
|
|
||||||
if $data02 != 4 then
|
|
||||||
return -1
|
|
||||||
endi
|
|
||||||
if $data03 != 2.000000000 then
|
|
||||||
return -1
|
|
||||||
endi
|
|
||||||
|
|
||||||
sql select avg(f1),count(f1),sum(f1) from tb1 group by f1 having sum(f1) > 0;
|
sql select avg(f1),count(f1),sum(f1) from tb1 group by f1 having sum(f1) > 0;
|
||||||
if $rows != 4 then
|
if $rows != 4 then
|
||||||
|
|
|
@ -0,0 +1,52 @@
|
||||||
|
system sh/stop_dnodes.sh
|
||||||
|
system sh/deploy.sh -n dnode1 -i 1
|
||||||
|
system sh/cfg.sh -n dnode1 -c walLevel -v 0
|
||||||
|
system sh/cfg.sh -n dnode1 -c maxtablesPerVnode -v 2
|
||||||
|
system sh/exec.sh -n dnode1 -s start
|
||||||
|
|
||||||
|
sleep 100
|
||||||
|
sql connect
|
||||||
|
print ======================== dnode1 start
|
||||||
|
|
||||||
|
$db = testdb
|
||||||
|
|
||||||
|
sql create database $db
|
||||||
|
sql use $db
|
||||||
|
|
||||||
|
sql create stable st2 (ts timestamp, f1 int, f2 float, f3 double, f4 bigint, f5 smallint, f6 tinyint, f7 bool, f8 binary(10), f9 nchar(10)) tags (id1 int, id2 float, id3 nchar(10), id4 double, id5 smallint, id6 bigint, id7 binary(10))
|
||||||
|
|
||||||
|
sql create table tb1 using st2 tags (1,1.0,"1",1.0,1,1,"1");
|
||||||
|
|
||||||
|
sql insert into tb1 values (now-200s,1,1.0,1.0,1,1,1,true,"1","1")
|
||||||
|
sql insert into tb1 values (now-100s,2,2.0,2.0,2,2,2,true,"2","2")
|
||||||
|
sql insert into tb1 values (now,3,3.0,3.0,3,3,3,true,"3","3")
|
||||||
|
sql insert into tb1 values (now+100s,4,4.0,4.0,4,4,4,true,"4","4")
|
||||||
|
sql insert into tb1 values (now+200s,4,4.0,4.0,4,4,4,true,"4","4")
|
||||||
|
sql insert into tb1 values (now+300s,4,4.0,4.0,4,4,4,true,"4","4")
|
||||||
|
sql insert into tb1 values (now+400s,4,4.0,4.0,4,4,4,true,"4","4")
|
||||||
|
sql insert into tb1 values (now+500s,4,4.0,4.0,4,4,4,true,"4","4")
|
||||||
|
|
||||||
|
sql select top(f1, 2) from tb1 group by f1;
|
||||||
|
|
||||||
|
if $rows != 5 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql select bottom(f1, 2) from tb1 group by f1;
|
||||||
|
|
||||||
|
if $rows != 5 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql select top(f1, 100) from tb1 group by f1;
|
||||||
|
|
||||||
|
if $rows != 8 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
||||||
|
sql select bottom(f1, 100) from tb1 group by f1;
|
||||||
|
|
||||||
|
if $rows != 8 then
|
||||||
|
return -1
|
||||||
|
endi
|
||||||
|
|
Loading…
Reference in New Issue