巨杉数据库SequoiaDB管理数据节点

新增数据分区组

如果新增节点涉及到新增主机,用户需先按照在集群中新增主机一节完成主机的主机名和参数配置。

一个集群中可以配置多个分区组。通过增加分区组,可以充分利用物理设备进行水平扩展。

  • 操作方法:
  1. 建数据分区组,与编目分区组不同的是,该操作不会创建任何数据节点,其中参数为数据组名:

> var dataRG = db.createRG( "datagroup1" )

 

Note:

更多创建数据分区组的内容,可参考 Sdb.createRG()

2.数据组中新增一个数据节点,可以根据需要多次执行该命令来创建多个数据节点:

> dataRG.createNode( "sdbserver1", 11820, "/opt/sequoiadb/database/data/11820" )

其中:

Note:

更多创建节点的内容,可参考 SdbReplicaGroup.createNode()

  • host:指定数据节点的主机名;

  • service:指定数据节点的服务端口;用户需确保该端口号,以及往后延续的五个端口号未被占用。如设置为11820,请确保11820/11821/11822/11823/11824/11825端口都未被占用;

  • dbpath:数据文件路径用于存放数据节点的数据文件,需确保数据管理员(安装时创建,默认为sdbadmin)用户有写权限;

  • config:该参数为可选参数,用于配置更多细节参数,格式必须为 json 格式,参数参见数据库配置一节;如需要配置日志大小参数{logfilesz:64}。

3.启动数据节点:

> dataRG.start()

分区组中新增节点

如果新增节点涉及到新增主机,用户需按照在集群中新增主机一节完成主机的主机名和参数配置。

某些分区组可能在创建时设定的副本数较少,随着物理设备的增加,可能需要增加副本数以提高分区组数据可靠性。

  • 操作方法:
  1. 取数据分区组,参数 groupname 为数据分区组组名:

> var dataRG = db.getRG( <groupname> )

2.创建一个新的数据节点:

> var node1 = dataRG.createNode( <host>, <service>, <dbpath>, [config] )

3.启动新增的数据节点:

> node1.start()

Note:

创建数据节点组和部署数据节点的详细内容可参考 集群模式

查看数据节点

在 Sdb Shell 中可以查看某个的数据分区组中数据节点的列表,其中参数 groupname 为数据分区组组名:

> db.getRG( <groupname> ).getDetail()

故障恢复

数据节点发生故障后,重新启动时会自动检测数据库目录下 .SEQUOIADB_STARTUP 隐藏文件。

如果该文件存在则说明上次的执行意外终止(例如 kill -9)。对于意外终止的节点,系统会将该数据节点置入崩溃恢复状态。

在崩溃恢复的过程中,数据节点会与该组中的一个正常节点进行全量同步。在这种情况下,被恢复的节点中所有数据作废,同步到的新数据作为基准。可参考 全量同步

假设该节点没有被意外终止(例如kill -15),则进入增量同步状态。在这种情况下,如果当前其它数据节点中包含的最老日志已经比被恢复节点新,则进入全量同步状态,否则只同步增量日志。可参考 数据复制

如果该数据组中所有节点都被意外终止,则需要以独立模式启动一个节点进行本地恢复。在该模式中,数据会被导出并再次导入,以过滤掉所有可能出现的数据损坏。当其中一个节点被本地恢复后,需要将其数据目录拷贝入其它所有数据节点。

Note:

用户可以通过数据的 备份 与 恢复 降低数据丢失的风险。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值