数据库配置

参数说明

参数名缩写类型生效类型生效策略说明
—dbpath-dstr1. 指定数据文件存放路径。2. 如果不指定,则默认为当前路径。
—indexpath-istr1. 指定索引文件存放路径。2. 如果不指定,则默认与’dbpath’相同。
—confpath-cstr1. 指定配置文件路径(不包含文件名),系统会在confpath下寻找sdb.conf。
2. sdb.conf中填入需要的配置项,配制方法为:参数名 = 参数值。如 svcname=11810;diaglevel=3
3. 如果不指定此参数,系统默认在当前路径寻找sdb.conf。
4. sdb.conf可以不存在。
—logpath-lstr1. 副本节点在进行数据同步时会生成同步日志。此参数用来指定同步日志的路径。
2. 如果不指定,则默认路径为:数据文件路径/replicalog
—diagpathstr重启生效1. 指定诊断日志存放目录。
2. 如果不指定,则默认为:数据文件路径/diaglog
—auditpathstr重启生效1. 指定审计日志存放目录。
2. 如果不指定,则默认为:数据文件路径/diaglog
—diagnumnum在线生效当前文件写满时生效1. 指定诊断日志文件最大数量。
2. 如果不指定,则默认为:20,-1表示不限制,取值范围[-1, 231 - 1]。
—auditnumnum在线生效当前文件写满时生效1. 指定审计日志文件最大数量。
2. 如果不指定,则默认为:20,-1表示不限制,取值范围[-1, 231 - 1]。
—bkuppathstr1. 指定备份文件生成目录。
2. 如果不指定,则默认为:数据文件路径/bakfile
—maxpoolnum在线生效1. 指定线程池内线程数量。
2. 如果不指定,则默认为50,取值范围是[0,10000]。
—svcname-pstr1. 指定本地服务端口。
2. 如果不指定则默认为11810端口用于协调节点,11800用于编目节点,11820用于数据节点。
—replname-rstr1. 指定数据同步平面端口。
2. 如果不指定则默认为svcname+1。
—shardname-astr1. 指定shard平面端口。
2. 如果不指定则默认为svcname+2。
—catalogname-xstr1. 指定catalog平面端口。
2. 如果不指定则默认为svcname+3。
—httpname-sstr1. 指定http端口。
2. 如果不指定则默认为svcname+4。
—diaglevel-vnum在线生效1. 指定诊断日志打印级别。SequoiaDB中诊断日志从0-5分别代表:SEVERE, ERROR, EVENT, WARNING, INFO, DEBUG。
2. 如果不指定,则默认为WARNING。
—auditmaskstr在线生效新连接生效1. 指定审计日志打印掩码。SequoiaDB中审计日志类型有:ACCESS,CLUSTER,SYSTEM,DML,DDL,DCL,DQL,INSERT,DELETE,UPDATE,OTHER。
2. 如果不指定,则默认为”SYSTEM|DDL|DCL”, ALL取值表示开启所有,NONE关闭全部。
—role-ostr1. 指定服务角色。SequoiaDB分别以data/coord/catalog/standalone代表:数据节点/协调节点/编目节点/单机。
2. 如果不指定则默认为单机。
—catalogaddr-tstr1. 指定编目节点的地址。配置形式为”hostname1:catalogname1,hostname2:catalogname2,…”。
2. 需要至少指定一个编目节点的地址。
—logfilesz-fnum1. 指定同步日志文件的大小。合法输入为64(MB)- 2048(MB)。
2. 如果不指定,则默认为64(MB)。
3. 同步日志的总大小(logfilesz * logfilenum)决定了在同步过程中的容错能力,日志越大则触发全量同步的可能性越小。
—logfilenum-nnum1. 指定同步日志文件的数量。
2. 如果不指定,则默认为20。
—transactionon-eboolean重启生效1. 指定是否打开事务。
2. 如果不指定,则默认为true。
—transactiontimeoutnum在线生效1. 事务锁等待超时时间(单位:秒),默认为:60,取值范围[0,3600]
—numpreloadnum重启生效页面预加载代理数据,默认值为0,取值范围:[0,100]
—maxprefpoolnum重启生效数据预取代理池最大数量,默认值:0,取值范围:[0,1000]
—maxreplsyncnum在线生效日志同步最大并发数量,默认值:10,取值范围:[0,200], 0表示不启用日志并发同步
—logbuffsizenum重启生效复制日志内存页面数,默认值:1024,取值范围:[512,1024000],但日志总内存大小不能超过日志总文件大小;每个页面大小为64KB
—tmppathstr重启生效数据库临时文件目录,默认为’数据库路径’+’/tmp’
—sortbufnum在线生效下次查询生效排序缓存大小(MB),默认值256,最小值128,取值范围[128, 231 - 1]
—hjbufnum在线生效下次查询生效哈希连接缓存大小(MB),默认值128,最小值64,取值范围[64, 231 - 1]
—syncstrategystr在线生效1. 副本组之间数据同步控制策略。
2. 取值列表:
● none: 不开启同步控制策略。若主节点处理数据的能力远超备节点同步数据的能力,则在写操作繁忙的场景下易导致备节点发生全量同步。
● keepnormal: 主动降低主节点相对于正常节点的处理速度(可能会造成性能影响),以避免全量同步的发生。
● keepall: 主动降低主节点相对于所有节点的处理速度(可能会造成性能影响),以避免全量同步的发生。
3. keepnormal和keepall的区别在于,当有节点异常时keepall会降低主节点的处理速度,而keepnormal不受异常节点的影响。
4. 如果不指定,默认为keepnormal。
—preferedinstancestr在线生效新连接生效1. 指定执行读请求时优先选择的实例
2. 如果不指定,则默认值为M,即选择可读写实例。
3. 取值列表:
● “M”, “m”: 可读写实例(主实例);如果多个 1-255 的实例和 “M” 一起指定,则满足指定实例中的主实例会优先选择;如果多个 1-255 的实例和 “M” 或 “m” 一起指定,则当没有满足指定的实例时选择主实例。
● “S”, “s”: 只读实例(备实例);如果多个 1-255 的实例和 “S” 一起指定,则满足指定实例中的备实例会被优先选择;如果多个 1-255 的实例和 “S” 或 “s” 一起指定,则当没有满足指定的实例时选择备实例。
● “A”, “a”: 任意实例。
● 1-255: 通过 —instanceid 指定实例 ID 的实例。
● 如果指定多个 “M”, “m”, “S”, “s”, “A”, “a” 实例,则只有第一个生效。
4. 如果没有匹配的实例,将随机选择。
5. 可以使用 ‘,’ 连接多个值。连接多值时字符串最大长度为 256。
—preferedinstancemodestr在线生效新连接生效1. 指定当多个实例符合 —preferedinstance 的条件时的选择模式。
2. 取值列表:
● “random”: 从候选的实例中随机选择。
● “ordered”: 从候选的实例中按照 —perferedinstance 的顺序进行选择。
—preferedstrictboolean在线生效新连接生效指定节点选择是否为严格模式,当为严格模式时,节点只能从 preferedinstance 指定的ID中选取,默认为false。
—instanceidnum重启生效1. 节点的实例 ID,用于 —preferedinstance 进行实例选择。
2. 有效的取值包括 [1, 255]。
3. 如不指定,或者指定超出有效范围,则按照节点在编目信息中的下标进行自动分配。
4. 多个节点可以指定相同的实例 ID。
—lobpathstr1. 指定大对象存放路径。
2. 如果不指定,则默认为:数据文件路径
—lobmetapathstr1. 指定大对象元数据存放路径。
2. 如果不指定,则默认与’lobpath’保持一致
—directioinlobboolean在线生效新建集合空间生效在大对象功能中关闭文件系统缓存,如果不指定,默认值为”false”
—sparsefileboolean在线生效当扩展文件时,使用稀疏文件功能,如果不指定,默认值为”false”
—weightnum在线生效节点选举权重, 默认值为10, 取值范围[1, 100]
—usesslboolean在线生效新连接生效允许客户端使用SSL连接(仅限企业版),默认为false
—authboolean在线生效开启鉴权功能.默认为true
—planbucketsnum在线生效下次查询生效1. 访问计划缓存内桶的个数。
2. 当其为0时数据库将不会缓存任何访问计划。
3. 默认为500,最大值为4096。
4. SequoiaDB 内部自动向上取整为 0, 128, 256, 512, 1024, 2048, 4096。
5. 每个桶中平均最多可以放置 3 个访问计划缓存。
—optimeoutnum在线生效判定操作中断的时间(ms),默认值:60000, 0表示不超时,取值范围[0, 231 - 1]
—overflowrationum在线生效记录大小预留空间扩展比(%),默认为12,取值范围:[0,10000]
—omaddrstr1. 指定om节点的地址。配置形式为”hostname:omservicename”。
—maxcachesizenum在线生效节点缓存最大值,单位为MB,默认值为0,取值范围[0, 231 - 1](注意:该配置目前仅对Lob功能生效)
—maxcachejobnum在线生效1. 后台缓存任务线程的最大数量,默认值为10,取值范围为[2, 200]。
2. 后台缓存任务线程主要执行同步脏页至文件,回收和释放空闲内存页。
3. 后台缓存任务线程根据缓存的负载情况自动启动和退出。
4. 该配置目前仅对Lob功能生效。
—cachemergesznum在线生效每一个集合空间用于合并页的缓存大小,默认为0,取值范围:[0,64],单位为MB(注意:该配置目前仅对Lob功能生效)
—pagealloctimeoutnum在线生效申请缓存页的超时时间,默认为0,取值范围:[0,3600000],单位为毫秒
—maxsyncjobnum在线生效1. 后台数据同步任务线程的最大数量,默认值为10,取值范围为[2, 200]。
2. 后台数据同步任务线程主要执行同步脏数据和日志至文件。
3. 后台数据同步任务线程根据负载情况自动启动和退出。
—syncintervalnum在线生效1. 后台数据同步周期,单位毫秒。
2. 对于编目节点和om节点,默认值为10000,取值范围(0, 60000]
3. 对于其它类型的节点,默认值为10000,0表示不按周期触发数据同步,取值范围[0, 231 - 1]
—syncrecordnumnum在线生效1. 后台数据同步触发记录数。
2. 对于编目节点和om节点,默认值为10,取值范围(0, 1000]
3. 对于其它类型的节点,默认值为0,0表示不按记录数触发数据同步,取值范围[0, 231 - 1]
—syncdeepboolean在线生效1. 数据同步是否开启深度刷盘。
2. 如果不指定,则默认为false。
—archiveonboolean重启生效开启复制日志归档功能,默认值为false。
—archivecompressonboolean在线生效新归档文件生效开启复制日志归档压缩功能,默认值为true。
—archivepathstr1. 此参数用来指定归档日志的路径。
2. 如果不指定,则默认路径为:数据文件路径/archivelog。
—archivetimeoutnum在线生效判定未归档的超时时间(秒),默认值:600,0表示不超时, 取值范围[0, 231 - 1]。
—archiveexpirednum在线生效归档日志文件的过期时间(小时),默认值:240,0表示不过期, 取值范围[0, 11930464]。
—archivequotanum在线生效归档日志目录的磁盘配额(GB),默认值:10,0表示没有限制,取值范围[0, 231 - 1]。
—dataerroropnum在线生效1. 节点在无法继续正常增量同步而可能触发全量同步时的处理操作,取值为 0/1/2。 缺省为1。
2. 取值列表:
● 0: 不作任何处理,保持节点运行。
● 1: 自动从该数据组的其它节点进行全量同步。
● 2: 该节点停止运行。
—maxconnnum在线生效指定允许连接到引擎的客户端的最大数量,取值范围为[0,30000], 默认值是0,0表示不限制
—plancachelevelnum在线生效下次查询生效1. 指定查询计划的缓存级别,默认是 3。
2. 取值列表:
● 0: 不缓存查询计划。
● 1: 缓存原查询计划。
● 2: 缓存泛化后的查询计划。
● 3: 缓存参数化的查询计划。
● 4: 缓存参数化并带操作符模糊匹配的查询计划。
—svcschedulernum重启生效1. 指定任务调度器类型,默认是0。
2. 取值列表:
● 0: 不开启。
● 1: 先入先出。
● 2: 基于优先级调度。
● 3: 基于容器调度。
—svcmaxconcurrencynum在线生效1. 指定任务执行的最大并发数,0表示不限制。默认值为100,取值范围[0, 231 - 1]。
2. 当’svcscheduler’取值为0时,该参数不生效。
—transisolationnum在线生效下一次事务中生效1. 指定事务隔离级别,默认是0。
2. 取值列表:
● 0: RU,读未提交。
● 1: RC, 读已提交。
● 2: RS,读稳定性。
—translockwaitboolean在线生效下一次事务中生效1. 指定事务在RC隔离级别下记录锁的等待行为,默认是false。需要与transisolation配合使用
2. 取值列表:
● false: 不等待记录锁,直接从系统读取最后一次提交的版本。
● true: 等待记录锁,读取最新提交版本的数据
—transautocommitboolean在线生效下一次事务中生效是否开启自动事务提交,默认是false。只有当 transaction 开启时取值才会生效。
—transautorollbackboolean在线生效下一次事务中生效1.事务操作失败是否自动回滚该事务。默认为true。只有当 transaction 开启时取值才会生效。
—transuserbsboolean在线生效下一次事务中生效事务操作是否使用回滚段。默认为true。只有当 transaction 开启时取值才会有效。
—transrccountboolean在线生效下一次事务中生效是否使用读已提交来处理 count() 查询。默认为 true。只有当 transaction 开启时,且隔离级别为读已提交 RC 或者读稳定性 RS,取值才会有效。
—logwritemodstr在线生效复制日志写模式,取值:increment,full,默认为increment。为increment时,复制日志只保存更新记录的增量信息;为full时,复制日志将保存更新记录的完整信息。
—logtimeonboolean在线生效开启复制日志保存时间信息功能,默认为false。
—maxsocketpernode在线生效两个节点之间的最大连接数,取值范围:[1,100],默认为5。
—maxsocketperthread在线生效一个线程驱动最大连接数,0表示不限制,默认为1。
—maxsocketthread在线生效通信最大驱动线程数,取值范围[1,100],默认10。
—monslowquerythreshold在线生效单位:ms。默认为200。
—mongroupmaskstr在线生效
—mvccon-eboolean重启生效1. 指定是否打开多版本。
2. 如果不指定,则默认为false。
3. 只有当 transactionon 开启时,取值才会有效。

Note:
1. “生效类型”为在线生效的配置能进行在线修改,不需要重启就能生效。
2. “生效类型”为重启生效的配置能进行在线修改,需要重启后生效。
3. “生效类型”为空的配置不能进行在线修改。同步日志参数 logfilesz 和 logfilenum 虽然不能在线修改配置,但是可以通过特殊方式进行修改,请参考同步日志

参数配置

SequoiaDB支持命令行方式及配置文件方式进行参数配置。

命令行方式配置

在启动sequoiadb时传入配置参数值:

  1. $ ./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时传入配置文件路径:

  1. $ ./sequoiadb -c ../conf/local/50000/

配置文件内容如下:

  1. businessname=yyy
  2. catalogaddr=ubuntu-wjm:30003,ubuntu-wjm:30013,ubuntu-wjm:30023
  3. clustername=xxx
  4. dbpath=/home/users/wjm/sequoiadb/trunk/50000
  5. diaglevel=3
  6. role=coord
  7. svcname=50000

Note:
1. 当两种方式并存时,命令行参数将会覆盖配置文件中的相同的配置项。

配置动态生效

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

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