配置参数说明
本章节对odbc.ini文件配置参数进行详细说明,参见表1:
| 参数 | 描述 | 示例 |
|---|---|---|
| [DSN] | 数据源的名称。 | [gaussdb] |
| Driver | 驱动名,对应odbcinst.ini中的DriverName。 | Driver=GaussMPP |
| Servername |
| Servername=127.0.0.1 |
| Database | 要连接的数据库的名称。 | Database=db1 |
| Username | 数据库用户名称。 | Username=omm |
| Password | 数据库用户密码。 说明: ODBC驱动本身已经对内存密码进行过清理,以保证用户密码在连接后不会再在内存中保留。 但是如果配置了此参数,由于UnixODBC对数据源文件等进行缓存,可能导致密码长期保留在内存中。 推荐在应用程序连接时,将密码传递给相应API,而非写在数据源配置文件中。同时连接成功后,应当及时清理保存密码的内存段。 须知: 配置文件中填写密码时,需要遵循http规则:
| Password=******** |
| Port | 服务器的端口号。当开启负载均衡时,可配置多个端口号,且需与配置的多IP一一对应。如果开启负载均衡配置多个IP时,仍只配置一个端口号,则默认所有IP共用同一个端口号,即为配置的端口号。 | Port=8000 |
| Sslmode | 是否启用SSL连接。 说明: Sslmode的可用选项及其说明,请参见表2。 | Sslmode=allow |
| Debug | 控制调试模式的开启及日志输出级别。 取值范围:0 ~ INT_MAX
默认值为0。 说明:
| Debug=5 |
| CommLog | 控制后端通信日志的开启及日志输出级别。 取值范围:0 ~ INT_MAX
默认值为0。 说明:
| CommLog=1 |
| UseServerSidePrepare | 是否开启数据库端扩展查询协议。 取值范围:0,1
默认值为1。 | UseServerSidePrepare=1 |
| UseBatchProtocol | 是否开启批量查询协议(开启后可提升DML操作性能)。 取值范围:0,1
默认值为1。 | UseBatchProtocol=1 |
| ForExtensionConnector | 此开关控制着savepoint是否发送,savepoint相关问题可以注意此开关。 取值范围:0,1
默认值为1。 | ForExtensionConnector=1 |
| ConnectionExtraInfo | GUC参数connection_info中显示驱动部署路径和进程属主用户的开关。 取值范围:0,1
默认值为0。 说明: 当设置为1时,ODBC驱动会将当前驱动的部署路径、进程属主用户上报到数据库中,记录在GUC参数connection_info里,同时可以在《参考》中“系统表和系统视图 > 系统视图 > 其他系统视图 > PG_STAT_ACTIVITY”和“PGXC_STAT_ACTIVITY”中查询到。 | ConnectionExtraInfo=1 |
| BoolsAsChar | 是否将布尔值作为字符处理。 取值范围:0,1
默认值为1。 | BoolsAsChar = 1 |
| RowVersioning | 是否在更新一行数据时,允许应用检测数据有没有被其他用户进行修改。 取值范围:0,1
默认值为0。 | RowVersioning=1 |
| ShowSystemTables | 指定是否将默认系统表视为普通SQL表。 取值范围:0,1
默认值为0。 | ShowSystemTables=1 |
| AutoBalance | 用于开启ODBC连接的负载均衡。 取值范围:0,1
默认值为0。 说明:
| AutoBalance=1 |
| RefreshCNListTime | 开启负载均衡时可配置该参数,该参数用于设置刷新CN列表的时间。整数型,单位为秒。 取值范围:0 ~ INT_MAX
默认值为10。 | RefreshCNListTime=5 |
| Priority | 开启负载均衡时可配置该参数。 取值范围:0,1
默认值为0。 说明: 当Priority开启时,应用程序发起的所有连接优先发送到配置文件中配置的CN上,当配置的CN全部不可用时,连接才会发送到剩余的CN上。 | Priority=1 |
| UsingEip | 开启负载均衡时可配置该参数。 取值范围: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。 | 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。
默认值为1。 | TextAsLongVarchar=1 |
| MaxLongVarcharSize | 定义驱动侧的SQL_LONGVARCHAR类型的可支持最大长度。 取值范围:0 ~ INT_MAX。 默认值为8190。 | MaxLongVarcharSize=8190 |
| MaxVarcharSize | 定义驱动侧的SQL_VARCHAR类型的可支持最大长度。 取值范围:0 ~ INT_MAX。 默认值为255。 | MaxVarcharSize=255 |
| TargetServerType | 设定连接的主机类型。主机的类型和设定的值一致时才能成功建立连接。设置规则如下:
| TargetServerType=cluster-primary |
| EnableHostCache | 是否开启节点缓存功能。
默认值为1。 说明: 节点缓存在连接串配置单IP时不生效。 | EnableHostCache=1 |
| 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相关文档和命令。