HotDB的配置库高可用

2022-05-09 00:00:00 节点 配置 可用 启用 主从

今天主要跟大家介绍分布式事务数据库HotDB 的高可用相关
前面将了 数据节点高可用
计算节点高可用

下面就说说

分布式事务数据库HotDB的配置库高可用

配置库高可用
配置库、部分存储节点部署在同一MySQL实例或同一服务器时,若该实例出现故障,故障信息无法记入配置库,故计算节点支持配置库高可用功能,保证配置库可正常使用。

  1. 在server.xml里配置主从配置库的连接信息,保证主从关系正常
    jdbc:mysql://192.168.200.191:3310/hotdb_config
    <propertyname=“username”>hotdb_config
    <propertyname=“password”>hotdb_config
    <propertyname=“bakUrl”>jdbc:mysql://192.168.200.190:3310/hotdb_config
    <propertyname=“bakUsername”>hotdb_config
    <propertyname=“bakPassword”>hotdb_config

Ø 当主配置库发生故障时会自动切换到从配置库。切换过程中若存在延迟会等待从配置库复制延迟追上后切换成功并提供服务。若当前配置库设置了主从延迟且正在运行XA事务,此时发生故障切换,XA事务会卡住直到切换成功后继续运行。
Ø 主配置库发生故障后,可以采用以下两种方法重新启用主配置库:
(1)在管理平台“配置”->“计算节点参数配置”页面点击file:///C:/Users/hotpu/AppData/Local/Temp/msohtmlclip1/01/clip_image001.png按钮,启用主配置库。动态加载后重新启用主配置库。

(2)人工恢复主配置库,即:登录当前的配置库既原备配置库服务,将hotdb_config_info表中hotdb_master_config_status的值改为1(参考SQL: UPDATE hotdb_config_infoSET v=1 WHERE k=‘hotdb_master_config_status’;),重新加载配置后启用主配置库。

注意:
若当前使用的配置库与被选择启用配置库之间不存在复制关系,动态加载会失败并计算节点日志会报如下错误提示:
2019-06-18 17:29:35.838 [WARN] [MANAGER][NI0Executor-4-0] cn.hotpu.hotdb.HotdbConfig(1535) - no same repl ds-record innew configuration datasource:[id:-1,nodeId:-1 192.168.210.43:3308/hotdb_config_ha249status: 1,charset:utf8] 2019-06-18 17:29:35.838 [INFO] [MANAGER][NI0Executor-4-0] cn.hotpu.hotdb.manager.ManagerQueryHandler(247) - Excetionin handler sql:
java.lang.IllegalArgumentException: Thereis a repl problem between the new configuration datasource and the currentconfiguration datasource.
atcn.hotpu.hotdb.HotdbConfig.reload(HotdbConfig.java:1163) ~[hotdb-server-2.4.9-ga-20190618.jar:?]
atcn.hotpu.hotdb.HotdbServer.reloadConfig(HotdbServer.java:1275) ~[hotdb-server-2.4.9-ga-20190618.jar:?]
atcn.hotpu.hotdb.manager.response.ReloadConfig.execute(ReloadConfig.java:25) ~[hotdb-server-2.4.9-ga-20190618.jar:?]
atcn.hotpu.hotdb.manager.handler.ReloadHandler.handle(ReloadHandler.java:22)-[hotdb-server-2.4.9-ga-20190618.jar:?]
atcn.hotpu.hotdb.manager.ManagerQueryHandler.handleQuerySQL(ManagerQueryHandler.java:153)[hotdb-server-2.4.9-ga-20190618.jar:?]
atcn.hotpu.hotdb.net.handler.comd.ComHandler4Query.handle(ComHandler4Query.java:180)[hotdb-server-2.4.9-ga-20190618.jar:?]
atcn.hotpu.hotdb.net.handler.FrontendCommandHandler.handle(FrontendCommandHandler.java:129)[hotdb-server-2.4.9-ga-20190618.jar:?]
atcn.hotpu.hotdb.net.FrontendConnectionl.run(FrontendConnection.java:211)[hotdb-server-2.4.9-ga-20190618.jar:?] atjava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)[?:1.7.0_80] atjava.util.concurrent.ThreadPoolExecutorWorker.run(ThreadPoolExecutor.java:615)[?:1.7.0_80]
atjava.lang.Thread.run(Thread.java:745) [?:1.7.0_80]

例如当前使用的是原从配置库,希望启用原主配置库,此时原从配置库没有到原主配置库的复制关系,则点击√按钮或人工操作后动态加载会失败。正确操作应该注意核对配置库的主从数据一致性后,点击√按钮或人工操作后重启计算节点,则启用主配置库成功。
若计算节点高可用服务涉及配置库的主从关系,需保证server.xml中一组计算节点高可用的主从配置库的配置完全相同,不能交错配置。

来源 https://www.modb.pro/db/82232

相关文章