文档中心

配置项参数

参数说明

参数名 缩写 类型 生效类型 生效策略 说明
--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,读稳定性。
--translockwait boolean 在线生效 下一次事务中生效 1. 指定事务在RC隔离级别下记录锁的等待行为,默认是false。需要与transisolation配合使用
2. 取值列表:
● false: 不等待记录锁,直接从系统读取最后一次提交的版本。
● true: 等待记录锁,读取最新提交版本的数据
--transautocommit boolean 在线生效 下一次事务中生效 是否开启自动事务提交,默认是false。只有当 transaction 开启时取值才会生效。
--transautorollback boolean 在线生效 下一次事务中生效 1.事务操作失败是否自动回滚该事务。默认为true。只有当 transaction 开启时取值才会生效。
--transuserbs boolean 在线生效 下一次事务中生效 事务操作是否使用回滚段。默认为true。只有当 transaction 开启时取值才会有效。
--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 在线生效 慢查询监控的阈值,单位:毫秒,默认为300。
--mongroupmask str 在线生效 用于设置监控组的详细监控级别的掩码。
1. 格式为'groupname':'loglevel', 多组之间使用'|'作为分隔符。
2. 有效的组值为“slowQuery”或者”all”,分别表示监控慢查询组和所有组。
3. 有效的监控级别可以为“off”,“basic”或者“detail”。
4. 有效取值列表包括:"all:off", "all:basic", "all:detail", "slowQuery:off", "slowQuery:basic" 和 "slowQuery:detail"。
5. 默认值为“all:off”。
--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 服务。
--indexcoveron boolean 在线生效 开启覆盖索引功能,默认为true。

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:
1. 当两种方式并存时,命令行参数将会覆盖配置文件中的相同的配置项。

配置动态生效

使用 updateConf() 以及 deleteConf() 在线修改配置。

使用 reloadConf() 重新加载配置文件,并进行配置动态生效,只支持“生效类型”列为“在线生效”的配置项,其他配置项会被忽略。“生效策略”若无其他说明,则默认为立即生效。

回到顶部