gpt4 book ai didi

h2 - 检测和恢复故障的H2群集节点

转载 作者:行者123 更新时间:2023-12-04 04:37:29 24 4
gpt4 key购买 nike

在阅读了H2开发人员指南之后,我仍然不了解如何确定哪些集群节点发生了故障,以及在临时网络故障的情况下需要恢复哪些数据库。

让我们考虑以下情形:

  • H2群集始于N个事件节点(实际上H2可以支持N> 2,即超过2个群集节点吗?)
  • (批处理数据库更新,读取...)
  • 与一个(或几个)群集节点的网络连接断开,并且节点对其余群集不可见
  • (大量数据库更新,读取...)
  • 与先前断开连接的节点的网络链接已还原
  • 发现集群节点可能丢失了(据我所知,如果集群中的一个节点发生故障,SELECT VALUE FROM INFORMATION_SCHEMA.SETTINGS WHERE NAME='CLUSTER'开始以空字符串作为响应)

  • 在此之后,还不清楚如何找出发生故障的节点?
    显然,我可以进行一些基本检查,例如比较数据库大小,但这是不可靠的。
  • 建议使用什么步骤找出集群中缺少的节点,特别是。如果上面的查询以空字符串响应?
  • 另一个问题-为什么urlTarget不支持多个参数?
    如果集群中的多个节点发生故障并且我想恢复多个节点,我应该如何使用CreateCluster工具?
  • 另外,如果我必须停止集群并且我实际上不希望恢复任何节点,我也不了解CreateCluster的工作原理?对我来说不清楚的是,如果我实际上不需要复制数据库,则需要传递给CreateCluster工具。
  • 最佳答案

    那是正确的SELECT VALUE FROM INFORMATION_SCHEMA.SETTINGS WHERE NAME='CLUSTER',在标准模式下查询时将返回一个空字符串。

    但是,您也可以使用Connection.getClientInfo()获取服务器列表,但这是一个两步过程。从h2database.com释义:
    getClientInfo()返回的属性列表包括numServers属性,该属性返回连接列表中的服务器数量。 getClientInfo()还具有属性server0..serverN,其中N是服务器的数量-1。因此,要从列表中获取第二台服务器,请使用getClientInfo('server1')。

    Note: The serverX property only returns IP addresses and ports and not hostnames.



    而且,在您说简单复制之前,是的,这是默认操作,但是您可以在集群H2中做超出您的问题范围的高级操作。

    这是你在说什么的报价:

    Clustering can only be used in the server mode (the embedded mode does not support clustering). The cluster can be re-created using the CreateCluster tool without stopping the remaining server. Applications that are still connected are automatically disconnected, however when appending ;AUTO_RECONNECT=TRUE, they will recover from that.



    因此,是的,如果集群停止,没有启用auto_reconnect,并且坚持使用基本查询,就会陷入困境,并且很难找到信息。虽然大多数人会告诉您仔细阅读API和/或手册,但他们不必仔细阅读该API和/或手册,对此,我表示同情。

    我发现跟踪错误代码更加有用,因为当您了解如何为... here you go计划故障时,您会真正知道该怎么做。

    关于h2 - 检测和恢复故障的H2群集节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38005876/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com