1.2 bootstrap.cnf

本配置文件为dble实例启动时候加载的配置文件。默认使用wrapper.cnf启动的外置参数文件的格式,即使不使用wrapper启动时,也会加载此文件。

1.2.1 jvm启动参数

本文件第一部分为JVM启动参数,可以根据需要修改。

-agentlib:jdwp=transport=dt_socket,server=y,address=8088,suspend=n  
-server  
-XX:+AggressiveOpts  
-Dfile.encoding=UTF-8  
-Dcom.sun.management.jmxremote  
-Dcom.sun.management.jmxremote.port=1984  
-Dcom.sun.management.jmxremote.authenticate=false  
-Dcom.sun.management.jmxremote.ssl=false  
-Dcom.sun.management.jmxremote.host=127.0.0.1  
-Xmx4G  
-Xms1G  
-XX:MaxDirectMemorySize=2G

大部分以上的配置都没有特殊的意义,仅仅是一般的JVM配置,关于JVM调优的部分需要以现实情况进行操作,在此仅介绍以个特殊情况

MaxDirectMemorySize上限值为81917M,约等于79G。需要根据机器的情况进行提前适配,不然会导致服务无法正常启动 具体的细节为需要大于bufferPoolPageNumber*bufferPoolPageSize,这两个选项在第二部分中配置

bufferPoolPageNumber 的默认值= (MaxDirectMemorySize * 0.8 /bufferPoolPageSize), 向下取整 ,上限值为32767

bufferPoolPageSize 的默认值= 2M

以下为建议值:
dble总内存=0.6 可用物理内存(刨除操作系统,驱动等的占用)
Xmx = 0.4
dble总内存
MaxDirectMemorySize = 0.6 * dble总内存

另外,在启动参数中的bufferPoolPageNumber 和bufferPoolPageSize 受MaxDirectMemorySize影响。

1.2.2 dble系统参数

本文件第二部分为dble系统参数,配置格式遵照启动参数的格式:-Dkey=value, 注意如果是通过JSW启动的dble服务,需要复合JSW对配置文件的要求,也就是不能有空格,具体参见 wrapper.app.parameter_file
具体系统参数含义参见以下表格。

是否开启sql统计


模块

配置名称



配置内容



默认值/单位



详细作用原理或应用



配置范围


系统服务基本参数

homePath



基本目录 慢查询日志(slowlogs)、视图记录日志(viewConf)、xa的tm日志(xalogs)、load data临时文件(temp)等存放路径的父目录



无默认值,不配置会报错



其他一些类似于事务或者视图存储的的根路径



有效路径,
推荐配置为当前目录



instanceName



实例名称



无默认值,不配置会报错



集群配置时的唯一标识,xa事务时的实例标识



集群内唯一值



instanceId



实例id



无默认值



集群配置时的唯一标识,全局序列时的唯一标识



仅当sequenceHandlerType=2 或者 3时候有意义.


当sequenceHandlerType=2,合法值范围为0~1023


当sequenceHandlerType=3,合法值范围为0~,511



serverId



服务器名称



默认值为服务器IP



dble所在机器的名称



用于告警时候报告服务器名称



bindIp



服务IP



默认 "0.0.0.0"



在服务初始化的时候作为侦听的IP



有效IP地址,
推荐默认



serverPort



服务端口



默认8066



在服务初始化的时候作为服务侦听的端口



机器空闲端口



managerPort



控制端口



默认9066



在服务初始化的时候作为控制侦听的



机器空闲端口



maxCon



控制最大连接数



默认0



默认不做限制。若maxCon大于0,建立的连接数大于maxCon之后,建立连接会失败.注意当各个用户的maxcon总和值大于此值时,以当前值为准。 全局maxCon不作用于manager用户



正整数



NIOFrontRW



NIO前端处理器的数量,兼容旧参数processors,同时配置NIOFrontRW和processors,以NIOFrontRW为准



默认java虚拟机核数
,单位个



进行前端网络IO吞吐的线程数



正整数



NIOBackendRW



NIO后端处理器的数量,兼容旧参数backendProcessors,同时配置NIOBackendRW和backendProcessors,以NIOBackendRW为准



默认java虚拟机核数
,单位个



进行后端网络IO吞吐的线程数



正整数



frontWorker



前端业务处理线程池数量,兼容旧参数processorExecutor,同时配置frontWorker和processorExecutor,以frontWorker为准



默认
(单核为2,否则等于宿主机核数)



进行前端具体业务处理的线程池大小,负责解析路由下发



正整数



managerFrontWorker



前侧管理端线程池数量



默认
默认(单核为2,否则等于宿主机核数/2)



负责前侧管理端执行&处理命令的线程池大小



正整数



backendWorker



后端业务处理线程池数量,兼容旧参数backendProcessorExecutor,同时配置backendWorker和backendProcessorExecutor,以backendWorker为准



默认
(单核为2,否则等于宿主机核数)



进行后端具体业务处理的线程池大小,负责回收结果集并合并



正整数



complexQueryWorker



复杂查询后端业务线程池数量,兼容旧参数complexExecutor,同时配置complexQueryWorker和complexExecutor,以complexQueryWorker为准



默认
(单核为2,否则等于宿主机核数,宿主机核数大于8时,数量为8



负责复杂查询或者子命令结果集的回收



正整数



writeToBackendWorker



广播下发SQL时候批量处理的线程池,兼容旧参数writeToBackendExecutor,同时配置writeToBackendWorker和writeToBackendExecutor,以writeToBackendWorker为准



默认
(单核为2,否则等于宿主机核数)



负责广播下发SQL时候批量处理



正整数



fakeMySQLVersion



Dble模拟Mysql版本号



默认NULL



模拟成正常的MySql版本, 用于与客户端协议交互
+ 分布式使用规则:填写的版本号不能高于后端Mysql节点的最低版本号, 否则启动失败
+ 读写分离使用规则:填写的版本号和后端MySQL节点的版本号需要在范围上保持一致,否则启动失败。MySQL官方认为 5.7.20<=版本<8.0.0 和="" 版本="">=8.0.3 是一致的,除此之外其它的版本则认为是同一种情况。例如以下的配置情况:
1.fakeMySQLVersion:5.7.20 mysql-version:5.7.25
2.fakeMySQLVersion:8.0.3 mysql-version:8.0.23
3.fakeMySQLVersion:5.7.15 mysql-version:8.0.1
建议:填写的大版本号与后端Mysql节点的大版本号保持一致



MYSQL版本号


serverBacklog 前端tcp连接 backlog 默认2048 前端tcp连接 backlog

正整数



usePerformanceMode



是否启用性能模式



默认0/单位无



开启之后Dble会大量占用CPU资源,并提供更高的性能体现,慎用


1-是0-否



useOuterHa



是否启用外部高可用联动



默认为true,若此时不设置外部高可用,将不做切换



如关闭此功能并且dble部署方式为单机,将使用默认的切换方式,详情请见切换相关章节



true/false

groupConcatMaxLen



GROUP CONCAT()函数允许的最大结果长度



默认为1024



GROUP CONCAT()函数允许的最大结果长度,以字节为单位



正整数

连接缺省值



charset



字符集



utf8mb4



服务启动后的默认字符集于所有字符集相关的部分,包括前端连接和后端连接



有效字符集



maxPacketSize



包大小限制



默认 4×1024×1024



限制请求的包大小,启动时候dble会拉取并尝试同步(此值+1024)到每个dbInstance,如果同步失败,就取配置值与各个dbInstance中最小的那个值-1024.留出1024的冗余用于对SQL改写或者上下文同步的支持



正整数



txIsolation



隔离级别



默认 3



执行具体SQL的时候会比较前后端连接,


启动时候dble会拉取并尝试同步此值到每个dbInstance,如果同步失败或者session级别重新设置该值,session在SQL下发之前,会执行session级别的隔离级别set



1-READ_UNCOMMITTED
2-READ_COMMITTED
3-REPEATABLE_READ
4-SERIALIZABLE


autocommit



是否自动提交



默认 1,自动提交



启动时候dble会拉取并尝试同步此值到每个dbInstance


如果同步失败或者session级别重新设置该值,执行具体SQL的时候会比较,如果不一致将会执行session级别的set



0/1

功能性配置

useCompression



是否启用数据压缩



默认 0否



使用mysql压缩协议



1 - 是 0 - 否



capClientFoundRows



是否开启Client_Found_Rows权能标识



默认 false,关闭



dble开启Client_Found_Rows权能标识



true - 开启 false - 关闭



usingAIO



是否启用AIO



默认0



在初始化服务的时候将会作为判断启用AIO或是NIO的依据



1 - 是 0 - 否


线程使用率统计



useThreadUsageStat



开启线程使用率统计



默认0/单位无




开启之后能在管理端通过管理命令show @@thread_used查看各个部分的线程使用情况


1-是0-否



useCostTimeStat



是否启用查询耗时统计



默认0/单位无



开启之后以一定的比例统计查询过程中的各个步骤的耗时情况,可以使用BTraceCostTime.java进行观测,也可在管理端使用show @@cost_time观察


1-是0-否



maxCostStatSize





默认100



show @@cost_time结果最近保留的行数




costSamplePercent



查询采样百分比



默认1/单位%




在耗时采样统计中实际采样百分比为costSamplePercent



一致性检查

checkTableConsistency



表格一致性检查



默认0



如果值为1,那么在服务初始化的时候会启动一个定时任务,在


定时任务会检查DB是不是存在,表格是不是存在,表结构是否一致



1-是,0-否



checkTableConsistencyPeriod



表格一致性检查周期



默认30×60×1000
,单位毫秒



表格一致性检查周期



正整数


processor内部前后端连接检查
 

sqlExecuteTimeout



后端连接执行超时时间



默认 300
,单位秒



如果超过这个时间没有完毕,就直接关闭连接



正整数



idleTimeout



前端连接无响应超时时间



默认 10 × 60 × 1000
,单位毫秒



在processor定时连接检查时,发现前端连接上一次的读写距今超过阀值,会直接关闭连接



正整数



processorCheckPeriod



processor定时任务检查周期



1000
,单位毫秒



根据此配置定时的检查在processor中的前后端连接的状态



正整数


后端连接socket 配置

backSocketSoRcvbuf  



后端套接字接收缓冲区大小



1024×1024×4
,单位字节



在创建后端管道的时候作为buffer大小使用



正整数

backSocketSoSndbuf



后端套接字发送缓冲区大小



1024×1024
,单位字节



在创建后端管道的时候作为buffer大小使用



正整数

backSocketNoDelay



后端Nagle算法是否禁用



默认1/单位无



在创建后端管道的时候禁用延迟加载,会影响网络包的情况 详见相关资料



1-是,
0-否

前端连接socket 配置

frontSocketSoRcvbuf



前端套接字接受缓冲区大小



1024 × 1024
,单位字节



在读取网络传输信息的时候作为每次缓冲的大小使用



正整数

frontSocketSoSndbuf



前端套接字发送缓冲区大小



1024×1024×4
,单位字节



在创建前端管道的时候作为buffer大小使用



正整数

frontSocketNoDelay



前端Nagle算法是否禁用



默认1



在创建前端管道的时候禁用延迟加载 相关资料



1-是,0-否
Session预留内存配置

orderMemSize



session中的复杂查询order预留内存



默认4,单位M



在session初始化的时候创建内存分配对象,在复杂查询order by的时候使用到



正整数

otherMemSize



session中的复杂查询其他预留内存



默认4,单位M



在session初始化的时候创建内存分配对象,在复杂查询subQuery以及distinctd的时候使用



正整数

joinMemSize



session中的复杂查询join预留内存



默认4,单位M



在session初始化的时候创建内存分配对象,在复杂查询join使用到



正整数
堆外内存管理

bufferPoolChunkSize


内存池中分配的最小粒度

默认4096
,单位字节



内存池中分配的最小粒度,需要的大小除以此粒度,向上取整





bufferPoolPageNumber



预分配内存池页数量



默认 0.8 × MaxDirectMemorySize / bufferPoolPageSize(default 2M), 向下取整



在初始化的时候通过和bufferPoolPageSize的相乘确定缓冲池最后的大小,内存配置建议见启动参数





bufferPoolPageSize



预分配内存池页大小



默认1024 * 1024 * 2,
单位字节



在初始化的时候通过和bufferPoolPageNumbe的相乘确定缓冲池最后的大小,


注意:虚拟机参数MaxDirectMemorySize(见启动参数)需要大于bufferPoolPageNumber * bufferPoolPageSize,否则会触发OOM





mappedFileSize



文件映射区单个文件最大体积



默认1024×1024×64
,单位字节



在初始化的时候此参数确定文件映射区最大容量,参见内存管理章节





maxResultSet 大结果集阈值 默认512×1024
,单位字节
当查询的结果集超过这个阀值时,查询的SQL和查询结果集的大小才会被记录到结果集统计里面

正整数


enableSessionActiveRatioStat 统计前端连接繁忙率开关 默认为1,开启 统计前端连接繁忙率开关;当开启性能模式(-DusePerformanceMode=1)时,此配置不生效

0或者1


enableConnectionAssociateThread 记录当前时间,前端/后端连接分别使用线程情况的开关 默认为1,开启 记录当前时间,前端/后端连接分别使用线程情况的开关;当开启性能模式(-DusePerformanceMode=1)时,此配置不生效

0或者1


普通事务日志相关

recordTxn



事务log记录



默认0



在初始化服务的时候会注册一个类,其作用就是将事务的log写到一个指定的文件中



1-是,0-否



transactionLogBaseDir



事务log目录



默认当前路径/txlogs



当开启日志log记录时,记录文件会被存放在对应目录下



绝对路径



transactionLogBaseName



事务log文件名称



默认server-tx



事务记录存储文件的文件名



符合运行系统
文件的命名规范


transactionRotateSize 事务日志单个文件大小。 默认16
,单位M

正整数


XA 事务

xaRecoveryLogBaseDir



xa的tm日志路径



dble目录/xalogs/ 


此日志涉及到XA事务状态的记录,并且在Dble意外重启之后需要从里面获取重启之前的xa事务状态,切勿自行修改

绝对路径


xaRecoveryLogBaseName xa的tm日志名称 xalog  

符合运行系统
文件的命名规范



xaSessionCheckPeriod



XA定时任务执行周期



默认1000, 单位ms



在server开始的时候会注册一个定时任务以此参数为执行周期


(注:定时任务必定会被注册)


如果有尝试多次没有成功提交的session在之后的定时任务会被重复提交



正整数



xaLogCleanPeriod



定时XAlog清除周期



默认1000, 单位ms



在server开始的时候会根据这个周期注册一个定时任务


(注:定时任务必定会被注册)


定时清XA log,主要是将已经回滚和提交成功的部分从记录中删除



正整数



xaRetryCount



后台重试XA次数



默认0



后台定时任务重试XA次数,0为无限重试,达到设定次数后,停止重试



正整数



xaIdCheckPeriod



检测疑似残留XA任务的周期



默认300,单位s



后台定时检测疑似残留Xid任务; 如果设置小于等于0,则表示不开启此检测定时任务



正整数


视图相关参数

viewPersistenceConfBaseDir



视图记录本地文件路径



dble目录/viewConf



用于存放视图本地记录文件的文件路径,集群配置时无意义



绝对路径



viewPersistenceConfBaseName



视图记录本地文件名



viewJson



视图记录的文件文件名,集群配置时无意义



符合运行系统
文件的命名规范


队列大小参数 joinQueueSize join时,左右结点的暂存数据行数的队列大小 1024 当行数大于此值而又没有及时被消费者消费掉,将会阻塞,目的是防止接收数据量太大,堆积在内存中 正整数
mergeQueueSize merge时,左右结点的暂存数据行数的队列大小 1024 当行数大于此值而又没有及时被消费者消费掉,将会阻塞,目的是防止接收数据量太大,堆积在内存中 正整数
orderByQueueSize 排序时,时,左右结点的暂存数据行数的队列大小 1024 当行数大于此值而又没有及时被消费者消费掉,将会阻塞,目的是防止接收数据量太大,堆积在内存中 正整数
join相关的策略 useJoinStrategy 是否使用nest loop 优化 默认不使用 开启之后会尝试判断join两边的where来重新调整查询SQL下发的顺序 true 开启
false 不开启
joinStrategyType nest loop 优化策略 默认值为-1,根据不同数值使用不同的nestloop策略 值为-1时,如果useJoinStrategy=true,那么进入useJoinStrategy的逻辑,否则不进行nestloop处理,值为0时, 不进行nestloop处理(无视useJoinStrategy是否开启),值为1时 进入useJoinStrategy的逻辑处理(无视useJoinStrategy是否开启),值为2时, 进入alwaysTryNestLoop的逻辑处理(无视useJoinStrategy是否开启) 允许范围在-1到2之间
nestLoopConnSize 临时表阈值 默认4
若临时表行数大于这两个值乘积,则报告错误

正整数
nestLoopRowsSize 临时表阈值 默认2000
inSubQueryTransformToJoin in子查询转成join进行查询 默认false(默认不使用) in子查询在dble内部可以尝试转成join处理,也可以选择不开启。可以通过查询计划比较两种方式的执行(执行过程有所区别,性能也会因为sql的不同而有不同的表现),开启与否不影响最终结果 true 开启 false 不开启
慢查询日志相关配置

enableSlowLog



慢查询日志开关



默认为0,关闭



慢查询日志开关



0或者1

slowLogBaseDir



慢查询日志存储文件夹



dble根目录/slowlogs



慢查询日志存储文件夹



文件夹路径

slowLogBaseName



慢查询日志存储文件名前缀



slow-query



慢查询日志存储文件名前缀(后缀名是.log)



合法文件名

flushSlowLogPeriod



日志刷盘周期,单位秒



1



日志刷盘周期,每隔这个周期,会强制将内存数据刷入磁盘



正整数

flushSlowLogSize



日志刷盘条数阈值



1000



日志刷盘条数阈值,内存中每次写出这么多条日志,会强制刷盘1次



正整数

sqlSlowTime



慢日志时间阈值,单位毫秒



100



慢日志时间阈值,大于此时间的查询会记录下来



正整数或者0

slowQueueOverflowPolicy



慢日志队列无空间时,后续日志的处理策略



2



慢日志队列存储的是等待落盘的慢日志,目前队列固定长度为2000,当队列满了,后续慢日志会根据不同的策略进行不同的处理


策略1:保障持续服务业务:当遇到慢查询超过等待写入阈值时,丢弃当前产生的慢SQL,并发出告警;


策略2:尽量保证慢日志不丢失:当遇到慢查询超过等待写入阈值时,触发阻塞队列机制,新的慢SQL等待加入落盘队列,并触发告警;最大阻塞时间为3s,超时会丢弃当前慢日志的记录



1或2
load data 相关配置

maxCharsPerColumn



每列所允许最大字符数



默认为65535



每列所允许最大字符数



正整数

maxRowSizeToFile



需要持久化的最大行数,在开启load data批处理模式下是拆分文件的阈值



默认为100000



当load data的数据行数超过阈值后,会将数据保存在文件中以防OOM。在开启批处理模式后load data的数据行数超过阈值后,会将该文件按照阈值拆分成多个文件进行保存,拆分过程中最后的数据行不到阈值放入在最后一个拆分的文件中,而不是再单独创建新文件存放



正整数

enableBatchLoadData



是否启用load data的批处理模式



默认为0



load data会将导入文件按照maxRowSizeToFile的值拆分成多个文件分批导入



正整数,0为不开启,1为开启。其他数字无效
流量控制相关参数

enableFlowControl



是否启用流量控制,true/false



默认为false



具体流量控制请参见相关功能描述章节



true/false

flowControlHighLevel



触发流量控制的前端连接水位



默认为4194304(4096K)



当部分前端连接的写出队列的字节数超出水位时触发流量控制,单位为字节数



正整数

flowControlLowLevel



流量控制取消的前端连接水位



默认为262144(256K)



当流量控制中的前端连接写出队列的字节数小于水位,则取消流量控制,单位为字节数



正整数
游标相关参数

enableCursor



是否开启 server-side-cursor.



默认false



注意游标功能必须客户端和服务器端同时开启才有效。且目前只支持分库分表场景使用。另外,如果客户端没开,服务器端开启了,运行 prepare statement依旧会损失一小部分性能。具体见 4.4



true or false

maxHeapTableSize



临时表在内存中存储的最大大小,单位byte



默认为4096



临时表在内存中存储的最大大小,超过这个大小会被落盘



整数,大于等于 0

heapTableBufferChunkSize



读 buffer 的 cache的大小



默认等于bufferPoolChunkSize,单位byte



读取临时表临时文件时,读 buffer 的大小



正整数,必须是bufferPoolChunkSize的整数倍
general日志相关参数

enableGeneralLog



是否开启genegral日志



默认为0,关闭



开启后会将所有接收的sql记录在general日志文件中



0:关闭/1:开启

generalLogFile



general日志文件地址;



默认为general/general.log



若配置以'/'开头则作为绝对路径生效,反之,则在homepath后拼接得到最终绝对路径且生效



符合运行系统 文件的命名规范

generalLogFileSize



general日志文件大小;



默认16M



当general.log超过其大小则将会生成yyyy-MM/general-MM-dd-%d.log(默认格式)文件;类似与log4j



正整数

generalLogQueueSize



处理general日志的队列大小



默认4096



涉及内部实现机制;(类似与log4j的AsyncLogger)



正整数且必须为2的次方
sql statistic相关参数

enableStatistic



是否开启全量统计



默认0



是否开启全量统计



1:开启, 0:不开启

enableStatisticAnalysis



是否开启sql对user、table、condition聚合统计



默认为0,即不开启



作为show @@sql.sum.user、show @@sql.sum.table、show @@sql.condition聚合统计的开关



1:开启, 0:不开启

associateTablesByEntryByUserTableSize



sql_statistic_by_associate_tables_by_entry_by_user表的大小



默认1024



超过其大小值,则淘汰溢出的历史数据



整数且大于1

frontendByBackendByEntryByUserTableSize



sql_statistic_by_frontend_by_backend_by_entry_by_user表的大小



默认1024



超过其大小值,则淘汰溢出的历史数据



整数且大于1

tableByUserByEntryTableSize



sql_statistic_by_table_by_user_by_entry表的大小



默认1024



超过其大小值,则淘汰溢出的历史数据



整数且大于1

statisticQueueSize



处理sql statistic的队列大小



默认4096



涉及内部实现机制;(类似与log4j的AsyncLogger)



正整数且必须为2的次方

samplingRate



sql抽样统计的采样率



默认为100,即开启全样统计



samplingRate是个百分数。假如有100条事务进入dble,采样率设置为4,此时从100条事务中随机采样4条,且单个事务中的所有语句都会记录。



[0,100]之间的正整数

sqlLogTableSize



sql log 表格大小



默认1024



超过其大小值,则淘汰最旧的一条事务(在开启事务的情况下,一个事务中可能包含多个sql)



正整数
读写分离相关配置

rwStickyTime



读写分离场景下,主(写)从(读)实例的粘滞时间段



默认1000(ms), 若设置为0,则表示不开启主(写)从(读)实例的粘滞



执行当前读SQL的时间,距离上一次写SQL执行的时间段,没有超过rwStickyTime时间段时,则当前读SQL将会下发至后端主(写)实例.

正整数

district



dble配置所属区域,读写分离本地读场景下使用



默认为null



读写分离本地读场景下读流量转发依据,该参数会和db.xml中dbInstance下的dbDistrict参数匹配



有效字符集



dataCenter



dble配置所属数据中心,读写分离本地读场景下使用



默认为null



读写分离本地读场景下读流量转发依据,该参数会和db.xml中dbInstance下的dbDataCenter参数匹配



有效字符集


堆外内存泄露监控相关

enableMemoryBufferMonitor



是否开启堆外内存泄露监控



0



是否开启堆外内存泄露监控



0表示关闭,1 表示开启



enableMemoryBufferMonitorRecordPool



是否记录连接池的常驻内存



1



是否记录连接池的常驻内存,一般不用修改。该类内存通常被连接池一直持有且不释放,属于正常现象也不属于泄露。如果对观测产生了困扰可关闭



0表示关闭,1 表示开启


审计日志相关参数

enableSqlDumpLog



是否开启审计日志



默认为0,关闭



开启后会记录读写分离(或者分析用户),执行sql下发后端实例的系列信息



0:关闭/1:开启

sqlDumpLogBasePath



审计日志的base路径



默认为sqldump



审计日志的base路径



合法路径



sqlDumpLogFileName



审计日志文件名



默认为sqldump.log



日志文件名,生成日志的相对路径:sqldump/sqldump.log



合法文件名



sqlDumpLogCompressFilePattern



压缩日志文件命名格式



默认为${date:yyyy-MM}/sqldump-%d{MM-dd}-%i.log.gz



如:sqldump/2022-10/sqldump-10-11-1.log.gz(精度为:天)



合法文件名格式



sqlDumpLogOnStartupRotate



重启触发日志翻转



默认为1



每次重启,是否触发翻转;1-是,0-否



1-是,0-否



sqlDumpLogSizeBasedRotate



文件大小上限触发日志翻转



默认为50MB



当sqldump.log文件大小达到50MB,触发日志翻转;单位可以为:KB、MB、GB



合法文件大小



sqlDumpLogTimeBasedRotate



间隔天数,触发日志翻转



默认为1



当设置为1时,则每天会进行日志反转



正整数



sqlDumpLogDeleteFileAge



对过期时间段内的压缩文件进行删除



默认为90d



对过期90天内的压缩文件进行删除,单位可以为:d(天)、h(时)、m(分)、s(秒);(注意,精度单位需要与sqlDumpLogCompressFilePattern保持一致,否者可能不生效;原因:基于log4j2的实现,存在这个现象



合法时间段



sqlDumpLogCompressFilePath



过期的文件压缩匹配



默认为 */sqldump-*.log.gz



匹配 sqlDumpLogCompressFilePath 路径下 且满足sqlDumpLogDeleteFileAge 的文件进行删除



合法路径


tcp相关参数

tcpKeepIdle



启用tcp-keepalive连接检测的连接空闲时间



默认为30s,最大值跟使用的操作系统相关



dble连接如果没有数据发送,多久后会发送Keepalive探测分组,生效条件需要指定版本的jdk,具体可查看2.38章节内容



正整数

tcpKeepInterval



启用tcp-keepalive连接检测的时间间隔



默认为10s,最大值跟使用的操作系统相关



dble连接开启tcp-keepalive探活机制后,前后两次探测之间的时间间隔,生效条件需要指定版本的jdk,具体可查看2.38章节内容



正整数

tcpKeepCount



启用tcp-keepalive检测启用后的最大重试次数



默认3,最大值跟使用的操作系统相关



开启tcp-keepalive探活机制后,关闭一个非正常连接之前的最大重试次数,生效条件需要指定版本的jdk,具体可查看2.38章节内容



正整数

1.2.3 bootstrap.dynamic.cnf

有些参数是可以通过管理命令热生效的,这部分参数会写到bootstrap.dynamic.cnf中,当dble重启时候,会用内部的值替换bootstrap.cnf中对应的值,这些参数是:

enableAlert  
enableSlowLog  
flushSlowLogPeriod  
flushSlowLogSize  
sqlSlowTime  
enableFlowControl  
flowControlLowLevel
flowControlHighLevel
enableGeneralLog  
generalLogFile  
enableStatistic  
associateTablesByEntryByUserTableSize  
frontendByBackendByEntryByUserTableSize  
tableByUserByEntryTableSize  
enableBatchLoadData  
maxRowSizeToFile  
enableMemoryBufferMonitor
xaIdCheckPeriod  
enableSqlDumpLog

1.2.4 配置实例

#encoding=UTF-8
-agentlib:jdwp=transport=dt_socket,server=y,address=8088,suspend=n
-server
-XX:+AggressiveOpts
-Dfile.encoding=UTF-8
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=1984
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.host=127.0.0.1
-Xmx4G
-Xms1G
-XX:MaxDirectMemorySize=2G
#  base config
-DhomePath=.
-DinstanceName=1
# valid for sequenceHandlerType=2 or 3
-DinstanceId=1
-DserverId=xxx1
#-DbindIp=0.0.0.0
#-DserverPort=8066
#-DmanagerPort=9066
#-DmaxCon=1024
#-DNIOFrontRW=4
#-DNIOBackendRW=12
#-DfrontWorker=4
#-DmanagerFrontWorker=2
#-DbackendWorker=12
#-DcomplexQueryWorker=8
#-DwriteToBackendWorker=4


-DfakeMySQLVersion=5.7.11

# serverBacklog size,default 2048
-DserverBacklog=2048

#-DusePerformanceMode=0
# if need out HA
-DuseOuterHa=true

# connection
#-Dcharset=utf8mb4
-DmaxPacketSize=167772160
-DtxIsolation=2
#-Dautocommit=1

#parameter for mysql
#-DgroupConcatMaxLen=1024


# option
#-DuseCompression=1
-DusingAIO=0

-DuseThreadUsageStat=1
#  query time cost statistics
#-DuseCostTimeStat=0
#-DmaxCostStatSize=100
#-DcostSamplePercent=1


# consistency
#  check the consistency of table structure between nodes,default not
-DcheckTableConsistency=0
#  check period, he default period is 60000 milliseconds
-DcheckTableConsistencyPeriod=60000

#  processor check conn
-DprocessorCheckPeriod=1000
-DsqlExecuteTimeout=3000
-DidleTimeout=1800000


#-DbackSocket unit:bytes
#-DbackSocketSoRcvbuf=4194304
#-DbackSocketSoSndbuf=1048576
#-DbackSocketNoDelay=1

#  frontSocket
#-DfrontSocketSoRcvbuf=1048576
#-DfrontSocketSoSndbuf=4194304
#-DfrontSocketNoDelay=1


#  query memory used for per session,unit is M
-DotherMemSize=4
-DorderMemSize=4
-DjoinMemSize=4


#  off Heap unit:bytes
-DbufferPoolChunkSize=32767
-DbufferPoolPageNumber=512
-DbufferPoolPageSize=2097152
#-DmappedFileSize=2097152

#  transaction log
#  1 enable record the transaction log, 0 disable ,the unit of transactionRotateSize is M
-DrecordTxn=0
#-DtransactionLogBaseDir=/txlogs
#-DtransactionLogBaseName=server-tx
#-DtransactionRotateSize=16
#  XA transaction
#  use XA transaction ,if the mysql service crash,the unfinished XA commit/rollback will retry for several times , it is the check period for ,default is 1000 milliseconds
-DxaSessionCheckPeriod=1000
#  use XA transaction ,the finished XA log will removed. the default period is 1000 milliseconds
-DxaLogCleanPeriod=1000
#  XA Recovery Log path
# -DxaRecoveryLogBaseDir=/xalogs/
#  XA Recovery Log name
#-DxaRecoveryLogBaseName=xalog
#  XA Retry count, retry times in backend, 0 means always retry until success
#-DxaRetryCount=0

#-DviewPersistenceConfBaseDir=/viewPath
#-viewPersistenceConfBaseName=viewJson

#  for join tmp results
#-DmergeQueueSize=1024
#-DorderByQueueSize=1024
#-DjoinQueueSize=1024


#  true is use JoinStrategy, default false
#-DuseJoinStrategy=true
#-DjoinStrategyType=-1
-DnestLoopConnSize=4
-DnestLoopRowsSize=2000


#  if enable the slow query log
-DenableSlowLog=1
#  the slow query log location
#-DslowLogBaseDir=./slowlogs
#-DslowLogBaseName=slow-query
#  the max period for flushing the slow query log from memory to disk  after last time , unit is second
-DflushSlowLogPeriod=1
#  the max records for flushing the slow query log from memory to disk after last time
-DflushSlowLogSize=1000
#  the threshold for judging if the query is slow , unit is millisecond
-DsqlSlowTime=100

#  used for load data,maxCharsPerColumn means max chars length for per column when load data
#-DmaxCharsPerColumn=65535
#  used for load data, because dble need save to disk if loading file contains large size
#-DmaxRowSizeToFile=100000
if enable the batch load data
#-DenableBatchLoadData=1
#enableFlowControl=false
#-DflowControlHighLevel=4194304
#-DflowControlLowLevel=262144

#  if enable the general log
#-DenableGeneralLog=1
#  general log file path
#-DgeneralLogFile=general/general.log
#  maximum value of file, unit is mb
#-DgeneralLogFileSize=16
#  the queue size must not be less than 1 and must be a power of 2
#-DgeneralLogQueueSize=4096

#  if enable statistic sql
#-DenableStatistic=1
#-DenableStatisticAnalysis=0
#-DassociateTablesByEntryByUserTableSize=1024
#-DfrontendByBackendByEntryByUserTableSize=1024
#-DtableByUserByEntryTableSize=1024
#  processing queue size must not be less than 1 and must be a power of 2
#-DstatisticQueueSize=4096
# samplingRate
#-DsamplingRate=100
# size of sql log table
#-DsqlLogTableSize=1024
#-DmaxResultSet=524288

#-DinSubQueryTransformToJoin=false
#For rwSplitUser, Implement stickiness for read and write instances, the default value is 1000ms
#-DrwStickyTime=1000

# if enable frontend connection activity ratio statistics
#-DenableSessionActiveRatioStat=1
# if enable frontend connection and backend connection are associated with threads
#-DenableConnectionAssociateThread=1
#-Ddistrict=
#-DdataCenter=
#-DxaIdCheckPeriod=300

#  whether enable the memory buffer monitor
#-DenableMemoryBufferMonitor=0
#-DenableMemoryBufferMonitorRecordPool=1


#-DenableSqlDumpLog=0
#-DsqlDumpLogBasePath=sqldump
#-DsqlDumpLogFileName=sqldump.log
#-DsqlDumpLogCompressFilePattern=${date:yyyy-MM}/sqldump-%d{MM-dd}-%i.log.gz
#-DsqlDumpLogOnStartupRotate=1
#-DsqlDumpLogSizeBasedRotate=50MB
#-DsqlDumpLogTimeBasedRotate=1
#-DsqlDumpLogDeleteFileAge=90d
#-DsqlDumpLogCompressFilePath=*/sqldump-*.log.gz

#-DtcpKeepIdle=30
#-DtcpKeepInterval=10
#-DtcpKeepCount=3

results matching ""

    No results matching ""