更新时间:2026-07-28 GMT+08:00
分享

配置参数说明

本章节对odbc.ini文件配置参数进行详细说明,参见表1

表1 odbc.ini文件配置参数

参数

描述

示例

[DSN]

数据源的名称。

[gaussdb]

Driver

驱动名,对应odbcinst.ini中的DriverName。

Driver=GaussMPP

Servername

  • 服务器的IP地址。可配置多个IP地址。支持IPv4和IPv6。

Servername=127.0.0.1

Database

要连接的数据库的名称。

Database=db1

Username

数据库用户名称。

Username=omm

Password

数据库用户密码。

说明:

ODBC驱动本身已经对内存密码进行过清理,以保证用户密码在连接后不会再在内存中保留。

但是如果配置了此参数,由于UnixODBC对数据源文件等进行缓存,可能导致密码长期保留在内存中。

推荐在应用程序连接时,将密码传递给相应API,而非写在数据源配置文件中。同时连接成功后,应当及时清理保存密码的内存段。

须知:
配置文件中填写密码时,需要遵循http规则:
  1. 字符应当采用URL编码规范,如"!"应写作"%21","%"应写作"%25",因此应当特别注意字符。
  2. "+"会被替换为空格" "。

Password=********

Port

服务器的端口号。当开启负载均衡时,可配置多个端口号,且需与配置的多IP一一对应。如果开启负载均衡配置多个IP时,仍只配置一个端口号,则默认所有IP共用同一个端口号,即为配置的端口号。

Port=8000

Sslmode

是否启用SSL连接。

说明:

Sslmode的可用选项及其说明,请参见表2

Sslmode=allow

Debug

控制调试模式的开启及日志输出级别。

取值范围:0 ~ INT_MAX

  • 设置为0时表示不启用调试模式。
  • 设置为大于0的值时将启用调试日志,会打印gsqlODBC驱动的mylog。日志生成目录为/tmp/,文件名为mylog_xxx.log。
  • 设置为1时表示仅输出FATAL级别日志。
  • 设置为2时表示输出FATAL和ERROR级别日志。
  • 设置为3时表示输出FATAL、ERROR和WARN级别日志。
  • 设置为4时表示输出FATAL、ERROR、WARN和INFO级别日志。
  • 设置为≥5时表示输出所有级别日志,增加输出TRACE级别日志。

默认值为0。

说明:
  1. FATAL:报告致命错误。
  2. ERROR:报告异常错误。
  3. WARN:报告警告信息。
  4. INFO:记录程序运行中的正常关键信息。
  5. TRACE:提供开发人员使用的调试信息。

Debug=5

CommLog

控制后端通信日志的开启及日志输出级别。

取值范围:0 ~ INT_MAX

  • 设置为0时表示不启用。
  • 设置为大于0的值时将启用后端日志,会打印gsqlODBC驱动的qlog。日志生成目录为/tmp/,文件名为gsqlodbc_xxx.log。
  • 设置为1时表示仅输出ERROR级别日志。
  • 设置为2时表示输出ERROR和INFO级别日志。
  • 设置为≥3时表示输出ERROR、INFO和TRACE级别日志。

默认值为0。

说明:
  1. ERROR:报告异常错误。
  2. INFO:记录程序运行中的正常关键信息。
  3. TRACE:提供开发人员使用的调试信息。

CommLog=1

UseServerSidePrepare

是否开启数据库端扩展查询协议。

取值范围:0,1

  • 取值为0表示不开启。
  • 取值为1表示开启。

默认值为1。

UseServerSidePrepare=1

UseBatchProtocol

是否开启批量查询协议(开启后可提升DML操作性能)。

取值范围:0,1

  • 取值为0时,不使用批量查询协议(主要用于与早期数据库版本通信兼容)。
  • 取值为1,且GUC参数support_batch_bind设置为on时,将打开批量查询协议。

默认值为1。

UseBatchProtocol=1

ForExtensionConnector

此开关控制着savepoint是否发送,savepoint相关问题可以注意此开关。

取值范围:0,1

  • 取值为0时表示发送savepoint。
  • 取值为1时表示不发送savepoint。

默认值为1。

ForExtensionConnector=1

ConnectionExtraInfo

GUC参数connection_info中显示驱动部署路径和进程属主用户的开关。

取值范围:0,1

  • 取值为0时表示不打开此开关。
  • 取值为1时表示打开此开关。

默认值为0。

说明:

当设置为1时,ODBC驱动会将当前驱动的部署路径、进程属主用户上报到数据库中,记录在GUC参数connection_info里,同时可以在《参考》中“系统表和系统视图 > 系统视图 > 其他系统视图 > PG_STAT_ACTIVITY”和“PGXC_STAT_ACTIVITY”中查询到。

ConnectionExtraInfo=1

BoolsAsChar

是否将布尔值作为字符处理。

取值范围:0,1

  • 取值为0时表示Bools值将会映射为SQL_BIT。
  • 取值为1时表示Bools值将会映射为SQL_CHAR。

默认值为1。

BoolsAsChar = 1

RowVersioning

是否在更新一行数据时,允许应用检测数据有没有被其他用户进行修改。

取值范围:0,1

  • 取值为0时表示不允许应用检测。
  • 取值为1时表示允许应用检测。

默认值为0。

RowVersioning=1

ShowSystemTables

指定是否将默认系统表视为普通SQL表。

取值范围:0,1

  • 取值为0时驱动不会将默认系统表视为普通SQL表。
  • 取值为1时驱动将默认系统表视为普通SQL表。

默认值为0。

ShowSystemTables=1

AutoBalance

用于开启ODBC连接的负载均衡。

取值范围:0,1

  • 取值为0时表示不开启负载均衡。
  • 取值为1时开启负载均衡。

默认值为0。

说明:
  • 当连接的数据库版本低于505.2.0.SPC0200时,容灾集群不支持负载均衡。
  • 仅支持单个[DSN]配置开启负载均衡。

AutoBalance=1

RefreshCNListTime

开启负载均衡时可配置该参数,该参数用于设置刷新CN列表的时间。整数型,单位为秒。

取值范围:0 ~ INT_MAX

  • 取值为0时表示不开启该参数。
  • 取值大于0时表示该设定值为刷新CN列表的时间。

默认值为10。

RefreshCNListTime=5

Priority

开启负载均衡时可配置该参数。

取值范围:0,1

  • 取值为0时表示不开启该参数。
  • 取值为1时开启该参数。

默认值为0。

说明:

当Priority开启时,应用程序发起的所有连接优先发送到配置文件中配置的CN上,当配置的CN全部不可用时,连接才会发送到剩余的CN上。

Priority=1

UsingEip

开启负载均衡时可配置该参数。

取值范围:0,1

  • 取值为0时表示不开启该参数。
  • 取值为1时开启该参数。

默认值为0。

说明:

此值用于控制是否使用业务IP(对应pgxc_node表中node_host1和node_port1列)实现负载均衡。当UsingEip开启时,表示使用业务IP实现负载均衡;关闭表示使用数据IP(对应pgxc_node表中node_host和node_port列)实现负载均衡。

UsingEip=1

MaxCacheQueries

控制每个连接缓存的预编译语句个数。

取值范围:0 ~ 4096

默认值为0。

说明:

如果设置为0,则不开启客户端预编译语句缓存池。设置为大于4096的值会限制为4096。如果执行过的语句个数超过MaxCacheQueries设置的上限,则淘汰最近最少使用的语句。

MaxCacheQueries=128

MaxCacheSizeMiB

控制每个连接缓存的预编译语句总大小,在MaxCacheQueries大于0时生效。

取值范围:0 ~ 4096

默认值为1。

说明:

如果缓存的语句总长度大于MaxCacheSizeMiB则淘汰最近最少使用的语句。单位为MB,设置为大于4096的值会限制为4096。

MaxCacheSizeMiB=10

TcpUserTimeout

在支持TCP_USER_TIMEOUT套接字选项的操作系统上,指定传输的数据在TCP连接被强制关闭之前可以保持未确认状态的最大时长。

取值范围:0 ~ INT_MAX

默认值为0。

说明:

0表示使用系统缺省。通过Unix域套接字做的连接忽略这个参数。单位为毫秒。

TcpUserTimeout=5000

StandbyRead

用于指定分布式是否开启备机读模式。

取值范围:0,1

  • 取值为0时表示禁用备机读模式。
  • 取值为1时表示开启备机读模式。

默认值为0。

StandbyRead=1

Pqopt

用于设置libpq连接参数,参数之间用空格间隔。libpq参数请参见连接参数说明

Pqopt=keepalives=0

KeepaliveTime

在TCP应该发送一个保持激活的信息给服务器之后,控制不活动的秒数。如果是通过Unix域套接字进行连接,或者禁用了“保持激活”功能,则该参数将被忽略。

取值范围:0 ~ INT_MAX

设置为0值或者不配置表示使用系统缺省。

说明:

禁用“保持激活”功能需要通过Pqopt参数设置keepalives=0。

KeepaliveTime=2

KeepaliveInterval

在TCP保持激活信息没有被应该传播的服务器承认之后,控制探活报文发送的间隔秒数。如果是通过 Unix 域套接字进行连接,或者禁用了“保持激活”功能,则该参数将被忽略。

取值范围:0 ~ INT_MAX

设置为0值或者不配置表示使用系统缺省。

KeepaliveInterval=2

KeepaliveCount

控制TCP发送保持激活信息的次数。如果是通过 Unix 域套接字进行连接,或者禁用了“保持激活”功能,则该参数将被忽略。

取值范围:0 ~ INT_MAX

设置为0值或者不配置表示使用系统缺省。

KeepaliveCount=2

SocketTimeout

用于控制客户端与服务端建立连接完全成功后的socket读写超时时间。单位为秒,默认为0。

说明:

该参数包含数据库语句执行的超时时间。设置过小可能导致正常执行超时,因此默认为0,建议根据实际场景配置非0值。

SocketTimeout=5

SocketTimeoutInConnect

用于控制TCP三次握手成功后,客户端与服务端建立连接阶段的socket读写超时时间。单位为秒,默认为5。

说明:

该参数与SocketTimeout的区别在于:由于三次握手成功后的客户端与服务端建立连接阶段可能存在阻塞,因此需要设置不影响语句执行超时的socket读写超时时间。

SocketTimeoutInConnect=5

CancelTimeout

用于控制应用端发送cancel消息的超时时间。

单位为秒,默认值为0。

CancelTimeout=5

TcpSYNRetries

用于控制在TCP三次握手阶段时SYN的最大重传次数。超过该次数仍未建立连接,则会返回报错。

默认值为0。

说明:

该参数在支持TCP_SYNCNT套接字选项的操作系统上,指定客户端建立连接三次握手阶段SYN包发送失败而重传的次数。0值表示使用系统缺省。通过Unix域套接字的连接忽略这个参数。

TcpSYNRetries=3

TextAsLongVarchar

将数据库内核中的text类型映射为驱动侧的SQL_LONGVARCHAR类型或者SQL_VARCHAR类型。

取值范围:0,1。

  • 取值为0时表示将内核侧text类型映射为驱动侧的SQL_VARCHAR类型。
  • 取值为1时表示将内核侧text类型映射为驱动侧的SQL_LONGVARCHAR类型。

默认值为1。

TextAsLongVarchar=1

MaxLongVarcharSize

定义驱动侧的SQL_LONGVARCHAR类型的可支持最大长度。

取值范围:0 ~ INT_MAX。

默认值为8190。

MaxLongVarcharSize=8190

MaxVarcharSize

定义驱动侧的SQL_VARCHAR类型的可支持最大长度。

取值范围:0 ~ INT_MAX。

默认值为255。

MaxVarcharSize=255

TargetServerType

设定连接的主机类型。主机的类型和设定的值一致时才能成功建立连接。设置规则如下:

  • primary(默认值):仅对集群中的CN进行连接。
  • cluster-primary:仅支持对主集群CN节点进行连接。
  • cluster-mainnode:仅支持对容灾集群CN节点进行连接。
    说明:

    cluster-primary和cluster-mainnode选项只支持流式容灾。

TargetServerType=cluster-primary

EnableHostCache

是否开启节点缓存功能。

  • 0表示不开启。
  • 1表示开启。

默认值为1。

说明:

节点缓存在连接串配置单IP时不生效。

EnableHostCache=1

表2 Sslmode的可选项及其描述

Sslmode

是否会启用SSL加密

描述

disable

不使用SSL安全连接,为默认值。

allow

可能

如果数据库服务器要求使用,则可以使用SSL安全加密连接,但不验证数据库服务器的真实性。

prefer

可能

如果数据库支持SSL,则优先使用SSL安全加密连接,但不验证数据库服务器的真实性。

require

必须使用SSL安全连接,仅进行数据加密,不验证数据库服务器的真实性。

verify-ca

必须使用SSL安全连接,并且验证数据库是否具有可信证书机构签发的证书。

当前Windows ODBC不支持cert方式认证。

verify-full

必须使用SSL安全连接,在verify-ca的验证范围之外,同时验证数据库所在主机的主机名是否与证书内容一致。

GaussDB不支持此模式。

当前Windows ODBC不支持cert方式认证。

用户通过ODBC连接GaussDB服务器时,可以通过开启SSL加密客户端和服务器之间的通讯。在使用SSL时,默认用户已经获取了服务端和客户端所需要的证书和私钥文件,关于证书等文件的获取请参考Openssl相关文档和命令。

相关文档