计算节点参数说明
enableCursor
参数说明:
Property | Value |
---|---|
参数值 | enableCursor |
是否可见 | 是 |
参数说明 | 是否允许PREPARE语句通过CURSOR获取数据 |
默认值 | false |
Reload是否生效 | 是 |
参数设置:
server.xml的enableCursor参数:
<property name="enableCursor">false</property>
参数作用:
是否允许PREPARE通过游标获取数据内容(jdbcURl:useCursorFetch=true)。
enableFlowControl
参数说明:
Property | Value |
---|---|
参数值 | enableFlowControl |
是否可见 | 是 |
参数说明 | 是否开启存储节点流控 |
默认值 | False |
Reload是否生效 | Y |
参数作用:
默认开启,开启后将智能控制后端流量,可以控制存储节点的压力,使存储节点在最佳状态下运行。通过管理端show @@datasource查看流控状态flow_control。
mysql> show @@datasource;
+----+----+-----------------------+------+--------+-------------+------+--------------+--------+------+------+--------------------+--------------+--------+-------------+-----------------+
| dn | ds | name | type | status | host | port | schema | active | idle | size | unavailable_reason | flow_control | idc_id | listener_id | listener_status |
+----+----+-----------------------+------+--------+-------------+------+--------------+--------+------+------+--------------------+--------------+--------+-------------+-----------------+
| 17 | 17 | 10.10.0.140_3313_db01 | 1 | 1 | 10.10.0.140 | 3313 | db01 | 0 | 45 | 45 | NULL | 0/64 | 1 | 8 | 1 |
| 16 | 16 | 10.10.0.140_3312_db01 | 1 | 1 | 10.10.0.140 | 3312 | db01 | 0 | 47 | 47 | NULL | 0/64 | 1 | 7 | 1 |
| 19 | 19 | 10.10.0.155_3311_db01 | 1 | 1 | 10.10.0.155 | 3311 | db01 | 0 | 49 | 49 | NULL | 0/64 | 1 | 10 | 1 |
| 18 | 18 | 10.10.0.155_3310_db01 | 1 | 1 | 10.10.0.155 | 3310 | db01 | 0 | 53 | 53 | NULL | 0/64 | 1 | 9 | 1 |
| 21 | 21 | 10.10.0.155_3313_db01 | 1 | 1 | 10.10.0.155 | 3313 | db01 | 0 | 55 | 55 | NULL | 0/64 | 1 | 12 | 1 |
| 20 | 20 | 10.10.0.155_3312_db01 | 1 | 1 | 10.10.0.155 | 3312 | db01 | 0 | 47 | 47 | NULL | 0/64 | 1 | 11 | 1 |
| 10 | 10 | 10.10.0.125_3310_db01 | 1 | 1 | 10.10.0.125 | 3310 | db01 | 0 | 44 | 44 | NULL | 0/64 | 1 | 1 | 1 |
| 11 | 11 | 10.10.0.125_3311_db01 | 1 | 1 | 10.10.0.125 | 3311 | db01 | 0 | 43 | 43 | NULL | 0/64 | 1 | 2 | 1 |
| 12 | 12 | 10.10.0.125_3312_db01 | 1 | 1 | 10.10.0.125 | 3312 | db01 | 0 | 44 | 44 | NULL | 0/64 | 1 | 3 | 1 |
| 13 | 13 | 10.10.0.125_3313_db01 | 1 | 1 | 10.10.0.125 | 3313 | db01 | 0 | 48 | 48 | NULL | 0/64 | 1 | 4 | 1 |
| 14 | 14 | 10.10.0.140_3310_db01 | 1 | 1 | 10.10.0.140 | 3310 | db01 | 0 | 44 | 44 | NULL | 0/64 | 1 | 5 | 1 |
| 15 | 15 | 10.10.0.140_3311_db01 | 1 | 1 | 10.10.0.140 | 3311 | db01 | 0 | 62 | 62 | NULL | 0/64 | 1 | 6 | 1 |
| -1 | -1 | configDatasource | 1 | 1 | 10.10.0.121 | 3306 | hotdb_config | 1 | 11 | 12 | NULL | N/A | -1 | 0 | 1 |
+----+----+-----------------------+------+--------+-------------+------+--------------+--------+------+------+--------------------+--------------+--------+-------------+-----------------+
注意
存储节点流控是计算节点内部控制算法。
enableHeartbeat & heartbeatPeriod & heartbeatTimeoutMs
参数说明:
Property | Value |
---|---|
参数值 | enableHeartbeat |
是否可见 | 是 |
参数说明 | 是否启用心跳,是:true,否:false |
默认值 | true |
Reload是否生效 | Y |
Property | Value |
---|---|
参数值 | heartbeatPeriod |
是否可见 | 是 |
参数说明 | 心跳周期(秒) |
默认值 | 2 |
最大值 | 60 |
最小值 | 1 |
Reload是否生效 | Y |
Property | Value |
---|---|
参数值 | heartbeatTimeoutMs |
是否可见 | 是 |
参数说明 | 心跳超时时间(毫秒) |
默认值 | 500 |
最大值 | 10000 |
最小值 | 100 |
Reload是否生效 | Y |
enableHeartbeat设置是否启用心跳检测。heartbeatPeriod设置心跳检测周期,默认值为2s,即心跳定时检测每2秒执行一次。heartbeatTimeoutMs设置心跳超时时间,默认值为500ms。
参数作用:
检测存储节点是否可用及是否存在共用的情况。
启用心跳检测后,会根据心跳检测周期去检测存储节点是否正常。当网络不可达或存储节点故障时,存在备存储节点且配置了切换规则的情况下,会切换到备存储节点,主存储节点会被置为不可用;存储节点切换逻辑请参考管理平台文档。
当一个存储节点同时被多个计算节点服务使用时,计算节点通过日志提示:there's another HotDB using this datasource...restart heartbeat. 不启用心跳检测的情况下,则数据节点/配置库高可用无法实现,无法进行故障切换,无法检测出存储节点共用等情况。
心跳超时时间:心跳开启的情况下,出现存储节点故障或心跳操作执行过慢超出阈值,会有日志heartbeat time out输出:
2018-05-29 16:32:52.924 [WARN] [HEARTBEAT] [HeartbeatTimer] a(-1) -- Datasource:-1 128.0.0.1:3306/hotdb_config time out! Last packet sent at:2018-05-29 04:32:49:886...省略...
注意
若当前存储节点为数据节点最后一个存储节点,存储节点不会置为不可用。且会尝试一直连接;若为纯备存储节点,即使心跳失败次数已经超过阈值,只要心跳检测时能够连接存储节点成功就不标记为不可用。
enableLatencyCheck & latencyCheckPeriod
参数说明:
Property | Value |
---|---|
参数值 | enableLatencyCheck |
是否可见 | 是 |
参数说明 | 是否开启主从延迟检测 |
默认值 | true |
Reload是否生效 | Y |
Property | Value |
---|---|
参数值 | latencyCheckPeriod |
是否可见 | 是 |
参数说明 | 主从延迟检测周期(ms) |
默认值 | 500 |
最大值 | 1000 |
最小值 | 100 |
Reload是否生效 | Y |
设置主从延迟检测周期,默认值为500ms,即定时检测每500ms秒执行一次主从延迟检测。
参数作用:
延迟检测依赖于心跳表。启用主从延迟检测,检测从库是否存在复制延迟,是否同步追上复制。此参数在存储节点/配置库切换时、计算节点启动时具有一定影响作用,例如,在存储节点故障切换之前要进行主从延迟校验(前提是需要配置故障切换规则,若没有配置切换规则,则不会进行主备存储节点之间的切换以及主从延迟校验),请参考管理平台文档。
登录管理端口,使用show @@latency; 可以查看主从延迟时间。
mysql> show @@latency;
+-----+----------------------------+----------------------------+---------+
| dn | info | backup_info | latency |
+-----+----------------------------+----------------------------+---------+
| 186 | 192.168.210.68:3307/db252 | 192.168.210.68:3308/db252 | 501 ms |
| 4 | 192.168.210.43:3308/db252 | 192.168.210.44:3308/db252 | 0 ms |
| 190 | 192.168.200.191:3307/db252 | 192.168.200.190:3307/db252 | 0 ms |
| 191 | 192.168.200.191:3308/db252 | 192.168.200.190:3308/db252 | 0 ms |
| 127 | 192.168.210.41:3308/db252 | 192.168.210.42:3308/db252 | STOPPED |
+-----+----------------------------+----------------------------+---------+
5 rows in set (0.02 sec)
enableListener
参数说明:
Property | Value |
---|---|
参数值 | enableListener |
是否可见 | 是 |
参数说明 | 启用监听模式 |
默认值 | false |
Reload是否生效 | 是 |
参数设置:
<property name="enableListener">false</property><!--启用Listener模式(Enable Listener mode or not)-->
参数作用:
监听程序是计算节点一个可拔插组件,开启后可解决集群强一致模式下的性能线性扩展问题。要使用监听程序需满足:计算节点是多节点集群模式并开启XA、在存储节点服务器上成功部署监听程序并启用enableListener参数。执行动态加载,在计算节点管理端执行以下命令可通过listener_status一列查看是否识别成功以及监听程序的实时状态。
mysql> show @@datasource;
+----+----+-----------------------+------+--------+-------------+------+--------------+--------+------+------+--------------------+--------------+--------+-------------+-----------------+
| dn | ds | name | type | status | host | port | schema | active | idle | size | unavailable_reason | flow_control | idc_id | listener_id | listener_status |
+----+----+-----------------------+------+--------+-------------+------+--------------+--------+------+------+--------------------+--------------+--------+-------------+-----------------+
| 17 | 17 | 10.10.0.140_3313_db01 | 1 | 1 | 10.10.0.140 | 3313 | db01 | 0 | 45 | 45 | NULL | 0/64 | 1 | 8 | 1 |
| 16 | 16 | 10.10.0.140_3312_db01 | 1 | 1 | 10.10.0.140 | 3312 | db01 | 0 | 47 | 47 | NULL | 0/64 | 1 | 7 | 1 |
| 19 | 19 | 10.10.0.155_3311_db01 | 1 | 1 | 10.10.0.155 | 3311 | db01 | 0 | 49 | 49 | NULL | 0/64 | 1 | 10 | 1 |
| 18 | 18 | 10.10.0.155_3310_db01 | 1 | 1 | 10.10.0.155 | 3310 | db01 | 0 | 53 | 53 | NULL | 0/64 | 1 | 9 | 1 |
| 21 | 21 | 10.10.0.155_3313_db01 | 1 | 1 | 10.10.0.155 | 3313 | db01 | 0 | 55 | 55 | NULL | 0/64 | 1 | 12 | 1 |
| 20 | 20 | 10.10.0.155_3312_db01 | 1 | 1 | 10.10.0.155 | 3312 | db01 | 0 | 47 | 47 | NULL | 0/64 | 1 | 11 | 1 |
| 10 | 10 | 10.10.0.125_3310_db01 | 1 | 1 | 10.10.0.125 | 3310 | db01 | 0 | 44 | 44 | NULL | 0/64 | 1 | 1 | 1 |
| 11 | 11 | 10.10.0.125_3311_db01 | 1 | 1 | 10.10.0.125 | 3311 | db01 | 0 | 43 | 43 | NULL | 0/64 | 1 | 2 | 1 |
| 12 | 12 | 10.10.0.125_3312_db01 | 1 | 1 | 10.10.0.125 | 3312 | db01 | 0 | 44 | 44 | NULL | 0/64 | 1 | 3 | 1 |
| 13 | 13 | 10.10.0.125_3313_db01 | 1 | 1 | 10.10.0.125 | 3313 | db01 | 0 | 48 | 48 | NULL | 0/64 | 1 | 4 | 1 |
| 14 | 14 | 10.10.0.140_3310_db01 | 1 | 1 | 10.10.0.140 | 3310 | db01 | 0 | 44 | 44 | NULL | 0/64 | 1 | 5 | 1 |
| 15 | 15 | 10.10.0.140_3311_db01 | 1 | 1 | 10.10.0.140 | 3311 | db01 | 0 | 62 | 62 | NULL | 0/64 | 1 | 6 | 1 |
| -1 | -1 | configDatasource | 1 | 1 | 10.10.0.121 | 3306 | hotdb_config | 1 | 11 | 12 | NULL | N/A | -1 | 0 | 1 |
+----+----+-----------------------+------+--------+-------------+------+--------------+--------+------+------+--------------------+--------------+--------+-------------+-----------------+
13 rows in set (0.00 sec)
注意
listener_status为1,代表监听程序可用;listener_status为0,代表监听程序不可用
enableOracleFunction
参数说明:
Property | Value |
---|---|
参数值 | enableOracleFunction |
是否可见 | 否 |
参数说明 | 是否优先解析oracle函数 |
默认值 | false |
最大值 | / |
最小值 | / |
Reload是否生效 | 是 |
参数设置:
enableOracleFunction属隐藏参数,若要开启,需添加到server.xml中。参数默认值false,如下配置:
<property name="enableOracleFunction">false</property><!-- 是否优先解析oracle函数(support oracle function or not) -->
参数作用:
此参数控制Oracle数据迁移至计算节点服务时,是否优先按Oracle语法解析SQL,降低迁移成本。该开关开启时,对所有用户生效;该开关关闭时,按用户单独配置的开关控制是否优先解析Oracle语法。同时支持Oracle的sequence对象及其相关功能。当该参数开启时优先按Oracle模式进行解析处理,不开启则按MySQL模式解析处理
Oracle支持而MySQL不支持的函数,部分支持改写。
设置为true时,Oracle函数解析识别支持改写,执行成功。示例:
mysql> select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual;
+------------------------------------------+
| to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') |
+------------------------------------------+
| 2020-09-24 17:09:30 |
+------------------------------------------+
1 row in set (0.01 sec)
设置为false时,对于MySQL不支持的函数报不支持或函数不存在
mysql> select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual;
ERROR 1305 (42000): FUNCTION db256_01.TO_CHAR does not exist
设置为true时,sequence相关能执行成功。示例:
mysql> create sequence sequence_test
-> minvalue 1
-> maxvalue 1000
-> start with 1
-> increment by 10;
Query OK, 1 row affected (0.04 sec)
设置为false时,当前是提示语法错误:
mysql> create sequence sequence_256
-> minvalue 1
-> maxvalue 1000
-> start with 1
-> increment by 10;
ERROR 10010 (HY000): expect VIEW. lexer state: token=IDENTIFIER, sqlLeft=sequence_256
enableSleep
参数说明:
Property | Value |
---|---|
参数值 | enableSleep |
是否可见 | 是 |
参数说明 | 是否允许SLEEP函数 |
默认值 | false |
Reload是否生效 | 是 |
参数设置:
<property name="enableSleep">false</property><!-- 是否允许SLEEP函数,是:true,否:false -->
参数作用:
用于设置计算节点是否允许sleep函数执行。
不允许sleep 函数:
mysql> select sleep(2);
ERROR 1064 (HY000): forbidden function:SLEEP, go check your config file to enable it.
允许执行sleep 函数:
mysql> select sleep(2);
+----------+
| sleep(2) |
+----------+
| 0 |
+----------+
1 row in set (2.00 sec)
enableSSL
参数说明:
Property | Value |
---|---|
参数值 | enableSSL |
是否可见 | 是 |
参数说明 | 是否开启SSL连接功能 |
默认值 | false |
Reload是否生效 | 是 |
参数设置:
<property name="enableSSL">false</property><!-- 是否开启SSL连接功能,是:true,否:false -->
参数作用:
用于设置计算节点是否允许使用SSL安全认证方式连接,具体可参考TLS连接登录章节描述,并配合keyStore、keyStorePass参数一起使用。
enableSubquery
参数说明:
Property | Value |
---|---|
参数值 | enableSubquery |
是否可见 | 否 |
参数说明 | 是否允许特殊场景下的子查询通过 |
默认值 | true |
Reload是否生效 | 是 |
参数作用:
是否允许子查询里的表为分片表,该参数默认开启,且可以支持更多场景下的子查询。在此之前的版本,开启这个参数并不保证子查询的结果准确性。
当设置为false时,即表示不允许子查询里面的表是分片表,会有如下提示:
mysql> select * from test3 where id in (select id from test31);
ERROR 1064 (HY000): Unsupported table type in subquery.
当设置为true时,表示支持子查询里面的表是分片表。
mysql> select * from test3 where id in (select id from test31);
+----+---------+
| id | name |
+----+---------+
| 5 | dfff56f |
| 7 | aa78bca |
| 15 | dfff56f |
...省略更多...
enableWatchdog
参数说明:
Property | Value |
---|---|
参数值 | enableWatchdog |
是否可见 | 是 |
参数说明 | 是否开启Watchdog |
默认值 | False |
Reload是否生效 | Y |
参数设置:
<property name="enableWatchdog">true</property><!-- 是否开启Watchdog -->
参数作用:
用于检测计算节点前端连接、后端连接池的异常连接及其他异常状态,检测异常后记录日志并终止连接。
可以通过tail -f hotdb.log|grep "watchdog"查看日志是否已经开启:
2018-06-01 18:26:50.983 [WARN] [WATCHDOG] [$NIOREACTOR-7-RW] watchdogTableCheckHandler(78) - Table TABLEB not found in watchdog table structure check in HotOB memory, but was found in MySQLConnection [node=i, id=18, threadId=199616, state=running, closed=false, autocommit=true, host=192.168.200.5q, port=3308, database=db249, localPort=51691, isClose:false, toBeclose:false]. You may need to contact HotDB administrator to get help.
2018-06-01 18:26:50.986 [WARN] [WATCHDOG] [$NIOREACTOR-7-RW] watchdogTableCheckHandler(78) - Table TESTB not found in watchdog table structure check in HotOB memory, but was found in MySQLConnection [node=i, id=18, threadId=199616, state=running, closed=false, autocommit=true, host=192.168.200.5q, port=3308, database=db249, localPort=51691, isClose:false, toBeclose:false]. You may need to contact HotDB administrator to get help.
2018-06-01 18:26:50.988 [WARN] [WATCHDOG] [$NIOREACTOR-7-RW] watchdogTableCheckHandler(78) - Table JOIN_DN02 not found in watchdog table structure check in HotOB memory, but was found in MySQLConnection [node=i, id=18, threadId=199616, state=running, closed=false, autocommit=true, host=192.168.200.5q, port=3308, database=db249, localPort=51691, isClose:false, toBeclose:false]. You may need to contact HotDB administrator to get help.
...省略更多...
可以通过日志查看表结构与内存中不一致检测信息:
2018-10-3118:46:44.834 [WARN] [WATCHDOG] [$NIOREACTOR-0-RW] WatchdogTableCheckHandler(85) - Table CCC is inconsistent in watchdog table structure check between HotDB memory and MySQL: MySQLConnection [node=20, id=299, threadId=3748, state=running, closed=false, autocommit=true, host=192.168.210.41. port=3310, database=rmb0l, localPort=58808, isClose:false, toBeClose:false]. You may need to contact HOtDB administrator to get help.
可以通过日志查看配置库与内存中不一致检测信息:
2018-10-31 17:45:39.617 [INFO] [WATCHDOG] [Watchdog] WatchDog(500) -- HotDB user config is inconsistent between config database and HotDB memory, Logic tables are not the same in FUN_RMB. you may need to reload HotDB config to bring into effect.
可以通过日志查看超过24小时未提交的事务检测信息:
2018-10-26 16:14:55.787 [INFO] [WATCHDOG] [$NIOREACTOR-0-RW] WatchDogLongTransactionCheckHandler(123) - Session [thread=Thread-5,id=1720,user=rmb,host=192.168.200.3,port=3323,localport=54330,schema=FUNTEST_RMB] has not been queryed for 839s. executed IUD5:[INSERT INTO rmb_cbc VALUES (tuanjian, 4000)]. binded connection:[MySQLConnection [node=11, id=1330, threadld=18085, state=borrowed, closed=false, autocommit=false, host=192.168.210.42, port=3307, database=db251, localPort=15722, isCiose:false, toBeClose:false] lastSQL:INSERT INTO rmb_cbc VALUES (tuanjian, 4000)]. innodb_trx:[(ds:11 trx_id:25765462 trx_state:RUNNING trx_started:2018-10-26 16:00:56 trx_requested_lock_id:NULL trx_wait_started:NULL trx_weight:2 trx_mysql._thread_id:18085 trx_query:NULL trx_operation_state:NULL trx_tables_in_use:0 trx_tables_locked:1 trx_lock_structs:1 trx_lock_memory_bytes:1136 trx_rows_locked:0 trx_rows_modified:1 trx_concurrency_tickets:0 trx_isolation_level:REPEATABLE READ trx_unique_checks:1 trx_foreign_key_checks:1 trx_last_foreign_key_error:NULL trx_adaptive_hash_latched:0 trx_adaptive_hash_timeout:0 trx_is_read_only:0 trx_autocommit_non_locking:0 )]. we will close this session now.
可以通过日志查看存储节点切换检测信息:
2018-10-26 19:29:01.146 [INFO] [MANAGER] [Labor-478] HotdbConfig(2164) - reload config successfully for connection:[thread=Labor-478,id=1609,user=root,host=192.168.200.2,port=3325,localport=57440.schema=null]
2018-10-26 19:30:24.384 [INFO] [FAILOVER] [$NlOExecutor-7-2] SwitchDataSource(111) - received switch datasource 24 command from Manager: [thread=$NIOExecutor-7-2,id=1609,user=root,host=192.168.200.2,port=3325,localport=57440,schema=null]
2018-10-26 19:30:24.387 [WARN] [RESPONSE] [Labor-484] InitSequenceHandler(270) - FUN_RMB.BC's sequence in Backup datasource: 25 is greater than current sequence
2018-10-26 19:30:24.387 [WARN] [RESPONSE] [Labor-474] InitSequenceHandler(270) - FUN_RMB.CBC's sequence in Backup datasource: 25 is greater than current sequence
2018-10-26 19:30:24.387 [WARN] [RESPONSE] [Labor-484] InitSequenceHandler(270) • FUN_RMB.BC's sequence in Backup datasource: 25 is greater than current sequence
2018-10-26 19:30:24.387 [WARN] [RESPONSE] [Labor-474] InitSequenceHandler(270) - FUN_RMB.CBC's sequence in Backup datasource: 25 is greater than current sequence
2018-10-26 19:30:24.407 [INFO] [FAILOVER] [Labor-464] CheckSlaveHandler(852) - DN:20(dn_rmb_01) switch datasource 24(192.168.210.41_3310_rmbol)->25(192.168.210.42_3310_rmb0l). current slave status:Slave_IO_State:Waiting for master to send event Master_Host:192.168.210.41 Master_User:hotdb_datasource Master_Port:3310 Connect_Retry:60 Master_Log_File:mysql-bin.000002 Read_Master_Log_Pos:3871570 Relay_Log_File:mysql-relay-bin.000006 Relay_Log_Pos:3871783 Relay_Master_Log_File:mysql-bin.000002 Slave_IO_Running:Yes Slave_SQL_Running:Yes Replicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno:0 Last_Error: Skip_Counter:0 Exec_Master_Log_Pos:3871570 Relay_Log_Space:5058376 Until_Condition:None Until_Log_File: Until_Log_Pos:0 Master_SSL_Allowed:No Master_SSL_CA_File: Master_SSL_CA_Path: Master_SSL_Cert: Master_SSL_Cipher: Master_SSL_Key: Seconds_Behind_Master:0 Master_SSL_Verify_Server_Cert:No Last_IO_Errno:0 Last_IO_Error: Last_SQL_Errno:0 Last_SQL_Error: Replicate_Ignore_Server_Ids: Master_Server_Id:210413310 Master_UUID:919cbf03-9f2d-11e8-b8af-525400636cd2 Master_Info_File:mysql.slave_master_info SQL_Delay:0 SQL_Remaining_Delay:NULL Slave_SQL_Running_State:Slave has read all relay log; waiting for more updates Master_Retry_Count:86400 Master_Bind: Last_IO_Error_Timestamp: Last_SQL_Error_Timestamp: Master_SSL_Crl: Master_SSL_Crlpath: Retrieved_Gtid_Set:919cbf03-9f2d-11e8-b8af-525400636cd2:22735-1367727 Executed_Gtid_Set:1aef7172-9f2e-11e8-b62c-525400fcfb5b: 1-3281,919cbf03-9f2d-11e8-b8af-525400636cd2:1-1367727 Auto_Position:1 Replicate_Rewrite_DB: Channel_Name: Master_TLS_Version:
2018-10-26 19:30:24.407 [WARN] [FAILOVER] [Labor-484] BackendDataNode(726) - datanode 20 switch datasource 24 to 25 in failover. due to: Manual Switch by User: root
2018-10-26 19:30:24.408 [INFO] [FAILOVER] [Labor-484] BackendDataNode(762) - datasource:[id:24,nodeld:20 192.168.210.41:3310/rmb0l status:1,charset:utf8mb4] will be set to unavailable due to datanode switch datasource.
2018-10-26 19:30:24.410 [INFO] [FAILOVER] [Thread-55] BackendDataNode(834) - starting updating datasource_status in failover of datanode:20
2018-10-26 19:30:24.415 [INFO] [FAILOVER] [Labor-484] SwitchDataSource(94) - switch datasource:24 for datanode:20 successfully by Manager.
enableXA
参数说明:
Property | Value |
---|---|
参数值 | enableXA |
是否可见 | 是 |
参数说明 | 是否采用XA事务 |
默认值 | False |
Reload是否生效 | 否 |
参数作用:
XA模式指强一致模式。在关系集群数据库系统中,数据被拆分后,同一个事务会操作多个数据节点,产生跨库事务。在跨库事务中,事务被提交后,若事务在其中一个数据节点COMMIT成功,而在另一个数据节点COMMIT失败;已经完成COMMIT操作的数据节点,数据已被持久化,无法再修改;而COMMIT操作失败的数据节点,数据已丢失,导致数据节点间的数据不一致。
计算节点利用存储节点提供的外部XA事务,可解决跨库事务场景中,数据的强一致性:要么所有节点的事务都COMMIT,要么所有的节点都ROLLBACK,以及提供完全正确的SERIALIZABLE和REPEATABLE-READ隔离级别支持。
enableRownum
参数说明:
Property | Value |
---|---|
参数值 | enableRownum |
是否可见 | 是 |
参数说明 | 控制是否开启rownum功能,为1时开启 |
默认值 | 0 |
Reload是否生效 | 是 |
参数设置:
server.xml中clientFoundRows参数配置 如下配置:
<property name="enableRownum">0</property><!-- 是否支持简单的ROWNUM伪列功能(0为关闭,1为开启)(Enable ROWNUM pseudocolumn or not(0: disable, 1: enable)) -->
参数作用:
rownum用以对结果各行生成序列号。在WHERE条件中,可以对结果数量进行控制。但rownum在计算节点当前支持有限,需注意以下情况:
- 只支持DQL语句(含水平分片表、垂直表、全局表)
- 只能位于SELECT或WHERE后,一个SELECT子句中,只能出现一次rownum,即不支持同时使用
- 在WHERE条件中,仅支持位于WHERE条件的最外层,并且是一个AND条件的分支,只支持rownum使用比较操作符(>、>=、<、<=、=、!=)与长整型数值比较
- 不支持在函数内部使用
举例说明rownum分别位于SELECT和WHERE后的使用:
SELECT * FROM (SELECT rownum,* FROM join_cross_a_cxd WHERE adnid in (101,102)) WHERE adnid=101;
SELECT * FROM join_cross_a_cxd a INNER JOIN join_cross_b_jwy b ON a.adnid=b.adnid WHERE rownum >= 1 ORDER BY a.id;
enableDropDatabase
参数说明:
Property | Value |
---|---|
参数值 | enableDropDatabase |
是否可见 | 否 |
参数说明 | 是否支持Drop database语法 |
默认值 | 0 |
Reload是否生效 | 是 |
参数设置:
添加该参数后,可以在服务端口执行删库操作,参数值0为关闭,1为开启,默认关闭。当开启时,可执行DROP {DATABASE | SCHEMA} [IF EXISTS] db_name语句,其中db_name为计算节点逻辑库;当关闭时,只有当库中不存在表时,才可以执行删库操作。
<property name="enableDropDatabase">1</property><!--0为关闭,1为开启,默认关闭,当开启时,可执行DROP {DATABASE | SCHEMA} [IF EXISTS] db_name语句,其中db_name为计算节点逻辑库-->
errorsPermittedInTransaction
参数说明:
Property | Value |
---|---|
参数值 | errorsPermittedInTransaction |
是否可见 | 是 |
参数说明 | 事务中是否允许出现错误 |
默认值 | true |
Reload是否生效 | 是 |
参数作用:
在设置为False时,事务中执行SQL,存储节点返回错误后事务不再允许继续进行操作,只能进行回滚。所有可能导致事务提交的操作也都会造成该事务的回滚。设置为True时,则即使事务中曾有报错,也可以提交。
设置为False时,当存储节点返回错误时,会有如下提示:
mysql> begin;
Query OK, 0 rows affected (0.00 sec)
mysql> insert into autoi values(null,'aa');
Query OK, 1 row affected (0.00 sec)
mysql> select * from autoi;
ERROR 1146 (HY000): Table 'db249.autoi' doesn't exist
mysql> select * from autoi where id=1;
ERROR 1003 (HY000): errors occurred in transaction, you need to rollback now
mysql> commit;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from autoi where id=1;
Empty set (0.00 sec)
设置为true时,事务内出现错误,事务仍然可以提交成功。
mysql> begin;
Query OK, 0 rows affected (0.00 sec)
mysql> insert into autoi values(null,'aa');
Query OK, 1 row affected (0.00 sec)
mysql> select * from ss;
ERROR 1146 (HY000): Table 'db249.ss' doesn't exist
mysql> select * from ss where id=1;
+----+----+
| id | a |
+----+----+
| 1 | aa |
+----+----+
1 row in set (0.01 sec)
mysql> commit;
Query OK, 0 rows affected (0.01 sec)
mysql> select * from ss where id=1;
+----+----+
| id | a |
+----+----+
| 1 | aa |
+----+----+
1 row in set (0.01 sec)
标签:NULL,false,23,数据库,参数,10.10,hhdb,db01,节点
From: https://www.cnblogs.com/henghuixinda/p/18576196