数据库参数配置
参数说明
参数名 | 缩写 | 类型 | 生效类型 | 生效策略 | 说明 |
---|---|---|---|---|---|
—dbpath | -d | str | 1. 指定数据文件存放路径。2. 如果不指定,则默认为当前路径。 | ||
—indexpath | -i | str | 1. 指定索引文件存放路径。2. 如果不指定,则默认与’dbpath’相同。 | ||
—confpath | -c | str | 1. 指定配置文件路径(不包含文件名),系统会在confpath下寻找sdb.conf。 2. sdb.conf中填入需要的配置项,配制方法为:参数名 = 参数值。如 svcname=11810;diaglevel=3 3. 如果不指定此参数,系统默认在当前路径寻找sdb.conf。 4. sdb.conf可以不存在。 | ||
—logpath | -l | str | 1. 副本节点在进行数据同步时会生成同步日志。此参数用来指定同步日志的路径。 2. 如果不指定,则默认路径为:数据文件路径/replicalog | ||
—diagpath | str | 重启生效 | 1. 指定诊断日志存放目录。 2. 如果不指定,则默认为:数据文件路径/diaglog | ||
—auditpath | str | 重启生效 | 1. 指定审计日志存放目录。 2. 如果不指定,则默认为:数据文件路径/diaglog | ||
—diagnum | num | 在线生效 | 当前文件写满时生效 | 1. 指定诊断日志文件最大数量。 2. 如果不指定,则默认为:20,-1表示不限制,取值范围[-1, 231 - 1]。 | |
—auditnum | num | 在线生效 | 当前文件写满时生效 | 1. 指定审计日志文件最大数量。 2. 如果不指定,则默认为:20,-1表示不限制,取值范围[-1, 231 - 1]。 | |
—bkuppath | str | 1. 指定备份文件生成目录。 2. 如果不指定,则默认为:数据文件路径/bakfile | |||
—maxpool | num | 在线生效 | 1. 指定线程池内线程数量。 2. 如果不指定,则默认为50,取值范围是[0,10000]。 | ||
—svcname | -p | str | 1. 指定本地服务端口,用于对客户端提供服务。 2. 协调节点默认端口为 11810,编目节点默认端口为 11800,数据节点默认端口为 11820。 | ||
—replname | -r | str | 1. 指定数据复制服务端口,默认端口为 svcname+1。 2. 该参数只对编目节点和数据节点有效。 | ||
—shardname | -a | str | 指定数据分区服务端口,默认端口为 svcname+2 | ||
—catalogname | -x | str | 1. 指定编目服务端口,默认端口为 svcname+3。 2. 该参数只对编目节点有效。 | ||
—httpname | -s | str | 指定 HTTP 服务端口,默认端口为 svcname+4 | ||
—diaglevel | -v | num | 在线生效 | 1. 指定诊断日志打印级别。SequoiaDB中诊断日志从0-5分别代表:SEVERE, ERROR, EVENT, WARNING, INFO, DEBUG。 2. 如果不指定,则默认为WARNING。 | |
—auditmask | str | 在线生效 | 新连接生效 | 1. 指定审计日志打印掩码。SequoiaDB中审计日志类型有:ACCESS,CLUSTER,SYSTEM,DML,DDL,DCL,DQL,INSERT,DELETE,UPDATE,OTHER。 2. 如果不指定,则默认为”SYSTEM|DDL|DCL”, ALL取值表示开启所有,NONE关闭全部。 3. 更详细的内容可参考审计日志 | |
—role | -o | str | 1. 指定服务角色。SequoiaDB分别以data/coord/catalog/standalone代表:数据节点/协调节点/编目节点/单机。 2. 如果不指定则默认为单机。 | ||
—catalogaddr | -t | str | 1. 指定编目节点的地址。配置形式为”hostname1:catalogname1,hostname2:catalogname2,…”。 2. 需要至少指定一个编目节点的地址。 | ||
—logfilesz | -f | num | 1. 指定同步日志文件的大小。合法输入为64(MB)- 2048(MB)。 2. 如果不指定,则默认为64(MB)。 3. 同步日志的总大小(logfilesz * logfilenum)决定了在同步过程中的容错能力,日志越大则触发全量同步的可能性越小。 | ||
—logfilenum | -n | num | 1. 指定同步日志文件的数量。 2. 如果不指定,则默认为20。 | ||
—transactionon | -e | boolean | 重启生效 | 1. 是否开启事务功能。默认为true 2. 当开启事务功能,’logfilenum’ 必须大于1。 | |
—transactiontimeout | num | 在线生效 | 1. 事务锁等待超时时间(单位:秒),默认为:60,取值范围[0,3600] | ||
—numpreload | num | 重启生效 | 页面预加载代理数据,默认值为0,取值范围:[0,100] | ||
—maxprefpool | num | 重启生效 | 数据预取代理池最大数量,默认值:0,取值范围:[0,1000] | ||
—maxreplsync | num | 在线生效 | 日志同步最大并发数量,默认值:10,取值范围:[0,200], 0表示不启用日志并发同步 | ||
—logbuffsize | num | 重启生效 | 复制日志内存页面数,默认值:1024,取值范围:[512,1024000],但日志总内存大小不能超过日志总文件大小;每个页面大小为64KB | ||
—tmppath | str | 重启生效 | 数据库临时文件目录,默认为’数据库路径’+’/tmp’ | ||
—sortbuf | num | 在线生效 | 下次查询生效 | 排序缓存大小(MB),默认值256,最小值128,取值范围[128, 231 - 1] | |
—hjbuf | num | 在线生效 | 下次查询生效 | 哈希连接缓存大小(MB),默认值128,最小值64,取值范围[64, 231 - 1] | |
—syncstrategy | str | 在线生效 | 1. 副本组之间数据同步控制策略。 2. 取值列表: ● none: 不开启同步控制策略。若主节点处理数据的能力远超备节点同步数据的能力,则在写操作繁忙的场景下易导致备节点发生全量同步。 ● keepnormal: 主动降低主节点相对于正常节点的处理速度(可能会造成性能影响),以避免全量同步的发生。 ● keepall: 主动降低主节点相对于所有节点的处理速度(可能会造成性能影响),以避免全量同步的发生。 3. keepnormal和keepall的区别在于,当有节点异常时keepall会降低主节点的处理速度,而keepnormal不受异常节点的影响。 4. 如果不指定,默认为keepnormal。 | ||
—preferedinstance | str | 在线生效 | 新连接生效 | 1. 指定执行读请求时优先选择的实例 2. 如果不指定,则默认值为M,即选择可读写实例。 3. 取值可以取单值单独指定,也可以取多值混合指定;在 SequoiaDB 的配置文件中可以使用 ‘,’ 连接多个值。连接多值时字符串最大长度为 256。如:”1,2,S”。 4. 取值范围: ● 取值类型分为两类,一类是角色取值,如 “M”, “S” 等;一类是实例取值,即数据节点通过配置 instanceid 设置的实例 ID。 ● 角色取值:”M”, “m”:可读写实例(主实例);”S”, “s”: 只读实例(备实例);”A”, “a”: 任意角色实例。 ● 实例取值:1-255,指定匹配 instanceid 设置的节点。数据节点可以通过配置 instanceid 配合使用。 5. 更详细的内容请参考 db.setSessionAttr()。 | |
—preferedinstancemode | str | 在线生效 | 新连接生效 | 1. 指定当多个实例符合 preferedinstance 的条件时的选择模式。 2. 取值列表: ● “random”: 从候选的实例取值中随机选择。 ● “ordered”: 从候选的实例取值中按照 perferedinstance 的顺序进行选择。 ● preferedinstance 中的角色取值,根据规则选择时优于或者次于实例取值,与 preferedinstancemode 取值无关。 3. 默认值为 “random”。 4. 更详细的内容请参考 db.setSessionAttr()。 | |
—preferedstrict | boolean | 在线生效 | 新连接生效 | 指定节点选择是否为严格模式,当为严格模式时,节点只能从 preferedinstance 指定的ID中选取,默认为false。 | |
—preferedperiod | num | 在线生效 | 新连接生效 | 1. 优先实例的有效周期,单位为秒。 2. 如果上一次选择进行请求的节点在有效周期内,读请求仍使用该节点进行查询,周期之后,将根据 preferedinstance 重新选择。 3. 默认值为 60 秒。 4. 取值范围为 [-1, 231 - 1] 5. -1 表示不失效 6. 0 表示本次查询不使用上次选择的实例,根据 preferedinstance 进行重新选择。 | |
—instanceid | num | 重启生效 | 1. 节点的实例 ID,用于 preferedinstance 进行实例选择。 2. 有效的取值包括 [1, 255]。 3. 如不指定,或者指定超出有效范围,则按照节点在编目信息中的下标进行自动分配。 4. 多个节点可以指定相同的实例 ID。 | ||
—lobpath | str | 1. 指定大对象存放路径。 2. 如果不指定,则默认为:数据文件路径 | |||
—lobmetapath | str | 1. 指定大对象元数据存放路径。 2. 如果不指定,则默认与’lobpath’保持一致 | |||
—directioinlob | boolean | 在线生效 | 新建集合空间生效 | 在大对象功能中关闭文件系统缓存,如果不指定,默认值为”false” | |
—sparsefile | boolean | 在线生效 | 当扩展文件时,使用稀疏文件功能,如果不指定,默认值为”false” | ||
—weight | num | 在线生效 | 节点选举权重, 默认值为10, 取值范围[1, 100] | ||
—usessl | boolean | 在线生效 | 新连接生效 | 允许客户端使用SSL连接(仅限企业版),默认为false | |
—auth | boolean | 在线生效 | 开启鉴权功能.默认为true | ||
—planbuckets | num | 在线生效 | 下次查询生效 | 1. 访问计划缓存内桶的个数。 2. 当其为0时数据库将不会缓存任何访问计划。 3. 默认为500,最大值为4096。 4. 更详细的内容可参考 访问计划缓存。 | |
—optimeout | num | 在线生效 | 判定操作中断的时间(ms),默认值:60000, 0表示不超时,取值范围[0, 231 - 1] | ||
—overflowratio | num | 在线生效 | 记录大小预留空间扩展比(%),默认为12,取值范围:[0,10000] | ||
—omaddr | str | 1. 指定om节点的地址。配置形式为”hostname:omservicename”。 | |||
—maxcachesize | num | 在线生效 | 节点缓存最大值,单位为MB,默认值为0,取值范围[0, 231 - 1](注意:该配置目前仅对Lob功能生效) | ||
—maxcachejob | num | 在线生效 | 1. 后台缓存任务线程的最大数量,默认值为10,取值范围为[2, 200]。 2. 后台缓存任务线程主要执行同步脏页至文件,回收和释放空闲内存页。 3. 后台缓存任务线程根据缓存的负载情况自动启动和退出。 4. 该配置目前仅对Lob功能生效。 | ||
—cachemergesz | num | 在线生效 | 每一个集合空间用于合并页的缓存大小,默认为0,取值范围:[0,64],单位为MB(注意:该配置目前仅对Lob功能生效) | ||
—pagealloctimeout | num | 在线生效 | 申请缓存页的超时时间,默认为0,取值范围:[0,3600000],单位为毫秒 | ||
—maxsyncjob | num | 在线生效 | 1. 后台数据同步任务线程的最大数量,默认值为10,取值范围为[2, 200]。 2. 后台数据同步任务线程主要执行同步脏数据和日志至文件。 3. 后台数据同步任务线程根据负载情况自动启动和退出。 | ||
—syncinterval | num | 在线生效 | 1. 后台数据同步周期,单位毫秒。 2. 对于编目节点和om节点,默认值为10000,取值范围(0, 60000] 3. 对于其它类型的节点,默认值为10000,0表示不按周期触发数据同步,取值范围[0, 231 - 1] | ||
—syncrecordnum | num | 在线生效 | 1. 后台数据同步触发记录数。 2. 对于编目节点和om节点,默认值为10,取值范围(0, 1000] 3. 对于其它类型的节点,默认值为0,0表示不按记录数触发数据同步,取值范围[0, 231 - 1] | ||
—syncdeep | boolean | 在线生效 | 1. 数据同步是否开启深度刷盘。 2. 如果不指定,则默认为false。 | ||
—archiveon | boolean | 重启生效 | 开启复制日志归档功能,默认值为false。 | ||
—archivecompresson | boolean | 在线生效 | 新归档文件生效 | 开启复制日志归档压缩功能,默认值为true。 | |
—archivepath | str | 1. 此参数用来指定归档日志的路径。 2. 如果不指定,则默认路径为:数据文件路径/archivelog。 | |||
—archivetimeout | num | 在线生效 | 判定未归档的超时时间(秒),默认值:600,0表示不超时, 取值范围[0, 231 - 1]。 | ||
—archiveexpired | num | 在线生效 | 归档日志文件的过期时间(小时),默认值:240,0表示不过期, 取值范围[0, 11930464]。 | ||
—archivequota | num | 在线生效 | 归档日志目录的磁盘配额(GB),默认值:10,0表示没有限制,取值范围[0, 231 - 1]。 | ||
—dataerrorop | num | 在线生效 | 1. 节点在无法继续正常增量同步而可能触发全量同步时的处理操作,取值为 0/1/2。 缺省为1。 2. 取值列表: ● 0: 不作任何处理,保持节点运行。 ● 1: 自动从该数据组的其它节点进行全量同步。 ● 2: 该节点停止运行。 | ||
—maxconn | num | 在线生效 | 指定允许连接到引擎的客户端的最大数量,取值范围为[0,30000], 默认值是0,0表示不限制 | ||
—plancachelevel | num | 在线生效 | 下次查询生效 | 1. 指定查询计划的缓存级别,默认是 3。 2. 取值列表: ● 0: 不缓存查询计划。 ● 1: 缓存原查询计划。 ● 2: 缓存泛化后的查询计划。 ● 3: 缓存参数化的查询计划。 ● 4: 缓存参数化并带操作符模糊匹配的查询计划。 | |
—svcscheduler | num | 重启生效 | 1. 指定任务调度器类型,默认是0。 2. 取值列表: ● 0: 不开启。 ● 1: 先入先出。 ● 2: 基于优先级调度。 ● 3: 基于容器调度。 | ||
—svcmaxconcurrency | num | 在线生效 | 1. 指定任务执行的最大并发数,0表示不限制。默认值为100,取值范围[0, 231 - 1]。 2. 当’svcscheduler’取值为0时,该参数不生效。 | ||
—transisolation | num | 在线生效 | 下一次事务中生效 | 1. 指定事务隔离级别,默认是0。 2. 取值列表: ● 0: RU,读未提交。 ● 1: RC, 读已提交。 ● 2: RS,读稳定性。 ● 3: RR,可重复读。 | |
—translockwait | boolean | 在线生效 | 下一次事务中生效 | 1. 指定事务在RC隔离级别下记录锁的等待行为,默认是false。需要与transisolation配合使用 2. 当mvccon被设为true时,translockwait 会被默认为false。 3. 取值列表: ● false: 不等待记录锁,直接从系统读取最后一次提交的版本。 ● true: 等待记录锁,读取最新提交版本的数据 | |
—transautocommit | boolean | 在线生效 | 下一次事务中生效 | 是否开启自动事务提交,默认是false。只有当 transaction 开启时取值才会生效。 | |
—transautorollback | boolean | 在线生效 | 下一次事务中生效 | 1.事务操作失败是否自动回滚该事务。默认为true。只有当 transaction 开启时取值才会生效。 | |
—transuserbs | boolean | 在线生效 | 下一次事务中生效 | 1. 事务操作是否使用回滚段。默认为true。只有当 transaction 开启时取值才会有效。 2. 当mvccon被设为true时,transuserbs 会被默认为true。 | |
—transrccount | boolean | 在线生效 | 下一次事务中生效 | 是否使用读已提交来处理 count() 查询。默认为 true。只有当 transaction 开启时,且隔离级别为读已提交 RC 或者读稳定性 RS,取值才会有效。 | |
—logwritemod | str | 在线生效 | 复制日志写模式,取值:increment,full,默认为increment。为increment时,复制日志只保存更新记录的增量信息;为full时,复制日志将保存更新记录的完整信息。 | ||
—logtimeon | boolean | 在线生效 | 开启复制日志保存时间信息功能,默认为false。 | ||
—maxsocketpernode | num | 在线生效 | 两个节点之间的最大连接数,取值范围:[1,100],默认为5。 | ||
—maxsocketperthread | num | 在线生效 | 一个线程驱动最大连接数,0表示不限制,默认为1。 | ||
—maxsocketthread | num | 在线生效 | 通信最大驱动线程数,取值范围[1,100],默认10。 | ||
—monslowquerythreshold | num | 在线生效 | 单位:ms。默认为200。 | ||
—mongroupmask | str | 在线生效 | 用于设置监控组的详细监控级别。有效的组值为“slowQuery”或者”all”。有效的监控级别可以为“off”,“basic”或者“detail”。 | ||
—ftmask | str | 在线生效 | 1. 指定开启容错处理的掩码。SequoiaDB中容错掩码有:NOSPC,DEADSYNC,SLOWNODE 2. 如果不指定,则默认为”NOSPC|DEADSYNC”, ALL取值表示开启所有,NONE关闭全部。 | ||
—ftconfirmperiod | num | 在线生效 | 故障确认的时间周期,默认为60,取值范围:[1,3600],单位为秒 | ||
—ftconfirmratio | num | 在线生效 | 故障确认的故障比阈值,默认为80,取值范围:[1,100],单位为百分比 | ||
—ftlevel | num | 在线生效 | 容错级别,1(熔断), 2(半容错), 3(全容错). 默认为2 | ||
—ftfusingtimeout | num | 在线生效 | 熔断超时时间,默认为10,取值范围:[0,3600],单位:秒 | ||
—ftslownodethreshold | num | 在线生效 | 慢节点检测的日志差阈值,默认:256,取值范围:[1,10000],单位:MB | ||
—ftslownodeincrement | num | 在线生效 | 慢节点检测的日志增量值,默认:8,取值范围:[0,10000],单位:MB | ||
—syncwaittimeout | num | 在线生效 | 数据一致性同步等待超时时间,默认为600,取值范围:[1,3600],单位:秒 | ||
—shutdownwaittimeout | num | 在线生效 | 主数据节点停机时等待备节点数据同步超时时间,默认为1200,取值范围:[0,864000],单位:秒 | ||
—servicemask | str | 重启生效 | 屏蔽服务端口的掩码,取值为 LOCAL、REPL、SHARD、CATALOG 和 HTTP,可以使用’|’连接多个值,默认值为 NONE。 LOCAL:禁用本地服务端口。如果禁用协调节点的本地服务端口,会导致数据库不能为客户端提供服务。 REPL:禁用数据同步服务端口。如果禁用编目节点或数据节点的数据同步服务端口,会导致主节点和备节点数据不一致,通常不应该禁用。 SHARD:禁用数据分区服务端口。如果禁用任一节点的数据分区服务端口,会导致数据操作失败,通常不应该禁用。 CATALOG:禁用编目服务端口。如果禁用编目节点的编目服务端口,会导致节点操作失败、数据操作失败,通常不应该禁用。 HTTP:禁用 HTTP 服务端口。如果禁用节点的 HTTP 服务端口,会导致该节点不能提供 HTTP 服务。 | ||
—mvccon | boolean | 重启生效 | 1. 指定是否打开多版本。 2. 如果不指定,则默认为false。 3. 只有当 transactionon 开启时,取值才会有效。 4. 当mvccon被设为true时,transuserbs 会被默认为true。 5. 当mvccon被设为true时,translockwait 会被默认为false。 | ||
—globtranson | boolean | 重启生效 | 1. 指定是否支持全局事务功能。 2. 如果不指定,则默认值为 false。 3. 只有当 transactionon 开启时,取值才会有效。 4. 全局事务功能要求接入全局时间服务支持,并且数据节点打开 MVCC 支持。 |
Note:
1. “生效类型”为在线生效的配置能进行在线修改,不需要重启就能生效。
2. “生效类型”为重启生效的配置能进行在线修改,需要重启后生效。
3. “生效类型”为空的配置不能进行在线修改。同步日志参数 logfilesz 和 logfilenum 虽然不能在线修改配置,但是可以通过特殊方式进行修改,请参考同步日志。
参数配置
SequoiaDB 支持命令行方式及配置文件方式进行参数配置。
命令行方式配置
在启动 sequoiadb 时传入配置参数值:
$ ./sequoiadb --businessname yyy --catalogaddr ubuntu-wjm:30003,ubuntu-wjm:30013,ubuntu-wjm:30023 --clustername xxx --dbpath /home/users/wjm/sequoiadb/trunk/50000 --diaglevel 3 --role coord --svcname 50000
配置文件方式配置
在启动 sequoiadb 时传入配置文件路径:
$ ./sequoiadb -c ../conf/local/50000/
配置文件内容如下:
businessname=yyy
catalogaddr=ubuntu-wjm:30003,ubuntu-wjm:30013,ubuntu-wjm:30023
clustername=xxx
dbpath=/home/users/wjm/sequoiadb/trunk/50000
diaglevel=3
role=coord
svcname=50000
Note:
当两种方式并存时,命令行参数将会覆盖配置文件中的相同的配置项。
配置动态生效
使用 updateConf() 以及 deleteConf() 在线修改配置。
使用 reloadConf() 重新加载配置文件,并进行配置动态生效,只支持“生效类型”列为“在线生效”的配置项,其他配置项会被忽略。“生效策略”若无其他说明,则默认为立即生效。