OceanBase 数据库 URL

数据库 URL 是字符串。

完整的 URL 语法如下:

jdbc:oceanbase:driver_type:[username/password]@database_specifier

URL 的第一部分 driver_type 指定要使用的 JDBC 驱动程序。URL 的其余部分包含一个可选的用户名和密码,由一个斜杠,一个 @ 和数据库说明符分隔,用于唯一标识应用程序所连接的数据库。

本节主要介绍 OceanBase Connector/J 可选的 URL 参数。

OceanBase Connector/J 特有的配置

参数

描述

supportLobLocator

lOB Locator 开关。

默认值:true

useObChecksum

Checksum 开关,是 OceanBase 2.0 协议的一个配置。

默认值:true

useOceanBaseProtocolV20

是否使用 OceanBase Protocol 2.0。

默认值:false

complexDataCacheSize

ComplexData Cache 的大小。

默认值:50。

cacheComplexData

是否缓存 ComplexData

默认值:true

useSqlStringCache

是否将 SQLString 混存在客户端。

默认值:false

useServerPsStmtChecksum

是否使用 PS 的 Checksum。

默认值:true

基本参数

参数

描述

user

数据库用户名称。

password

数据库用户密码。

rewriteBatchedStatements

对于插入查询,重写 batchedStatement 以在单个 executeQuery 中执行。

例如 insert into ab (i) values (?)with first batch values = 1, second = 2 被重写为 insert into ab (i) values (1), (2)

如果无法用“多值”重写查询,则将使用多查询重写 INSERT INTO TABLE(col1) VALUES (?) ON DUPLICATE KEY UPDATE col2=? 并附加值[1,2] 和 [2,3] ,将被重写为 INSERT INTO TABLE(col1) VALUES (1) ON DUPLICATE KEY UPDATE col2=2;INSERT INTO TABLE(col1) VALUES (3) ON DUPLICATE KEY UPDATE col2=4

处于活跃状态时,useServerPrepStmts 选项被设置为 false

默认值:false

connectTimeout

连接超时值,以毫秒为单位,如果没有超时则为零。

默认值:30000。

useServerPrepStmts

在执行之前,在服务器端准备 PrepareStatement。重复使用相同查询的应用程序具有激活该选项的值,但通常情况是使用直接命令(文本协议)。如果 rewriteBatchedStatements 设置为 true,则此选项将设置为 false

默认值:false

useBatchMultiSend

驱动程序可以批量发送查询。

如果设置为 false,查询将逐一发送,等待返回结果后再发送下一个。

如果设置为 true,则将根据与 useBatchMultiSendNumber 选项值(默认为 100)批量发送查询,如果超出数据包允许发送的查询数量,则根据 max_allowed_packet 服务器变量发送查询,之后再读取结果,从而避免了客户端和服务器不在同一主机上时发生的大量网络延迟。

默认值:true

allowLocalInfile

允许从文件加载数据。

默认值:false

useMysqlMetadata

databaseMetaData.getDatabaseProductName() 根据服务器类型返回 OceanBase 或 MySQL。

TLS 参数

参数

描述

useSSL

强制连接时是否使用 SSL/TLS。

默认值:false

trustServerCertificate

使用 SSL/TLS 时,请不要检查服务器的证书。

默认值:false

serverSslCert

允许以 DER 形式提供服务器的证书或服务器的 CA 证书。该服务器将被添加到 trustStor,这样可以信任自签名证书。

可以使用以下三种方式之一:

  • serverSslCert=/path/to/cert.pem (full path to certificate)

  • serverSslCert=classpath:relative/cert.pem (relative to current classpath)

  • as verbatim DER-encoded certificate string “——BEGIN CERTIFICATE—–“

keyStore

包含客户端私钥存储和关联证书的 keyStore 文件的文件路径(类似于Java 系统属性 javax.net.ssl.keyStore,但确保仅使用私钥的条目)。旧别名 clientCertificateKeyStoreUrl

keyStorePassword

客户端证书 keyStore 的密码(类似于 Java 系统属性 javax.net.ssl.keyStorePassword)。旧别名 clientCertificateKeyStorePassword

keyPassword

客户端证书 keyStore 中私钥的密码。(仅当私钥密码与 keyStore 密码不同时才需要)。

trustStore

trustStore 文件的文件路径(类似于 Java 系统属性 javax.net.ssl.trustStore,旧别名 trustCertificateKeyStoreUrl)将指定的文件用于受信任的根证书。设置后,将覆盖 serverSslCert

trustStorePassword

受信任的根证书文件的密码(类似于 Java 系统属性 javax.net.ssl.trustStorePassword,旧别名 trustCertificateKeyStorePassword)。

enabledSslProtocolSuites

强制将 TLS/SSL 协议强制为一组特定的 TLS 版本(以逗号分隔的列表)。示例:“TLSv1,TLSv1.1,TLSv1.2”(也可以使用别名 enabledSSLProtocolSuites)默认值:Java 默认值。

enabledSslCipherSuites

强制使用 TLS/SSL 密码(以逗号分隔的列表)。

示例:“ TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,TLS_DHE_DSS_WITH_AES_256_GCM_SHA384”。

默认值:使用 JRE 密码。

disableSslHostnameVerification

使用 SSL 时,驱动程序将对照服务器证书中显示的服务器身份检查主机名(检查备用名称或证书 CN),以防止中间人攻击。 此选项允许停用此验证。当 trustServerCertificate 选项设置为 default 时,将禁用主机名验证。

keyStoreType

指明密钥存储类型(JKS/PKCS12)。

默认值为 null,表示使用 Java 默认类型。

trustStoreType

指明信任库类型(JKS/PKCS12)。

默认值为null,表示使用 Java 默认类型。

连接池参数

参数

描述

pool

使用连接池。仅当不使用 DataSource 对象而仅使用连接对象时,此选项才有用。

默认值:false

poolName

允许标识线程的连接池名称。

默认值:自动生成为 oceanbase-pool- <pool-index>

maxPoolSize

连接池应包含的最大物理连接数。

默认值:8。

minPoolSize

如果由于使用时间不超过 maxIdleTime 而删除了连接,则将关闭连接并将其从池中删除。minPoolSize 指明连接池应始终保持可用的物理连接数,应小于或等于 maxPoolSize

默认值:maxPoolSize

poolValidMinDelay

当询问连接时,连接池将验证连接状态。如果最近借用了连接,则 poolValidMinDelay 允许禁用此验证,避免在频繁重复使用连接的情况下进行无用的验证。0 表示每次请求连接时都要进行验证。

默认值:1000(毫秒)。

maxIdleTime

不使用连接时,连接可以保留在池中的最长时间(以秒为单位)。此值必须始终低于 @wait_timeout-45s

默认值:600 秒(即 10 分钟),最小值为 60 秒。

staticGlobal

表明不会更改全局变量 max_allowed_packetwait_timeoutautocommitauto_increment_incrementtime_zonesystem_time_zoneandtx_isolation 的值,从而允许连接池更快地创建新连接。

默认值:false

useResetConnection

当一个连接为 closed()(返回给连接池)时,连接池将重置连接状态。设置此选项后,如果服务器允许,则准备命令将被删除,会话变量将被重置,用户变量将被销毁,从而在应用程序大量使用变量时,服务器可以节省内存。不得与 useServerPrepStmts 选项一起使用。

默认值:false

registerJmxPool

注册 JMX 监视池。

默认值:true

日志参数

参数

描述

log

启用日志信息。

默认值:false

maxQuerySizeToLog

日志中仅显示与该选项大小相对应数量的字符。

默认值:1024。

slowQueryThresholdNanos

记录执行时间超过此值的查询(如果已定义)。

默认值:1024。

profileSql

日志查询执行时间。

默认值:false

不常用的参数

参数

描述

passwordCharacterEncoding

指明密码编码字符集。字符集值必须是 Java 字符集。例如:UTF-8。

默认值:null(即平台的默认字符集)

useFractionalSeconds

可以处理亚秒精度的时间戳。

默认值:true

allowMultiQueries

允许多个查询。

例如 insert into ab (i) values (1); insert into ab (i) values (2)

默认值:false

dumpQueriesOnException

如果设置为 true,则在执行查询期间将引发包含查询字符串的异常。

默认值:false

useCompression

通过 gzip 压缩与数据库的交换。当数据库不在同一位置时,可以提供更好的性能。

默认值:false

socketFactory

要使用自定义 Socket Factory,请将其设置为 javax.net.SocketFactory 类的全名。

tcpNoDelay

在连接 Socket 上设置相应的选项。

tcpKeepAlive

在连接 Socket 上设置相应的选项。

tcpAbortiveClose

此选项可用于快速连续创建和关闭连接的环境中。通常,短时间内无法在这种环境中创建 Socket,因为所有本地“临时”端口都被 TCP 连接用尽了,并处于 TCP_WAIT 状态。使用 tcpAbortiveClose 通过重置 TCP 连接(主动关闭或硬关闭)而不是有序关闭来解决此问题。使用 socket.setSoLinger(true,0) 进行强制关闭。

tcpRcvBuf

设置 TCP 缓冲区(SO_RCVBUF)的大小。

tcpSndBuf

设置 TCP 缓冲区(SO_SNDBUF)的大小。

pipe

在 Windows 上,指定命名管道名称以连接到 mysqld.exe

tinyInt1isBit

数据类型映射标志,将 MySQL Tiny 作为 BIT(Boolean)处理。

默认值:true

yearIsDateType

将 Year 作为日期类型处理,而不是数字。

默认值:true

sessionVariables

在建立成功连接时设置的 <var> = <value> 对,以逗号分隔 MySQL 会话变量。

localSocket

如果服务器允许,则可以通过 Unix 域 Socket 连接到数据库。值是 Unix 域 Socket 的路径(即 Socket 数据库参数:select @@ socket)。

sharedMemory

如果服务器允许,则通过共享内存连接到数据库。值是共享内存的基本名称。

localSocketAddress

将连接套接字绑定到本地(UNIX 域)Socket 的主机名或 IP 地址。

socketTimeout

定义了网络套接字超时(SO_TIMEOUT),以毫秒为单位。值为 0 时将禁用此超时。也可以通过设置系统变量 max_statement_time 来限制查询时间。

默认值:0(标准配置)或 10000 ms。

interactiveClient

会话超时由 thewait_timeoutserver 变量定义。将 interactiveClient 设置为 true 将告诉服务器使用 interactive_timeoutserver 变量。

默认值:false

useOldAliasMetadataBehavior

元数据 ResultSetMetaData.getTableName() 返回物理表名称。如果设置了 useOldAliasMetadataBehavior,则发送表别名可以激活继承代码。

默认值:false

createDatabaseIfNotExist

在 URL 中创建指定的数据库(如果不存在)。

默认值:false

serverTimezone

定义服务器时区。仅在 GRE 服务器实现不同的服务器时区时使用(最好具有相同的服务器时区)。

cachePrepStmts

如果 useServerPrepStmts = true,则将准备好的信息缓存在 LRU 缓存中,以避免重新准备命令。下次使用该命令时,会将准备好的标识符和参数(如果有)发送到服务器,因而可以避免服务器重新解析查询。

默认值:true

prepStmtCacheSize

如果 useServerPrepStmts = true,则使用选项 cachePrepStmts 定义准备好的语句缓存大小。

默认值:250。

prepStmtCacheSqlLimit

如果 useServerPrepStmts = true,则大于此阈值的查询将不被缓存。

默认值:2048。

jdbcCompliantTruncation

截断错误(“在行 % 处的列 '%' 的数据被截断”,“在行 % 处的列 '%' 的值超出范围”)将被视为错误而不是警告。

默认值:true

cacheCallableStmts

启用/禁用调用语句缓存。

默认值:true

callableStmtCacheSize

如果启用了 cacheCallableStmts,则设置驱动程序缓存每个 VM 的可调用语句的数量。

默认值:true

useBatchMultiSendNumber

当选项 useBatchMultiSend 是活跃状态时,设置在读取结果前可以连续发送的最大查询。

默认值:100。

connectionAttributes

当 performance_schema 处于活跃状态时,允许以键值对格式(例如:connectionAttributes = key1:value1,key2,value2)向服务器发送一些客户端信息。这些信息可以在服务器上的表 performance_schema.session_connect_attrs 和 performance_schema.session_account_connect_attrs 中检索到。

usePipelineAuth

在连接期间,将执行不同的查询。如果该选项处于活跃状态,则使用管道发送查询(发送所有查询,然后读取所有结果),从而可以更快地创建连接。

默认值:true

enablePacketDebug

驱动程序将保存最近的 16 个 MySQL 数据交换包(限制为前 1000 个字节)。发生 IOException 时,这些数据包的十六进制值将添加到 stacktrace 中。此选项对性能没有影响,但驱动程序将占用 16 KB 以上的内存。

默认值:false

useBulkStmts

尽可能使用专用的 COM_STMT_BULK_EXECUTE 协议进行批量插入。 (不包含 Statement.RETURN_GENERATED_KEYS 和流的批处理)。

默认值:false

autocommit

在连接初始化时设置自动提交的默认值。

默认值:true

galeraAllowedState

通常,Connection.isValid 只是向服务器发送一个空数据包,并且服务器会发送一个小的响应以确保连接性。设置此选项后,连接器将确保 Galera 服务器状态 wsrep_local_state 与允许的值相对应(用逗号分隔)。例如“ 4,5”,推荐为“ 4”。

默认值:空。

includeInnodbStatusInDeadlockExceptions

发生死锁异常时,将 SHOW ENGINE INNODB STATUS 结果添加到异常跟踪。

默认值:false

includeThreadDumpInDeadlockExceptions

发生死锁异常时将线程转储添加到异常跟踪中。

默认值:false

useReadAheadInput

使用缓冲的 inputSteam 读取可用的 Socket 数据。

默认值:true

servicePrincipalName

使用 GSSAPI 身份验证时,将该值用作服务主体名称(SPN),而不是使用为数据库服务器上的用户帐户定义的名称。

useMysqlMetadata

强制 DatabaseMetadata.getDatabaseProductName() 返回 MySQL 作为数据库,而不是实际的数据库类型。

默认值:false

defaultFetchSize

驱动程序将在所有新创建的 Statements 上调用 setFetchSize(n)

默认值:0。

blankTableNameMeta

结果集元数据 getTableName 始终返回空白。此选项主要是为了与 Oracle 数据库兼容。

默认值:false

serverRsaPublicKeyFile

指明用于 sha256_password 和 caching_sha2_password 身份验证密码的 RSA 服务器公钥文件的路径。

allowPublicKeyRetrieval

当未设置 serverRsaPublicKeyFile 时,授权客户端检索 RSA 服务器公钥(对于 sha256_password 和 caching_sha2_password 身份验证密码)。

默认值:false

tlsSocketType

指明要使用的 TLS org.oceanbase.jdbc.tls.TlsSocketPlugin 插件类型。 插件必须存在于classpath 中。

credentialType

指明要使用的凭据插件类型。插件必须存在于 classpath 中。

trackSchema

服务器具有 CLIENT_SESSION_TRACK 功能时,允许禁用 session_track_schema 设置。

默认值:true

作者:andy,如若转载,请注明出处:https://www.web176.com/oceanbase/26556.html

(0)
打赏 支付宝 支付宝 微信 微信
andy的头像andy
上一篇 2023年10月14日
下一篇 2023年10月14日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注