文件首頁
MySQL Connector/J 開發人員指南
相關文件 下載本手冊
PDF (美式信紙) - 1.2Mb
PDF (A4) - 1.2Mb


MySQL Connector/J 開發人員指南  /  ...  /  高可用性和叢集

6.3.12 高可用性和叢集

  • autoReconnect

    驅動程式是否應嘗試重新建立過時和/或已失效的連線?如果啟用,驅動程式會針對在過時或已失效連線上發出的查詢擲回例外狀況,這些連線屬於目前的交易,但會在新的交易中在連線上發出下一個查詢之前嘗試重新連線。不建議使用此功能,因為當應用程式未正確處理 SQLExceptions 時,它會有與工作階段狀態和資料一致性相關的副作用,並且僅設計用於在您無法設定應用程式以正確處理因已失效和過時連線所造成的 SQLExceptions 時使用。或者,作為最後的選項,請調查將 MySQL 伺服器變數 'wait_timeout' 設定為高值,而不是預設的 8 小時。

    預設值 false
    自版本 1.1
  • autoReconnectForPools

    使用適合連線集區的重新連線策略?

    預設值 false
    自版本 3.1.3
  • failOverReadOnly

    在 'autoReconnect' 模式中容錯移轉時,是否應將連線設定為「唯讀」?

    預設值 true
    自版本 3.0.12
  • maxReconnects

    如果 'autoReconnect' 為「true」,則嘗試重新連線的最大次數。

    預設值 3
    自版本 1.1
  • reconnectAtTxEnd

    如果 'autoReconnect' 設定為「true」,驅動程式是否應在每個交易結束時嘗試重新連線?

    預設值 false
    自版本 3.0.10
  • retriesAllDown

    在使用負載平衡或容錯移轉時,驅動程式應循環瀏覽可用主機以嘗試連線的次數。在循環之間,如果沒有可用的伺服器,驅動程式將會暫停 250 毫秒。

    預設值 120
    自版本 5.1.6
  • initialTimeout

    如果啟用 'autoReconnect',則重新連線嘗試之間的初始等待時間(以秒為單位,預設為「2」)。

    預設值 2
    自版本 1.1
  • queriesBeforeRetrySource

    在使用多主機容錯移轉時,在容錯移轉時回復到主要主機之前要發出的查詢次數。無論先滿足哪個條件,「queriesBeforeRetrySource」或「secondsBeforeRetrySource」都會導致嘗試重新連線到主要主機。將這兩個屬性都設定為「0」會停用在交易界限自動回復到主要主機的功能。

    預設值 50
    自版本 3.0.2
  • secondsBeforeRetrySource

    容錯移轉時,驅動程式在嘗試重新連線到主要主機之前應等待多久(以秒為單位)?無論先滿足哪個條件,「queriesBeforeRetrySource」或「secondsBeforeRetrySource」都會導致嘗試重新連線到來源主機。將這兩個屬性都設定為「0」會停用在交易界限自動回復到主要主機的功能。

    預設值 30
    自版本 3.0.2
  • allowReplicaDownConnections

    依預設,當設定的複本主機在初始連線時都無法使用時,具有複寫感知功能的連線將無法連線。將此屬性設定為「true」允許建立初始連線。它不會在切換到複本時防止失敗,例如,透過將複寫連線設定為唯讀狀態。屬性 'readFromSourceWhenNoReplicas' 應該用於此目的。

    預設值 false
    自版本 6.0.2
  • allowSourceDownConnections

    依預設,當設定的來源主機在初始連線時都無法使用時,具有複寫感知功能的連線將無法連線。將此屬性設定為「true」允許建立初始連線,方法是容錯移轉到唯讀狀態的複本伺服器。當切換回來源主機時(例如,透過將複寫連線設定為讀取/寫入狀態),它不會防止後續失敗。

    預設值 false
    自版本 5.1.27
  • ha.enableJMX

    啟用基於 JMX 的負載平衡連線群組管理,包括從負載平衡集區即時新增/移除主機。啟用基於 JMX 的複寫連線群組管理,包括即時複本升級、新增複本,以及從負載平衡的來源和複本連線集區移除來源或複本主機。

    預設值 false
    自版本 5.1.27
  • loadBalanceHostRemovalGracePeriod

    設定從負載平衡的連線中移除的主機的寬限期,以等待其在目前為活動主機時被釋放。

    預設值 15000
    自版本 6.0.3
  • readFromSourceWhenNoReplicas

    具有複寫感知功能的連線會在處於讀取/寫入狀態時使用來源主機,並在處於唯讀狀態時使用複本主機,以分散負載。如果當將連線設定為唯讀狀態時,沒有可用的複本主機,則會擲回「SQLException」。當切換瞬間沒有可用的複本主機時,將此屬性設定為「true」允許容錯移轉到來源主機,同時將連線狀態設定為唯讀。

    預設值 false
    自版本 6.0.2
  • selfDestructOnPingMaxOperations

    如果設定為非零值,當呼叫 'com.mysql.cj.jdbc.JdbcConnection.ping()' 或 'java.sql.Connection.isValid(int)' 時,如果連線傳送到伺服器的命令計數超過此值,驅動程式會報告關閉連線並報告失敗。

    預設值 0
    自版本 5.1.6
  • selfDestructOnPingSecondsLifetime

    如果設定為非零值,當呼叫 'com.mysql.cj.jdbc.JdbcConnection.ping()' 或 'java.sql.Connection.isValid(int)' 時,如果連線的存留期超過此值(以毫秒為單位指定),驅動程式會關閉連線並報告失敗。

    預設值 0
    自版本 5.1.6
  • ha.loadBalanceStrategy

    如果使用負載平衡連線來連接 MySQL Cluster 配置中的 SQL 伺服器(透過使用 URL 字首 "jdbc:mysql:loadbalance://"),驅動程式應使用哪種負載平衡演算法:(1)「random」- 驅動程式會為每個請求選擇一個隨機主機。這通常比循環配置 (round-robin) 效果更好,因為隨機性會在某種程度上考量到請求回應時間的差異,以分散負載,而循環配置在工作負載的回應時間存在差異時,有時可能會導致節點過載。(2)「bestResponseTime」- 驅動程式會將請求路由至先前交易的回應時間最佳的主機。(3)「serverAffinity」- 驅動程式最初會嘗試強制執行伺服器親和性,同時仍然尊重並受益於負載平衡實作的容錯方面。伺服器親和性排序列表是透過屬性 'serverAffinityOrder' 提供。如果親和性列表中列出的伺服器都無法回應,則驅動程式會參考「random」策略來選擇下一個伺服器。

    預設值 random
    自版本 5.0.6
  • loadBalanceAutoCommitStatementRegex

    當為自動提交 (auto-commit) 陳述式啟用負載平衡時(透過 'loadBalanceAutoCommitStatementThreshold'),只有當 SQL 符合正規表示式時,陳述式計數器才會遞增。預設情況下,發出的每個陳述式都會符合。

    自版本 5.1.15
  • loadBalanceAutoCommitStatementThreshold

    啟用自動提交時,在觸發負載平衡以重新平衡之前應執行的陳述式數量。預設值「0」會導致負載平衡連線僅在遇到例外狀況時重新平衡,或停用自動提交並明確提交或復原交易時重新平衡。

    預設值 0
    自版本 5.1.15
  • loadBalanceBlocklistTimeout

    檢查不可用伺服器之間的時間間隔(以毫秒為單位),方法是控制伺服器在全域封鎖列表中存活的時間長度。

    預設值 0
    自版本 5.1.0
  • loadBalanceConnectionGroup

    類別載入器中負載平衡連線的邏輯群組,用於獨立管理不同的群組。如果未指定,則會停用負載平衡連線的即時管理。

    自版本 5.1.13
  • loadBalanceExceptionChecker

    自訂例外狀況檢查器的完整類別名稱。此類別必須實作 'com.mysql.cj.jdbc.ha.LoadBalanceExceptionChecker' 介面,並用於檢查 'SQLException' 例外狀況,並判斷是否應觸發容錯移轉至負載平衡部署中的另一個主機。

    預設值 com.mysql.cj.jdbc.ha.StandardLoadBalanceExceptionChecker
    自版本 5.1.13
  • loadBalancePingTimeout

    使用負載平衡連線時,等待來自每個負載平衡實體連線的 ping 回應的時間(以毫秒為單位)。

    預設值 0
    自版本 5.1.13
  • loadBalanceSQLExceptionSubclassFailover

    預設負載平衡例外狀況檢查器使用的類別/介面 (以逗號分隔) 清單,用於判斷給定的 'SQLException' 是否應觸發容錯移轉。比較是使用 'Class.isInstance(SQLException)' 和擲回的 'SQLException' 進行。

    自版本 5.1.13
  • loadBalanceSQLStateFailover

    預設負載平衡例外狀況檢查器使用的 'SQLState' 代碼 (以逗號分隔) 清單,用於判斷給定的 'SQLException' 是否應觸發容錯移轉。會評估給定 'SQLException' 的 'SQLState',以判斷它是否以逗號分隔清單中指定的任何值開頭。

    自版本 5.1.13
  • loadBalanceValidateConnectionOnSwapServer

    在提交/復原時切換至新的實體連線時,負載平衡連線是否應明確檢查連線是否處於作用中狀態?

    預設值 false
    自版本 5.1.13
  • pinGlobalTxToPhysicalConnection

    使用 XA 連線時,驅動程式是否應確保針對給定 XID 的操作始終路由至相同的實體連線?這允許 'XAConnection' 在呼叫 "XA END" 後支援 "XA START ... JOIN"。

    預設值 false
    自版本 5.0.1
  • replicationConnectionGroup

    類別載入器中複寫連線的邏輯群組,用於獨立管理不同的群組。如果未指定,則會停用複寫連線的即時管理。

    自版本 8.0.7
  • resourceId

    一個全域唯一名稱,用於識別此資料來源或連線所連接的資源,當驅動程式無法根據 URL 中使用的主機名稱判斷此值時,用於 'XAResource.isSameRM()'。

    自版本 5.0.1
  • serverAffinityOrder

    一個以逗號分隔的清單,其中包含要在負載平衡「serverAffinity」策略中使用的主機/埠對。只會使用此 URL 中主機區段中列舉的主機子集,並且它們的大小寫和類型必須相同,即不能在一個地方使用 IP 位址,而在另一個地方使用對應的主機名稱。

    自版本 8.0.8