MySQL Connecto /J支持服务器故障转移。当基础活动连接发生与连接有关的错误时,将发生故障转移。连接错误,默认情况下,传递给客户端,其中有通过处理它们,例如,重新创建工作对象(Statement, ResultSet,等),并重新启动的过程。有时,驱动程序可能最终会在客户端应用程序继续运行之前自动退回到原始主机,在这种情况下,主机开关是透明的,客户端应用程序甚至不会注意到它。
使用故障转移支持的连接就像标准连接一样工作:客户端在故障转移过程中不会受到任何干扰。这意味着即使两个连续的语句可能在两个不同的物理主机上执行,客户端也可以依赖于相同的连接实例。但是,这并不意味着客户端不必处理触发服务器切换的异常。
故障转移是在服务器连接的初始设置阶段通过连接URL进行配置的(请参见此处的格式说明 ):
jdbc:mysql://[primary host][:port],[secondary host 1][:port][,[secondary host 2][:port]]...[/[database]]»
[?propertyName1=propertyValue1[&propertyName2=propertyValue2]...]
连接URL中的主机列表包含两种类型的主机,即主要主机和辅助主机。当开始新的连接时,驱动程序总是首先尝试连接到主要主机,并且在遇到通信问题时(如果需要)顺序地故障转移到列表中的次要主机。即使与主要主机的初始连接失败并且驱动程序已连接到辅助主机,主要主机也永远不会丢失其特殊状态:例如,可以将其配置为与辅助主机不同的访问模式,并且在故障转移过程中选择主机时,可以将其置于更高的优先级。
故障转移