OceanBase 數(shù)據(jù)庫 URL

2021-06-30 15:53 更新

數(shù)據(jù)庫 URL 是字符串。

完整的 URL 語法如下:

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

URL 的第一部分 driver_type 指定要使用的 JDBC 驅(qū)動(dòng)程序。URL 的其余部分包含一個(gè)可選的用戶名和密碼,由一個(gè)斜杠,一個(gè) @ 和數(shù)據(jù)庫說明符分隔,用于唯一標(biāo)識應(yīng)用程序所連接的數(shù)據(jù)庫。

本節(jié)主要介紹 OceanBase Connector/J 可選的 URL 參數(shù)。

OceanBase Connector/J 特有的配置

參數(shù)

描述

supportLobLocator

lOB Locator 開關(guān)。

默認(rèn)值:true。

useObChecksum

Checksum 開關(guān),是 OceanBase 2.0 協(xié)議的一個(gè)配置。

默認(rèn)值:true。

useOceanBaseProtocolV20

是否使用 OceanBase Protocol 2.0。

默認(rèn)值:false

complexDataCacheSize

ComplexData Cache 的大小。

默認(rèn)值:50。

cacheComplexData

是否緩存 ComplexData。

默認(rèn)值:true。

useSqlStringCache

是否將 SQLString 混存在客戶端。

默認(rèn)值:false。

useServerPsStmtChecksum

是否使用 PS 的 Checksum。

默認(rèn)值:true。

基本參數(shù)

參數(shù)

描述

user

數(shù)據(jù)庫用戶名稱。

password

數(shù)據(jù)庫用戶密碼。

rewriteBatchedStatements

對于插入查詢,重寫 batchedStatement 以在單個(gè) executeQuery 中執(zhí)行。

例如 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。

處于活躍狀態(tài)時(shí),useServerPrepStmts 選項(xiàng)被設(shè)置為 false。

默認(rèn)值:false。

connectTimeout

連接超時(shí)值,以毫秒為單位,如果沒有超時(shí)則為零。

默認(rèn)值:30000。

useServerPrepStmts

在執(zhí)行之前,在服務(wù)器端準(zhǔn)備 PrepareStatement。重復(fù)使用相同查詢的應(yīng)用程序具有激活該選項(xiàng)的值,但通常情況是使用直接命令(文本協(xié)議)。如果 rewriteBatchedStatements 設(shè)置為 true,則此選項(xiàng)將設(shè)置為 false

默認(rèn)值:false。

useBatchMultiSend

驅(qū)動(dòng)程序可以批量發(fā)送查詢。

如果設(shè)置為 false,查詢將逐一發(fā)送,等待返回結(jié)果后再發(fā)送下一個(gè)。

如果設(shè)置為 true,則將根據(jù)與 useBatchMultiSendNumber 選項(xiàng)值(默認(rèn)為 100)批量發(fā)送查詢,如果超出數(shù)據(jù)包允許發(fā)送的查詢數(shù)量,則根據(jù) max_allowed_packet 服務(wù)器變量發(fā)送查詢,之后再讀取結(jié)果,從而避免了客戶端和服務(wù)器不在同一主機(jī)上時(shí)發(fā)生的大量網(wǎng)絡(luò)延遲。

默認(rèn)值:true

allowLocalInfile

允許從文件加載數(shù)據(jù)。

默認(rèn)值:false。

useMysqlMetadata

databaseMetaData.getDatabaseProductName() 根據(jù)服務(wù)器類型返回 OceanBase 或 MySQL。

TLS 參數(shù)

參數(shù)

描述

useSSL

強(qiáng)制連接時(shí)是否使用 SSL/TLS。

默認(rèn)值:false。

trustServerCertificate

使用 SSL/TLS 時(shí),請不要檢查服務(wù)器的證書。

默認(rèn)值:false。

serverSslCert

允許以 DER 形式提供服務(wù)器的證書或服務(wù)器的 CA 證書。該服務(wù)器將被添加到 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

包含客戶端私鑰存儲和關(guān)聯(lián)證書的 keyStore 文件的文件路徑(類似于Java 系統(tǒng)屬性 javax.net.ssl.keyStore,但確保僅使用私鑰的條目)。舊別名 clientCertificateKeyStoreUrl

keyStorePassword

客戶端證書 keyStore 的密碼(類似于 Java 系統(tǒng)屬性 javax.net.ssl.keyStorePassword)。舊別名 clientCertificateKeyStorePassword

keyPassword

客戶端證書 keyStore 中私鑰的密碼。(僅當(dāng)私鑰密碼與 keyStore 密碼不同時(shí)才需要)。

trustStore

trustStore 文件的文件路徑(類似于 Java 系統(tǒng)屬性 javax.net.ssl.trustStore,舊別名 trustCertificateKeyStoreUrl)將指定的文件用于受信任的根證書。設(shè)置后,將覆蓋 serverSslCert。

trustStorePassword

受信任的根證書文件的密碼(類似于 Java 系統(tǒng)屬性 javax.net.ssl.trustStorePassword,舊別名 trustCertificateKeyStorePassword)。

enabledSslProtocolSuites

強(qiáng)制將 TLS/SSL 協(xié)議強(qiáng)制為一組特定的 TLS 版本(以逗號分隔的列表)。示例:“TLSv1,TLSv1.1,TLSv1.2”(也可以使用別名 enabledSSLProtocolSuites)默認(rèn)值:Java 默認(rèn)值。

enabledSslCipherSuites

強(qiáng)制使用 TLS/SSL 密碼(以逗號分隔的列表)。

示例:“ TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,TLS_DHE_DSS_WITH_AES_256_GCM_SHA384”。

默認(rèn)值:使用 JRE 密碼。

disableSslHostnameVerification

使用 SSL 時(shí),驅(qū)動(dòng)程序?qū)φ辗?wù)器證書中顯示的服務(wù)器身份檢查主機(jī)名(檢查備用名稱或證書 CN),以防止中間人攻擊。 此選項(xiàng)允許停用此驗(yàn)證。當(dāng) trustServerCertificate 選項(xiàng)設(shè)置為 default 時(shí),將禁用主機(jī)名驗(yàn)證。

keyStoreType

指明密鑰存儲類型(JKS/PKCS12)。

默認(rèn)值為 null,表示使用 Java 默認(rèn)類型。

trustStoreType

指明信任庫類型(JKS/PKCS12)。

默認(rèn)值為null,表示使用 Java 默認(rèn)類型。

連接池參數(shù)

參數(shù)

描述

pool

使用連接池。僅當(dāng)不使用 DataSource 對象而僅使用連接對象時(shí),此選項(xiàng)才有用。

默認(rèn)值:false。

poolName

允許標(biāo)識線程的連接池名稱。

默認(rèn)值:自動(dòng)生成為 oceanbase-pool- <pool-index>

maxPoolSize

連接池應(yīng)包含的最大物理連接數(shù)。

默認(rèn)值:8。

minPoolSize

如果由于使用時(shí)間不超過 maxIdleTime 而刪除了連接,則將關(guān)閉連接并將其從池中刪除。minPoolSize 指明連接池應(yīng)始終保持可用的物理連接數(shù),應(yīng)小于或等于 maxPoolSize

默認(rèn)值:maxPoolSize。

poolValidMinDelay

當(dāng)詢問連接時(shí),連接池將驗(yàn)證連接狀態(tài)。如果最近借用了連接,則 poolValidMinDelay 允許禁用此驗(yàn)證,避免在頻繁重復(fù)使用連接的情況下進(jìn)行無用的驗(yàn)證。0 表示每次請求連接時(shí)都要進(jìn)行驗(yàn)證。

默認(rèn)值:1000(毫秒)。

maxIdleTime

不使用連接時(shí),連接可以保留在池中的最長時(shí)間(以秒為單位)。此值必須始終低于 @wait_timeout-45s。

默認(rèn)值:600 秒(即 10 分鐘),最小值為 60 秒。

staticGlobal

表明不會更改全局變量 max_allowed_packetwait_timeout,autocommit、auto_increment_increment、time_zone、system_time_zoneandtx_isolation 的值,從而允許連接池更快地創(chuàng)建新連接。

默認(rèn)值:false

useResetConnection

當(dāng)一個(gè)連接為 closed()(返回給連接池)時(shí),連接池將重置連接狀態(tài)。設(shè)置此選項(xiàng)后,如果服務(wù)器允許,則準(zhǔn)備命令將被刪除,會話變量將被重置,用戶變量將被銷毀,從而在應(yīng)用程序大量使用變量時(shí),服務(wù)器可以節(jié)省內(nèi)存。不得與 useServerPrepStmts 選項(xiàng)一起使用。

默認(rèn)值:false。

registerJmxPool

注冊 JMX 監(jiān)視池。

默認(rèn)值:true。

日志參數(shù)

參數(shù)

描述

log

啟用日志信息。

默認(rèn)值:false。

maxQuerySizeToLog

日志中僅顯示與該選項(xiàng)大小相對應(yīng)數(shù)量的字符。

默認(rèn)值:1024。

slowQueryThresholdNanos

記錄執(zhí)行時(shí)間超過此值的查詢(如果已定義)。

默認(rèn)值:1024。

profileSql

日志查詢執(zhí)行時(shí)間。

默認(rèn)值:false。

不常用的參數(shù)

參數(shù)

描述

passwordCharacterEncoding

指明密碼編碼字符集。字符集值必須是 Java 字符集。例如:UTF-8。

默認(rèn)值:null(即平臺的默認(rèn)字符集)

useFractionalSeconds

可以處理亞秒精度的時(shí)間戳。

默認(rèn)值:true

allowMultiQueries

允許多個(gè)查詢。

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

默認(rèn)值:false。

dumpQueriesOnException

如果設(shè)置為 true,則在執(zhí)行查詢期間將引發(fā)包含查詢字符串的異常。

默認(rèn)值:false。

useCompression

通過 gzip 壓縮與數(shù)據(jù)庫的交換。當(dāng)數(shù)據(jù)庫不在同一位置時(shí),可以提供更好的性能。

默認(rèn)值:false

socketFactory

要使用自定義 Socket Factory,請將其設(shè)置為 javax.net.SocketFactory 類的全名。

tcpNoDelay

在連接 Socket 上設(shè)置相應(yīng)的選項(xiàng)。

tcpKeepAlive

在連接 Socket 上設(shè)置相應(yīng)的選項(xiàng)。

tcpAbortiveClose

此選項(xiàng)可用于快速連續(xù)創(chuàng)建和關(guān)閉連接的環(huán)境中。通常,短時(shí)間內(nèi)無法在這種環(huán)境中創(chuàng)建 Socket,因?yàn)樗斜镜亍芭R時(shí)”端口都被 TCP 連接用盡了,并處于 TCP_WAIT 狀態(tài)。使用 tcpAbortiveClose 通過重置 TCP 連接(主動(dòng)關(guān)閉或硬關(guān)閉)而不是有序關(guān)閉來解決此問題。使用 socket.setSoLinger(true,0) 進(jìn)行強(qiáng)制關(guān)閉。

tcpRcvBuf

設(shè)置 TCP 緩沖區(qū)(SO_RCVBUF)的大小。

tcpSndBuf

設(shè)置 TCP 緩沖區(qū)(SO_SNDBUF)的大小。

pipe

在 Windows 上,指定命名管道名稱以連接到 mysqld.exe。

tinyInt1isBit

數(shù)據(jù)類型映射標(biāo)志,將 MySQL Tiny 作為 BIT(Boolean)處理。

默認(rèn)值:true

yearIsDateType

將 Year 作為日期類型處理,而不是數(shù)字。

默認(rèn)值:true。

sessionVariables

在建立成功連接時(shí)設(shè)置的 <var> = <value> 對,以逗號分隔 MySQL 會話變量。

localSocket

如果服務(wù)器允許,則可以通過 Unix 域 Socket 連接到數(shù)據(jù)庫。值是 Unix 域 Socket 的路徑(即 Socket 數(shù)據(jù)庫參數(shù):select @@ socket)。

sharedMemory

如果服務(wù)器允許,則通過共享內(nèi)存連接到數(shù)據(jù)庫。值是共享內(nèi)存的基本名稱。

localSocketAddress

將連接套接字綁定到本地(UNIX 域)Socket 的主機(jī)名或 IP 地址。

socketTimeout

定義了網(wǎng)絡(luò)套接字超時(shí)(SO_TIMEOUT),以毫秒為單位。值為 0 時(shí)將禁用此超時(shí)。也可以通過設(shè)置系統(tǒng)變量 max_statement_time 來限制查詢時(shí)間。

默認(rèn)值:0(標(biāo)準(zhǔn)配置)或 10000 ms。

interactiveClient

會話超時(shí)由 thewait_timeoutserver 變量定義。將 interactiveClient 設(shè)置為 true 將告訴服務(wù)器使用 interactive_timeoutserver 變量。

默認(rèn)值:false

useOldAliasMetadataBehavior

元數(shù)據(jù) ResultSetMetaData.getTableName() 返回物理表名稱。如果設(shè)置了 useOldAliasMetadataBehavior,則發(fā)送表別名可以激活繼承代碼。

默認(rèn)值:false

createDatabaseIfNotExist

在 URL 中創(chuàng)建指定的數(shù)據(jù)庫(如果不存在)。

默認(rèn)值:false

serverTimezone

定義服務(wù)器時(shí)區(qū)。僅在 GRE 服務(wù)器實(shí)現(xiàn)不同的服務(wù)器時(shí)區(qū)時(shí)使用(最好具有相同的服務(wù)器時(shí)區(qū))。

cachePrepStmts

如果 useServerPrepStmts = true,則將準(zhǔn)備好的信息緩存在 LRU 緩存中,以避免重新準(zhǔn)備命令。下次使用該命令時(shí),會將準(zhǔn)備好的標(biāo)識符和參數(shù)(如果有)發(fā)送到服務(wù)器,因而可以避免服務(wù)器重新解析查詢。

默認(rèn)值:true。

prepStmtCacheSize

如果 useServerPrepStmts = true,則使用選項(xiàng) cachePrepStmts 定義準(zhǔn)備好的語句緩存大小。

默認(rèn)值:250。

prepStmtCacheSqlLimit

如果 useServerPrepStmts = true,則大于此閾值的查詢將不被緩存。

默認(rèn)值:2048。

jdbcCompliantTruncation

截?cái)噱e(cuò)誤(“在行 % 處的列 '%' 的數(shù)據(jù)被截?cái)唷?,“在?% 處的列 '%' 的值超出范圍”)將被視為錯(cuò)誤而不是警告。

默認(rèn)值:true

cacheCallableStmts

啟用/禁用調(diào)用語句緩存。

默認(rèn)值:true。

callableStmtCacheSize

如果啟用了 cacheCallableStmts,則設(shè)置驅(qū)動(dòng)程序緩存每個(gè) VM 的可調(diào)用語句的數(shù)量。

默認(rèn)值:true

useBatchMultiSendNumber

當(dāng)選項(xiàng) useBatchMultiSend 是活躍狀態(tài)時(shí),設(shè)置在讀取結(jié)果前可以連續(xù)發(fā)送的最大查詢。

默認(rèn)值:100。

connectionAttributes

當(dāng) performance_schema 處于活躍狀態(tài)時(shí),允許以鍵值對格式(例如:connectionAttributes = key1:value1,key2,value2)向服務(wù)器發(fā)送一些客戶端信息。這些信息可以在服務(wù)器上的表 performance_schema.session_connect_attrs 和 performance_schema.session_account_connect_attrs 中檢索到。

usePipelineAuth

在連接期間,將執(zhí)行不同的查詢。如果該選項(xiàng)處于活躍狀態(tài),則使用管道發(fā)送查詢(發(fā)送所有查詢,然后讀取所有結(jié)果),從而可以更快地創(chuàng)建連接。

默認(rèn)值:true。

enablePacketDebug

驅(qū)動(dòng)程序?qū)⒈4孀罱?16 個(gè) MySQL 數(shù)據(jù)交換包(限制為前 1000 個(gè)字節(jié))。發(fā)生 IOException 時(shí),這些數(shù)據(jù)包的十六進(jìn)制值將添加到 stacktrace 中。此選項(xiàng)對性能沒有影響,但驅(qū)動(dòng)程序?qū)⒄加?16 KB 以上的內(nèi)存。

默認(rèn)值:false

useBulkStmts

盡可能使用專用的 COM_STMT_BULK_EXECUTE 協(xié)議進(jìn)行批量插入。 (不包含 Statement.RETURN_GENERATED_KEYS 和流的批處理)。

默認(rèn)值:false。

autocommit

在連接初始化時(shí)設(shè)置自動(dòng)提交的默認(rèn)值。

默認(rèn)值:true。

galeraAllowedState

通常,Connection.isValid 只是向服務(wù)器發(fā)送一個(gè)空數(shù)據(jù)包,并且服務(wù)器會發(fā)送一個(gè)小的響應(yīng)以確保連接性。設(shè)置此選項(xiàng)后,連接器將確保 Galera 服務(wù)器狀態(tài) wsrep_local_state 與允許的值相對應(yīng)(用逗號分隔)。例如“ 4,5”,推薦為“ 4”。

默認(rèn)值:空。

includeInnodbStatusInDeadlockExceptions

發(fā)生死鎖異常時(shí),將 SHOW ENGINE INNODB STATUS 結(jié)果添加到異常跟蹤。

默認(rèn)值:false。

includeThreadDumpInDeadlockExceptions

發(fā)生死鎖異常時(shí)將線程轉(zhuǎn)儲添加到異常跟蹤中。

默認(rèn)值:false。

useReadAheadInput

使用緩沖的 inputSteam 讀取可用的 Socket 數(shù)據(jù)。

默認(rèn)值:true。

servicePrincipalName

使用 GSSAPI 身份驗(yàn)證時(shí),將該值用作服務(wù)主體名稱(SPN),而不是使用為數(shù)據(jù)庫服務(wù)器上的用戶帳戶定義的名稱。

useMysqlMetadata

強(qiáng)制 DatabaseMetadata.getDatabaseProductName() 返回 MySQL 作為數(shù)據(jù)庫,而不是實(shí)際的數(shù)據(jù)庫類型。

默認(rèn)值:false

defaultFetchSize

驅(qū)動(dòng)程序?qū)⒃谒行聞?chuàng)建的 Statements 上調(diào)用 setFetchSize(n)。

默認(rèn)值:0。

blankTableNameMeta

結(jié)果集元數(shù)據(jù) getTableName 始終返回空白。此選項(xiàng)主要是為了與 Oracle 數(shù)據(jù)庫兼容。

默認(rèn)值:false。

serverRsaPublicKeyFile

指明用于 sha256_password 和 caching_sha2_password 身份驗(yàn)證密碼的 RSA 服務(wù)器公鑰文件的路徑。

allowPublicKeyRetrieval

當(dāng)未設(shè)置 serverRsaPublicKeyFile 時(shí),授權(quán)客戶端檢索 RSA 服務(wù)器公鑰(對于 sha256_password 和 caching_sha2_password 身份驗(yàn)證密碼)。

默認(rèn)值:false。

tlsSocketType

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

credentialType

指明要使用的憑據(jù)插件類型。插件必須存在于 classpath 中。

trackSchema

服務(wù)器具有 CLIENT_SESSION_TRACK 功能時(shí),允許禁用 session_track_schema 設(shè)置。

默認(rèn)值:true。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號