【SequoiaDB|巨杉数据库】 同步日志

本文详细介绍了SequoiaDB数据库的日志同步机制,包括日志文件管理、同步原理、全量同步触发条件及如何调整日志配置以减少全量同步。重点讲解了如何调整日志文件大小和数量,以及避免全量同步的最佳实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【SequoiaDB|巨杉数据库】 同步日志
日志文件
SequoiaDB 采用日志方式进行副本间的数据同步。日志文件存在于 replicalog 目录中。文件大小和个数可以分别通过 logfilesz 和 logfilenum 参数进行设置。默认分别为 64MB(不包含头大小)和 20。参数生效后无法修改。(如果要修改必须离线删除全部日志文件,重新配置参数并启动 SequoiaDB。但此举通常会引起全量同步。)

同步
数据组内所有备节点会定期将其他数据节点日志打包下载到本地进行日志回放。同步源并不限于主节点。因为我们期望所有节点的数据版本差距在一个很小的窗口内。当处于这个窗口内时,所有备节点向主节点同步数据。但是当某些节点的数据版本与主节点相差过大时,则选择其他备节点进行同步。当发生版本冲突时,以当前主节点数据版本为准。如果冲突不能解决则进入全量同步。当组内不存在主节点时,同步无法进行。

全量同步
触发全量同步的原因有:

宕机重启。
节点数据版本与其他节点相差过大。
数据不一致并且无法修复。
Note:

正常重启后,如果数据版本仍在可同步范围内则不会触发全量同步。

发生全量同步的节点会清空本地所有数据及日志,同时将组内另一个节点(不限于主节点)的数据全部复制到本地。期间同步源发生的数据改变同样会被复制到本地。全量同步期间本节点对外不提供服务。当组内不存在主节点时,全量同步无法进行。全量同步会极大地影响整个组的性能,甚至导致其他备节点同步性能降低。建议通过增加分区及日志容量来避免全量同步。

配置同步日志参数
关闭要修改配置的节点11820。

$ sdbstop -p 11820
进入该节点目录,删除replicalog 目录。

$ cd /opt/sequoiadb/database/data/11820
$ rm -rf replicalog/
进入该节点的配置文件所在位置,重新配置参数。将 logfilesz 设为70, logfilenum 设为30。如果没有 logfilesz 和 logfilenum ,请添加 logfilesz =70, logfilenum =30这两行。

$ cd /opt/sequoiadb/conf/local/11820
$ vim sdb.conf
配置文件内容如下:


logfilesz=70
logfilenum=30

重新启动节点。

$ sdbstart -p 11820
连接协调节点11810,使用快照查看节点11820的配置参数。

var db=new Sdb(“localhost”,11810)
db.snapshot(SDB_SNAP_CONFIGS,{“svcname”:“11820”},{“logfilesz”:"",“logfilenum”:""})
{
“logfilesz”: 70,
“logfilenum”: 30
}

更多内容请点击
同步日志
日志文件
SequoiaDB 采用日志方式进行副本间的数据同步。日志文件存在于 replicalog 目录中。文件大小和个数可以分别通过 logfilesz 和 logfilenum 参数进行设置。默认分别为 64MB(不包含头大小)和 20。参数生效后无法修改。(如果要修改必须离线删除全部日志文件,重新配置参数并启动 SequoiaDB。但此举通常会引起全量同步。)

同步
数据组内所有备节点会定期将其他数据节点日志打包下载到本地进行日志回放。同步源并不限于主节点。因为我们期望所有节点的数据版本差距在一个很小的窗口内。当处于这个窗口内时,所有备节点向主节点同步数据。但是当某些节点的数据版本与主节点相差过大时,则选择其他备节点进行同步。当发生版本冲突时,以当前主节点数据版本为准。如果冲突不能解决则进入全量同步。当组内不存在主节点时,同步无法进行。

全量同步
触发全量同步的原因有:

宕机重启。
节点数据版本与其他节点相差过大。
数据不一致并且无法修复。
Note:

正常重启后,如果数据版本仍在可同步范围内则不会触发全量同步。

发生全量同步的节点会清空本地所有数据及日志,同时将组内另一个节点(不限于主节点)的数据全部复制到本地。期间同步源发生的数据改变同样会被复制到本地。全量同步期间本节点对外不提供服务。当组内不存在主节点时,全量同步无法进行。全量同步会极大地影响整个组的性能,甚至导致其他备节点同步性能降低。建议通过增加分区及日志容量来避免全量同步。

配置同步日志参数
关闭要修改配置的节点11820。

$ sdbstop -p 11820
进入该节点目录,删除replicalog 目录。

$ cd /opt/sequoiadb/database/data/11820
$ rm -rf replicalog/
进入该节点的配置文件所在位置,重新配置参数。将 logfilesz 设为70, logfilenum 设为30。如果没有 logfilesz 和 logfilenum ,请添加 logfilesz =70, logfilenum =30这两行。

$ cd /opt/sequoiadb/conf/local/11820
$ vim sdb.conf
配置文件内容如下:


logfilesz=70
logfilenum=30

重新启动节点。

$ sdbstart -p 11820
连接协调节点11810,使用快照查看节点11820的配置参数。

var db=new Sdb(“localhost”,11810)
db.snapshot(SDB_SNAP_CONFIGS,{“svcname”:“11820”},{“logfilesz”:"",“logfilenum”:""})
{
“logfilesz”: 70,
“logfilenum”: 30
}

更多内容请点击

帮助文档
快捷键目录标题文本样式列表链接代码片表格注脚注释自定义列表LaTeX 数学公式插入甘特图插入UML图插入Mermaid流程图插入Flowchart流程图插入类图
目录复制

这里写目录标题

一级目录

二级目录

三级目录

Markdown 1209 字数 51 行数 当前行 50, 当前列 8 文章已保存17:09:03HTML 1129 字数 37 段落

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值