SequoiaDB巨杉数据库_SequoiaDB
SequoiaDB巨杉数据库_下载

文档

安装

基本操作

数据模型

系统架构

数据库管理

连接器

驱动

参考手册

故障排除

SAC

版本信息

Web服务

历史版本BUG预警

帮助

  • 内容
  • 评论
  • 修订记录

编目节点

概念

编目节点为一种逻辑节点,其中保存了数据库的元数据信息,而不保存其他用户数据。

编目节点中包含4个集合空间:

  • SYSCAT: 系统编目集合空间,包含4个系统集合:

    集合名 描述
    SYSCOLLECTIONS 保存了该集群中所有的用户集合信息
    SYSCOLLECTIONSPACES 保存了该集群中所有的用户集合空间信息
    SYSNODES 保存了该集群中所有的逻辑节点与复制组信息
    SYSTASKS 保存了该集群中所有正在运行的后台任务信息
  • SYSTEMP: 系统临时集合空间,可以创建最多4096个临时集合

  • SYSAUTH: 系统认证集合空间,包含一个用户集合,保存当前系统中所有的用户信息

    集合名 描述
    SYSUSRS 保存了该集群中所有的用户信息
  • SYSPROCEDURES: 系统存储过程集合空间,包含一个集合,用于存储所有的存储过程函数信息

    集合名 描述
    STOREPROCEDURES 保存所有存储过程函数信息

除了编目节点外,集群中所有其他的节点不在磁盘中保存任何全局元数据信息。当需要访问其他节点上的数据时,除编目节点外的其他节点需要从本地缓存中寻找集合信息,如果不存在则需要从编目节点获取。

编目节点与其它节点之间主要使用编目服务端口(catalogname参数)进行通讯。

SYSCOLLECTIONS 集合

所属集合空间

SYSCAT

概念

SYSCOLLECTIONS集合中包含了该集群中所有的用户集合信息。每个用户集合保存为一个文档。

每个文档包含以下字段:

字段名 类型 描述
Name 字符串 集合的完整名,为<集合空间>.<集合名>形式。
Version 整数 集合的版本号,由1起始,每次对该集合的元数据变更会造成版本号+1。
ReplSize 整数 最小复制组,确保任何写操作必须被复制到至少指定数量的节点后返回成功。
ShardingKey 对象 分区键,在分区集合中存在。对象包含一个或多个字段,字段名为分区字段名,数值为1或者-1,代表对该列正向或逆向排序。
ShardingType 字符串 分区类型,在分区集合中存在。分区类型有:范围分区(Range)和散列分区(Hash)两种。
Partition 整数 散列分区的分区大小值,必须为2的幂。
CataInfo 数组 集合所在的逻辑节点信息。在单分区集合中,该数组仅包含一个元素,代表该集合所在的分区组。在多分区集合中,该数组中包含一个或多个元素,代表该集合中的每一个取值范围所在的分区组。每个取值范围包括 LowBound 与UpBound,代表其下限与上限,闭合关系为左闭右开。

示例

一个典型的单分区集合信息如下:

{ "Name" : "test.foo", "Version" : 1, "CataInfo" : [ { "GroupID" : 1000 } ] }

一个典型的多分区集合信息如下:

{ 
  "Name" : "foo.test",
  "Version" : 1,
  "ShardingKey" : { "Field1" : 1, "Field2" : -1 },
  "ShardingType" : "range" ,
  "ReplSize": 3,
  "CataInfo" : 
  [
    { 
      "GroupID" : 1000,
      "LowBound" : { "" : MinKey, "" : MaxKey },
      "UpBound" : { "" : MaxKey, "" : MinKey } 
    } 
  ]
}

SYSCOLLECTIONSPACES 集合

所属集合空间

SYSCAT

概念

SYSCOLLECTIONSPACES集合中包含了该集群中所有的用户集合空间信息。每个用户集合空间保存为一个文档。

每个文档包含以下字段:

字段名 类型 描述
Name 字符串 集合空间名。
Collection 数组 该集合空间中包含的所有的集合名,每个集合为一个 JSON 对象,包含“Name”字段与相应的集合名。
Group 数组 该集合空间所在的复制组 ID。
PageSize 整数 该集合空间的数据页大小。(单位:字节)

示例

一个典型的包含一个集合,存放在一个复制组中的集合空间如下:

{ 
  "Collection" : [ { "Name" : "foo" } ],
  "Group" : [ { "GroupID" : 1000 } ],
  "Name" : "test",
  "PageSize" : 4096
}

SYSNODES 集合

所属集合空间

SYSCAT

概念

SYSNODES集合中包含了该集群中所有的节点与复制组信息。每个复制组保存为一个文档。

每个文档包含以下字段:

字段名 类型 描述
GroupName 字符串 复制组名。
GroupID 整数 复制组 ID,该 ID 在集群中唯一。
PrimaryNode 整数 该复制组内主节点 ID。
Role 整数 复制组角色,可以为:
- 0:数据节点
- 2:编目节点
Status 整数 - 1:已激活复制组
- 0:未激活复制组
- 不存在:未激活复制组
Version 整数 版本号,由1起始,任何对该复制组的操作均会对其+1。
Group 数组 复制组中节点信息,见下表:

复制组中如果存在一个以上节点,则每个节点作为一个对象存放在 Group字段数组中,每个对象的信息如下:

字段名 类型 描述
HostName 字符串 节点所在的系统名,需要完全匹配该节点所在操作系统中“hostname”命令的输出。
dbpath 字符串 数据库路径,为节点所在的物理节点中对应的绝对路径。
NodeID 整数 节点 ID,该 ID 在集群中唯一。
Service 数组 服务名,每个逻辑节点对应4个服务名,每个服务名包括其类型与服务名(可以为端口号或services 文件中的服务名)。类型如下:
- 0:直连服务,对应数据库参数 svcname
- 1:复制服务,对应数据库参数 replname
- 2:分区服务,对应数据库参数 shardname
- 3:编目服务,对应数据库参数 catalogname

Note:

  • 编目复制组名固定为“SYSCatalogGroup”,复制组ID固定为1。
  • 数据复制组 ID 由1000起始。
  • 数据节点 ID 由1000起始。

示例

一个典型的包含单节点的编目复制组为:

{ 
  "Group" : 
  [
    { 
      "NodeID" : 2,
      "HostName" : "vmsvr1-rhel-x64",
      "Service" : 
      [
        { "Type" : 3, "Name" : "11803" },
        { "Type" : 1, "Name" : "11801" },
        { "Type" : 2, "Name" : "11802" },
        { "Type" : 0, "Name" : "11800" } 
      ],
      "dbpath" : "/home/sequoiadb/sequoiadb/catalog"
    } 
  ],
  "GroupID" : 1,
  "GroupName" : "SYSCatalogGroup",
  "PrimaryNode" : 2,
  "Role" : 2,
  "Version" : 1 
}

一个典型的包含单节点的数据复制组为:

{ 
  "Group" : 
    [
      { 
      "dbpath" : "/home/sequoiadb/sequoiadb/data3",
      "HostName" : "vmsvr1-rhel-x64",
      "Service" : 
        [
          { "Type" : 0, "Name" : "11820" },
          { "Type" : 1, "Name" : "11821" },
          { "Type" : 2, "Name" : "11822" },
          { "Type" : 3, "Name" : "11823" } 
        ],
      "NodeID" : 1001 
      } 
    ],
  "GroupID" : 1001,
  "GroupName" : "foo1",
  "PrimaryNode" : 1001,
  "Role" : 0,
  "Status" : 1,
  "Version" : 1 
}

SYSTASKS 集合

所属集合空间

SYSCAT

概念

SYSTASKS集合中包含了该集群中所有正在运行的后台任务信息。每个任务保存为一个文档。

每个文档包含以下字段:

字段名 类型 描述
JobType 整数 任务类型,分别代表:
- 0:数据切分
Status 整数 任务状态,分别代表:
- 0:准备
- 1:运行
- 2:暂停
- 3:取消
- 4:变更元数据
- 9:完成
- 不存在:未激活复制组
CollectionSpace 字符串 集合空间名
Collection 字符串 集合名

数据切分

对于数据切分操作,每个文档还存在以下字段:

字段名 类型 描述
SourceName 字符串 源分区所在复制组名
TargetName 字符串 目标分区所在复制组名
SourceID 整数 源分区所在复制组ID
TargetID 整数 目标分区所在复制组ID
SplitValue 对象 数据分区键

SYSUSRS 集合

所属集合空间

SYSAUTH

概念

SYSUSRS 集合中包含了该集群中所有注册用户的信息。每个用户保存为一个文档。

每个文档包含以下字段:

字段名 类型 描述
User 字符串 用户名。
Password 字符串 对用户密码进行 MD5 散列的结果。

Note:
如果该集合为空,则对任何连接不进行身份认证。

STOREPROCEDURES 集合

所属集合空间

SYSPROCEDURES

概念

STOREPROCEDURES集合中包含了所有的存储过程函数,每一个函数保存为一个文档,每个文档包含以下字段:

字段名 类型 描述
name 字符串 函数名
func 字符串 函数体
funcType 整数 函数类型
- 0:代表 JavaScript 函数
其他类型暂无

示例

一个简单的存储过程函数如下:

{
  "_id" : { "$oid" : "5257b115925c31dd16ec4e4a" },
  "name" : "fun",
  "func" : "function fun(num) {
      if (num == 1) {
          return 1;
      } else {
          return fun(num - 1) * num;
      }
  }",
  "funcType" : 0 
}

新建编目分区组

Note:
如果新增节点涉及到新增主机,则请首先按照在集群中新增主机一节完成主机的主机名和参数配置。

一个数据库集群必须有且仅有一个编目分区组,所以新建分区组往往在安装时就已经完成,不需要在安装后执行新建分区组操作。实例见安装指南集群模式的配置与启动一节。

  • 操作方法:

    > db.createCataRG(<host>,<service>,<dbpath>,[config])

    该命令用于创建编目分区组,同时创建并启动一个编目节点,其中:

    • host :指定编目节点的主机名;
    • service :指定编目节点的服务端口,请确保该端口号,以及往后延续的3个端口号未被占用;如设置为11800,请确保11800/11801/11802/11803端口都未被占用;
    • dbpath :数据文件路径,用于存放编目数据文件,请确保数据管理员(安装时创建,默认为sdbadmin)用户有写权限。如果配置路径不以“/”开头,数据文件存放路径将是数据库管理员用户(默认为sdbadmin)的主目录(默认为/home/sequoiadb) + 配置的路径;
    • config :该参数为可选参数,用于配置更多细节参数,格式必须为 json格式,参数参见数据库配置一节;如需要配置日志大小参数{logfilesz:64}。

编目分区组中新增节点

Note:
如果新增节点涉及到新增主机,则请首先按照在集群中新增主机一节完成主机的主机名和参数配置。

随着整个集群中的物理设备的扩展,可以通过增加更多的编目节点来提高编目服务的可靠性。

操作方法:

> var cataRG = db.getRG("SYSCatalogGroup");
> var node1 = cataRG.createNode(<hos>,<service>,<dbpath>,[config]);
> node1.start()
  • 第一条命令用于获取编目分区组,“SYSCatalogGroup”为编目分区组组名;

  • 第二条命令用于创建一个新的编目节点,参数与创建编目节点组参数相同。

  • 第三条命令用于启动新增的编目节点。

故障恢复

编目节点故障恢复策略与数据节点相同。

请登陆后再发表评论
最新评论
更新日志
  • 2016-10-20
    v2.8
回到顶部
公司简介
广州巨杉软件专注新一代大数据技术研发,是国内唯一的原厂企业级分布式数据库公司。
巨杉坚持产品从零开始自主研发,为用户提供安全可靠、性能卓越的海量数据存储管理、高并发实时处理、分布式计算以及实时流处理等企业级数据处理解决方案。
巨杉目标是打造超越Oracle的分布式数据库,目前在金融、政府、电信多个行业得到了广泛应用,并在超过20家大中型银行的核心生产系统应用。
粤ICP备13048785号     广州巨杉软件开发有限公司 版权所有