返回首页

gbase数据、南大通用产品文档:GBase8c

更新日期:2024年09月11日

参数说明

-U
运行GBase 8c 的用户名称。
取值范围:运行GBase 8c 的用户名称。

-L
本地执行。

GBase 8c 工具参考手册
南大通用数据技术股份有限公司
72

-i
指定检查项。格式-i CheckXX 详细的检查项请参见表3-3。

-e
场景检查项。
默认的场景有inspect
(例行巡检)

upgrade
(升级前巡检)

binary_upgrade
(就地升级前巡检)、health(健康检查巡检)、install(安装)等,用户可以根据需求自己
编写场景,详见用户自定义场景。

-l
指定日志文件路径,指定路径时需添加.log 后缀。

-o
指定检查结果输出文件夹路径。

--skip-root-items
跳过需要root 权限执行的检查项。

--skip-items
跳过指定的检查项。

--format
设置结果报告的格式。

--set
修复支持设置的Abnormal 项。

--cid
检查ID,仅被内部check 进程使用。

--time-out
设置超时时间。单位为秒,默认为1500s,若用户自定义超时时间不得少于1500s。

--routing

GBase 8c 工具参考手册
南大通用数据技术股份有限公司
73
指定业务IP 的网段,格式为IP 地址:子网掩码。

--disk-threshold=“PERCENT”
检查磁盘占用时可选指定告警阈值,可指定1-99 之间的整数,不输入则默认为90。检
查其他项时不需要该参数。

-?, --help
显示帮助信息。

-V, --version
显示版本号信息。
表3-3 GBase 8c 状态检查表
状态
巡检项
检查内容




--se
t
os
CheckCPU
(检查CPU
使用率)
检查主机CPU 占用率,如果idle 大于30%并且
iowait 小于30%。则检查项通过,否则检查项不
通过。

CheckFirewall(检查
防火墙状态)
检查主机防火墙状态,
如果防火墙关闭则检查项
通过,否则检查项不通过。

CheckTimeZone
(检查
时区一致性)
检查GBase 8c 内各节点时区,如果时区一致则
检查通过,否则检查项不通过。

CheckSysParams(检
查系统参数)
检查各节点操作系统参数,判断是否等于预期
值。检查项不满足warning 域则报warning,不
满足NG 域则检查项不通过,并打印不满足项。


GBase 8c 工具参考手册
南大通用数据技术股份有限公司
74
状态
巡检项
检查内容




--se
t
CheckOSVer(检查操
作系统版本)
检查GBase 8c 内各个节点的操作系统版本信息,
如果满足版本兼容列表且GBase 8c 在同一混搭
列表中则检查通过,否则检查不通过。

CheckNTPD(检查
NTPD 服务)
检查系统NTPD 服务,
如果服务开启且各节点时
间误差在1 分钟以内则检查项通过,
否则检查项
不通过。

CheckTHP(检查THP
服务)
检查系统THP 服务,如果服务开启则检查项通
过,否则检查项不通过。

CheckSshdService(检
查sshd 服务是否已启
动)
检查系统是否存在sshd 服务,若存在则检查项
通过,否则检查项不通过。

CheckCrondService(
检查crontab 服务是
否已启动)
检查系统是否存在crontab 服务,若存在则检查
项通过,否则检查项不通过。

CheckCrontabLeft(检
查crontab 是否有残
留Gauss 相关信息)
检查crontab 是否残留Gauss 相关信息,若无该
信息则检查项通过,否则检查项不通过。

CheckDirLeft(检查文
件目录是否有残留)
检查文件目录(/home/gbase/data)是否存在。若
mount 目录包含此目录则忽略;若不存在则查项
通过,否则检查项不通过。

CheckProcessLeft(检
查进程是否有残留)
检查是否残留gaussdb 和omm 进程,若未残留
则检查项通过,否则检查项不通过。


GBase 8c 工具参考手册
南大通用数据技术股份有限公司
75
状态
巡检项
检查内容




--se
t
CheckStack(栈深度检
查)
检查栈深度,若各个节点不一致则报warning ,
若大于等于3072 则检查项通过,否则不通过。

CheckOmmUserExist(
检查gbase 用户是否
存在)
检查是否存在gbase 用户,若不存在gbase 用户
则检查项通过,否则检查项不通过。

CheckPortConflict(检
查数据库节点端口是
否占用)
检查数据库节点端口是否已被占用,
若未占用则
检查项通过,否则检查项不通过。

CheckSysPortRange
(检查
ip_local_port_range 设
置范围)
检查ip_local_port_range 系统参数范围,若范围
在26000~65535 则检查项通过,
否则检查项不通
过。

CheckEtcHosts(检查
/etc/hosts 中是否有重
复地址以及localhost
配置)
检查/etc/hosts 没有配置localhost 检查项不通过,
存在带有#GBase 8c 注释的映射则检查项不通
过,相同IP 不同hostname 则检查项不通过,否
则通过,若hostname 相同,但ip 不同检查项不
通过。

CheckCpuCount
(检查
CPU 核数)
检查CPU 核心与可用CPU 不符检查项不通过,
相符但存在不可用信息Warning。所有节点CPU
信息不相同检查项不通过。

CheckHyperThread
(检查超线程是否打
开)
检查超线程,若打开则检查项通过,否则检查项
不通过。


GBase 8c 工具参考手册
南大通用数据技术股份有限公司
76
状态
巡检项
检查内容




--se
t
CheckMemInfo(检查
内存总大小)
检查各节点总内存大小是否一致,
若检查结果一
致,则检查项通过,否则报warning。

CheckSshdConfig(检
查sshd 服务配置是否
正确)
检查/etc/ssh/sshd_config 文件,
(a)PasswordAuthentication=yes;
(b)MaxStartups=1000;
(c)UseDNS=no;
(d)ClientAliveInterval 大于10800 或者等于0
配置如上所示则检查项通过,若a、c 配置不正
确则报warning,b、d 配置不正确则检查项不通
过。

CheckMaxHandle(检
查句柄最大设置)
检查操作系统最大句柄值,如果该值大于等于
1000000 则检查项通过,否则检查项不通过。

CheckKernelVer
(检查
内核版本)
检查各节点系统内核版本信息,
如果版本信息一
致则检查项通过,否则报Warning。

CheckEncoding
(检查
编码格式)
检查GBase 8c 内各个节点的系统编码,如果编
码一致则检查项通过,否则检查项不通过。

CheckBootItems(检
查启动项)
检查是否有手动添加的启动项,
如果没有则检查
通过,否则检查不通过。

CheckDropCache(检
查DropCache 进程)
检查各节点是否有dropcache 进程在运行,若有
则检查通过,否则检查不通过。


GBase 8c 工具参考手册
南大通用数据技术股份有限公司
77
状态
巡检项
检查内容




--se
t
CheckFilehandle(检
查文件句柄)
此检查项检查以下两项,两项都通过为通过,否
则为不通过:
检查每个gaussdb 进程打开的进程数是否超过80
万,不超过则检查通过,否则检查不通过。
检查是否有slave 进程使用的句柄数超过master
进程,如果没有则检查通过,否则检查不通过。

CheckKeyProAdj(检
查关键进程omm_adj
的值)
检查所有关键进程,如果所有关键进程的
omm_adj 值为0,则通过,否则不通过。

CheckMaxProcMemor
y(检查
max_process_memory
参数设置是否合理)
检查数据库节点的max_process_memory 值,判
断该参数的值是否大于1G,若不大于则检查项
通过,否则检查项不通过。

device
CheckSwapMemory
(检查交换内存)
检查交换内存和总内存大小,
若检查结果为0 则
检查项通过,
否则检查项报Warning 大于总内存
时检查项不通过。

CheckLogicalBlock
(检查磁盘逻辑块)
检查磁盘逻辑块大小,若为512 则检查项通过,
否则检查项不通过。

CheckIOrequestqueue
(检查IO 请求)
检查IO 值,如果该值为32768 则检查项通过,
否则检查项不通过。

CheckMaxAsyIOrequ
ests
(检查最大异步IO
请求)
获取当前异步IO 请求值,
当前异步IO 请求值大
于当前节点数据库实例数*1048576 和
104857600 则检查项通过,否则检查项不通过。


GBase 8c 工具参考手册
南大通用数据技术股份有限公司
78
状态
巡检项
检查内容




--se
t
CheckIOConfigure
(检
查IO 配置)
检查IO 配置,如果是deadline 则检查项通过,
否则检查项不通过。

CheckBlockdev
(检查
磁盘预读块)
检查磁盘预读块大小,如果预读块大小为16384
则检查项通过,否则检查项不通过。

CheckDiskFormat(检
查磁盘格式参数)
检查磁盘XFS 格式信息,如果配置为
'rw,noatime,inode64,allocsize=16m' 则检查项通
过,否则报warning。

CheckInodeUsage(检
查磁盘inodes 使用
率)
GBase
8c


(GAUSSHOME/PGHOST/GPHOME/GAUSSL
OG/tmp 及实例目录)
检查以上指定目录使用率,如果使用率超过
warning 阈值(默认为60%)报warning 超过
NG 阈值(默认为80%)则检查项不通过,否则
通过。

CheckSpaceUsage
(检
查磁盘使用率)
GBase
8c


(GAUSSHOME/PGHOST/GPHOME/GAUSSL
OG/tmp 及实例目录)
检查磁盘以上指定目录(目录列表)使用率,如
果使用率超过warning 阈值(默认为70%)报
warning 超过NG 阈值(默认为90%)则检查项
不通过。GBase
8c
路径下检查
GAUSSHOME/PGHOST/GPHOME/GAUSSLOG
/tmp/data 路径的剩余空间,
不满足阈值则检查项
不通过,否则通过。


GBase 8c 工具参考手册
南大通用数据技术股份有限公司
79
状态
巡检项
检查内容




--se
t
CheckDiskConfig(检
查磁盘空间大小一致
性)
检查磁盘名大小挂载点是否一致,
若一致则检查
项通过,否则报warning。

CheckXid(检查
CheckXid 数值)
查询xid 的数值,如果大于10 亿报Warning,大
于18 亿则检查项不通过。

CheckSysTabSize(检
查每个实例的系统表
容量)
如果每一块磁盘的剩余容量大于该磁盘上所有
实例的系统表容量总和则检查项通过,
否则检查
项不通过。

cluster
CheckClusterState
(检
查GBase 8c 状态)
检查fencedUDF 状态,如果fencedUDF 状态为
down 则报warning;检查GBase 8c 状态,如果
GBase 8c 状态为Normal 则检查项通过,否则检
查项不通过。

CheckDBParams(检
查GBase 8c 参数)
检查数据库主节点检查共享缓冲区大小和Sem
参数。
数据库节点检查共享缓冲区大小和最大连接数。
共享缓冲区需要大于128KB 且大于shmmax 且
大于shmall*PAGESIZE
若存在数据库主节点,则Sem 值需大于(数据库
节点最大连接数+150)/16 向上取整。
以上项完全满足则检查项通过,
否则检查项不通
过。

CheckDebugSwitch
(检查日志级别)
在各节点检查各实例的配置文件中
log_min_messages 参数的值,为空则认为是


GBase 8c 工具参考手册
南大通用数据技术股份有限公司
80
状态
巡检项
检查内容




--se
t
Warning,
判断日志级别非waring,
则报warning。
CheckUpVer(检查升
级版本是否一致)
检查GBase 8c 各个节点上升级包的版本,如果
一致则检查项通过,
否则检查项不通过。
使用时,
需指定升级软件包路径。

CheckDirPermissions
(检查目录权限)
检查节点目录
(实例Xlog 路径、
GAUSSHOME、
GPHOME、PGHOST、GAUSSLOG)权限,如
果目录有写入权限且不大于750 则检查项通过,
否则检查项不通过。

CheckEnvProfile(检
查环境变量)
检查节点环境变量($GAUSSHOME 、
$LD_LIBRARY_PATH 、$PATH ),检查
CMS/CMA/数据库节点进程的环境变量。
如果环
境变量存在并配置正确,
进程的环境变量存在则
检查项通过,否则检查项不通过。

CheckGaussVer
(检查
进程版本)
检查各个节点进程版本是否一致,
如果版本一致
则检查项通过,否则检查项不通过。

CheckPortRange(检
查端口范围)
若ip_local_port_range 的范围在阈值范围内(默
认是26000 65535 ),并且实例端口不在
ip_local_port_range 范围内则检查项通过,否则
检查项不通过。

CheckReadonlyMode
(检查只读模式)


GBase
8c






default_transaction_read_only值若为off则检查通
过,否则不通过。


GBase 8c 工具参考手册
南大通用数据技术股份有限公司
81
状态
巡检项
检查内容




--se
t
CheckCatchup(检查
Catchup)
检查gaussdb 进程堆栈是否能搜索到
CatchupMain 函数,若搜索不到则检查项通过,
否则检查项不通过。

CheckProcessStatus
(检查gaussdb 进程
属主)
检查'gaussdb 进程属主,若不存在gbase 以外的
属主则检查项通过,否则检查项不通过。

CheckSpecialFile(特
殊文件检查)
检查tmp 目录(PGHOST)、OM 目录(GPHOME)、
日志目录(GAUSSLOG)、data 目录、程序目录
(GAUSSHOME)下文件是否存在特殊字符以及
非gbase 用户的文件,若不存在则检查项通过,
否则检查项不通过。

CheckCollector(检查
GBase 8c 的信息收
集)
在output 目录下查看信息收集是否成功,
若收集
成功则检查项通过,否则检查项不通过。

CheckLargeFile
(检查
数据目录大文件)
检查各个数据库节点目录是否存在超过4G 的文
件。任一数据库节点目录及其子目录有超过4G
的单个文件,则检查不通过,否则检查通过。

CheckProStartTime
(关键进程启动时间
检测)
检查关键进程启动时间是否间隔超过5 分钟,

过则检查不通过,否则检查通过。

CheckDilateSysTab
(检查系统表膨胀)
检查系统表是否膨胀,若膨胀则不通过,否则检
查通过。


GBase 8c 工具参考手册
南大通用数据技术股份有限公司
82
状态
巡检项
检查内容




--se
t
CheckMpprcFile(检
测环境变量分离文件
改动)
检查是否存在对环境变量分离文件的改动,
若存
在则检查不通过,否则检查通过。

databa
se
CheckLockNum
(检查
锁数量)
检查数据库锁数量,查询成功检查项通过。

CheckArchiveParamet
er(检查归档参数)
检查数据库归档参数,
如果未打开或打开且在数
据库节点下则检查项通过,打开且不在数据库
主节点目录下则检查项不通过。

CheckCurConnCount(
检查当前连接数)
检查数据库连接数,
如果连接数小于最大连接数
的90%则检查项通过,否则检查项不通过。

CheckCursorNum(检
查当前游标数)
检查数据库的游标数,检查成功则检查项通过,
否则检查项不通过。

CheckMaxDatanode(
检查
comm_max_datanode
参数值范围小于数据
库节点个数)
检查最大数据库节点数,
若最大数据库节点数小
于xml 配置的节点数*数据库节点数(默认值为
90*5)报warning,否则检查项通过。

CheckPgPreparedXact
s(检查残留两阶段事
务)
检查pgxc_prepared_xacts 参数,
如果不存在二阶
段事务则检查项通过,否则检查项不通过。

CheckPgxcgroup(检
查pgxc_group 表中需
检查pgxc_group 表中需要重分布的个数,检查
结果为0 则通过,否则不通过。


GBase 8c 工具参考手册
南大通用数据技术股份有限公司
83
状态
巡检项
检查内容




--se
t
要重分布的个数)
CheckLockState(GBas
e 8c 是否被锁)
检查GBase 8c 是否被锁,若GBase 8c 被锁则不
通过,否则检查项通过。

CheckIdleSession(检
查业务停止)
检查非空闲会话数,如果数量为0 则检查项通
过,否则检查项不通过。

CheckDBConnection(
检查数据库连接)
检查能否连接数据库,
如果连接成功则检查项通
过,否则检查项不通过。

CheckGUCValue(GU
C 参数检查)


(max_connections
+
max_prepared_transactions)
*
max_locks_per_transaction 的值,若该值大于等
于1000000 则检查项通过,否则检查项不通过。

CheckPMKData(检查
PMK 异常数据)
检查数据库PMK schema 是否包含有异常数据,
如果不存在异常数据则检查项通过,
否则检查项
不通过。

CheckSysTable(检查
系统表)
检查系统表,检查成功则检查项通过。

CheckSysTabSize(检
查每个实例的系统表
容量)
如果每一块磁盘的剩余容量大于该磁盘上所有
实例的系统表容量总和则检查项通过,
否则检查
项不通过。

CheckTableSpace(检
查表空间路径)
表空间路径和GBase 8c 路径之间不能存在嵌套
且表空间路径相互不能存在嵌套,则检查项通


GBase 8c 工具参考手册
南大通用数据技术股份有限公司
84
状态
巡检项
检查内容




--se
t
过,否则检查项不通过。
CheckTableSkew(检
查表级别数据倾斜)
若存在表在GBase 8c 各数据库节点上的数据分
布不均衡,
且分布数据最多的数据库节点比最低
的数据库节点所分布的数据多100000 条以上,
则检查不通过,否则检查通过。

CheckDNSkew(检查
数据库节点级别数据
分布倾斜)
检查数据库节点级别的表倾斜数据,
若分布数据
最高的数据库节点比分布数据最低的数据库节
点数据量高于5%,则检查不通过,否则检查通
过。

CheckUnAnalyzeTabl
e(检查未做analyze
的表)
若存在未做analyze 的表,并且表中至少包含一
条数据,则检查不通过,否则检查通过。

CheckCreateView(创
建视图检查)
创建视图时,如果查询语句中含有子查询,并且
子查询结果查询解析和重写之后存在别名重复,
检查不通过,否则检查通过。

CheckHashIndex
(hash index 语法检
查)
如果存在hash index 则检查不通过,否则检查通
过。

CheckNextvalInDefau
lt(检查Default 表达
式中包含nextval
(sequence))
检查
Default
表达式中是否包含
nextval(sequence),若包含则不通过,否则通过。


GBase 8c 工具参考手册
南大通用数据技术股份有限公司
85
状态
巡检项
检查内容




--se
t
CheckNodeGroupNa
me(Node group 编码
格式检查)
存在非SQL_ASCII 字符的Node Group 名称则检
查不通过,不存在则检查通过。

CheckPgxcRedistb
(检
查重分布残留的临时
表)
检查数据库中是否存在重分布残留的临时表,

不存在则检查通过,否则检查不通过。

CheckReturnType(用
户自定义函数返回值
类型检查)
检查用户自定义函数是否包含非法返回类型,

包含则检查不通过,否则检查通过。

CheckSysadminUser
(检查sysadmin 用
户)
检查除gbase 属主外是否存在数据库管理员用
户,若存在则不通过,否则检查通过。

CheckTDDate
(TD 数
据库中orc 表date 类
型列检查)
检查TD 模式数据库下的orc 表中是否包含date
类型的列,若包含检查不通过,否则检查通过。

CheckDropColumn
(drop column 检查)
如果存在drop column 的表,则检查不通过,否
则检查通过。

CheckDiskFailure(检
查磁盘故障)
对GBase 8c 中的所有数据做全量查询,若存在
查询错误则检查不通过,否则检查通过。

networ
k
CheckPing(检查网络
通畅)
检查GBase 8c 内所有节点的互通性,如果各节
点所有IP 均可ping 通则检查项通过,否则检查
项不通过。


GBase 8c 工具参考手册
南大通用数据技术股份有限公司
86
状态
巡检项
检查内容




--se
t
CheckRXTX(检查网
卡RXTX 值)
检查节点backIP 的RX/TX 值,
如果该值为4096
则检查项通过,否则检查项不通过。

CheckMTU(检查网卡
MTU 值)
检查节点backIP 对应的网卡MTU 值(bond 后
的物理网卡要确保一致),如果该值不是8192
或1500 报warning 若openGaussMTU 值一致则
检查项通过,否则检查项不通过。

CheckNetWorkDrop(
检查网络掉包率)
检查各IP1 分钟内网络掉包率,如果不超过1%
则检查项通过,否则检查项不通过。

CheckBond(检查网卡
绑定模式)
检查是否有配置
BONDING_OPTS

BONDING_MODULE_OPTS,若没有配置则报
warning。检查各节点bond 模式是否一致,如果
同时满足则检查项通过,否则检查项不通过。

CheckMultiQueue(检
查网卡多队列)
检查cat /proc/interrupts,判断是否开启网卡多队
列且绑定不同CPU,
如果满足则检查项通过,

则检查项不通过。

CheckUsedPort(检查
随机端口使用数量)
检查net.ipv4.ip_local_port_range,范围大于等于
OS 默认值通过(32768-61000);
检查TCP 协议随机端口数,小于总随机端口数
的80%通过。

CheckNICModel(网
卡型号和驱动版本一
致性检查)
检查各个节点的网卡型号以及驱动版本是否一
致,一致则通过,否则报warning。


GBase 8c 工具参考手册
南大通用数据技术股份有限公司
87
状态
巡检项
检查内容




--se
t
CheckRouting(本地
路由表检查)
检查各节点在业务IP 网段的IP 个数,超过1 个
则报warning,否则检查通过。

CheckNetSpeed(检查
网卡接收带宽,ping
值,丢包率)
网络满载时,
检查网卡平均接收带宽大于600MB
通过;
网络满载时,检查网络ping 值,小于1 秒通过;
网络满载时,检查网卡丢包率,小于1%通过。

other
CheckDataDiskUsage(
检查数据库节点磁盘
空间使用率)
检查磁盘数据库节点目录使用率,
如果使用率低
于90%则检查项通过,否则检查项不通过。

CheckNetSpeed 检查项:

CheckNetSpeed 不支持-L 本地检查模式,-L 模式无法构造网络压力,检查的结果
不准确。

在节点数小于6 时,speed_test 构造的网络压力可能无法跑满带宽,可能会造成检
查结果不准确。

语法格式:
UPDATE [database_name.]table_name
SET col_name1=value [, col_name2=value ...]
[WHERE where_definition]
注意:Hive 引擎表开启了属性TBLPROPERTIES(”transactional”=”true”)时方可执行
UPDATE 操作。
注意:对Hive 引擎表执行UPDATE 操作,影响行数均返回0,这是由于HIVE 引
擎本身的限制。

UPDATE 示例,首先创建表并插入数据:
gbase> CREATE TABLE t0(id int) CLUSTERED BY(id) INTO 2 BUCKETS STORED AS ORC
TBLPROPERTIES('transactional' = 'true') ENGINE = 'HIVE';
Query OK, 0 rows affected

gbase>
CREATE
TABLE
t1(id
int,name
varchar(50))
CLUSTERED
BY(name)
INTO
2
BUCKETS
STORED
AS ORC TBLPROPERTIES('transactional' = 'true') ENGINE = 'HIVE';
Query OK, 0 rows affected

gbase> CREATE TABLE t2(id int) ENGINE = 'HIVE';
Query OK, 0 rows affected

gbase> INSERT INTO t0(id) VALUES(1),(2),(3),(4),(5),(6),(2),(3),(1);
Query OK, 9 rows affected
Records: 9 Duplicates: 0 Warnings: 0

gbase> INSERT INTO t1 VALUES(1,'baker'),(2,'hunter'),(3,'carter'),(4,'smith');
Query OK, 4 rows affected
Records: 4 Duplicates: 0 Warnings: 0

gbase> INSERT INTO t2(id) VALUES(1),(2),(4);
Query OK, 3 rows affected
Records: 3 Duplicates: 0 Warnings: 0
示例1:更新t1 表的数据。
gbase> SELECT * FROM t1;
+------+--------+
| id | name |
+------+--------+

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 760
| 4 | smith |
| 3 | carter |
| 1 | baker |
| 2 | hunter |
+------+--------+
4 rows in set

gbase> UPDATE t1 SET t1.id = t1.id+1 WHERE t1.id > 1;
Query OK
Rows matched: -1 Changed: -1 Warnings: 0

gbase> SELECT * FROM t1;
+------+--------+
| id | name |
+------+--------+
| 5 | smith |
| 4 | carter |
| 1 | baker |
| 3 | hunter |
+------+--------+
4 rows in set
示例2:使用IN 的多表查询更新。
gbase> SELECT * FROM t1;
+------+--------+
| id | name |
+------+--------+
| 5 | smith |
| 4 | carter |
| 1 | baker |
| 3 | hunter |
+------+--------+
4 rows in set

gbase> UPDATE t1 SET t1.id = 10 WHERE t1.id IN (SELECT t2.id FROM t2);
Query OK
Rows matched: -1 Changed: -1 Warnings: 0

gbase> SELECT * FROM t1;
+------+--------+
| id | name |
+------+--------+
| 5 | smith |
| 10 | carter |

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 761
| 10 | baker |
| 3 | hunter |
+------+--------+
4 rows in set

报错
问题现象
同样的sql 在gccli 中执行不报错,但是在企业管理器中执行报错。
create table t1(c1 int,c2 varchar(10));
create table t2(c1 int,c2 varchar(10));
企业管理器中执行sql:
select * from t1 left join t2 on t1.c1=t2.c2;
报错
select * from (select * from t1 left join t2 on t1.c1=t2.c2
) t limit 0,1000
错误:Duplicate column name 'c1'
原因分析
报错sql 在企业管理器中执行时,默认改为select * from (原sql) limit 下发执行。
下发到server 的语句子查询中投影列列名重复,发生列名重复报错,此为当前产
品限制。
解决方法
在sql 语句中对投影列加不同列别名,以避免投影列列名重复,规避问题。