1. 集群中新增主机
前面一说这里不再赘述
2. 编目分区组管理
1)新增编目分区组
操作方法:
> db.createReplicaCataGroup(<host>,<service>,<dbpath>,[config])
该命令用于创建编目分区组,同时创建并启动一个编目节点,其中:
host:指定编目节点的主机名;
service:指定编目节点的服务端口,请确保该端口号,以及往后延续的3个端口号未被占用;如设置为11800,请确保11800/11801/11802/11803端口都未被占用;
dbpath:数据文件路径,用于存放编目数据文件,请确保数据管理员(安装时创建,默认为 sdbadmin)用户有写权限;
config:该参数为可选参数,用于配置更多细节参数,格式必须为 json 格式,参数参见数据库配置一节;如需要配置日志大小参数{logfilesz:64}。
2)编目分区组中新增节点
操作方法:
> var cataRG = db.getRG("SYSCatalog"); > var node1 = cataRG.createNode(<host>,<service>,<dbpath>,[config]); > node1.start()
第一条命令用于获取编目分区组,“SYSCatalogGroup”为编目分区组组名;
第二条命令用于创建一个新的编目节点,其中:
参数:
host:指定编目节点的主机名;
service:指定编目节点的服务端口,请确保该端口号,以及往后延续的3个端口号未被占用;如设置为11800,请确保11800/11801/11802/11803端口都未被占用;
dbpath:数据文件路径,用于存放编目数据文件,请确保数据管理员(安装时创建,默认为 sdbadmin)用户有写权限;
config:该参数为可选参数,用于配置更多细节参数,格式必须为 json 格式,参数参见数据库配置 一节;如需要配置日志大小参数{logfilesz:64}。
第三条命令用于启动新增的编目节点。
3. 数据分区组管理
1)新增数据分区组
一个集群中可以配置多个分区组,最大可配置60,000个分区组。通过增加分区组,可以充分利用物理设备进行水平扩展,理论上 SequoiaDB 可以做到线性的水平扩展能力。
操作方法:
> var dataRG = db.createRG("datagroup1") > dataRG.createNode("sdbserver1", 11820, "/opt/sequoiadb/database/data/11820") > dataRG.start()
第一条命令用于创建数据分区组,与编目分区组不同的是,该操作不会创建任何数据节点,其中参数为数据组名;
第二条命令用户在数据组中新增一个数据节点,可以根据需要多次执行该命令来创建多个数据节点。
其中:
host:指定数据节点的主机名;
service:指定数据节点的服务端口,请确保该端口号,以及往后延续的3个端口号未被占用;如设置为11820,请确保11820/11821/11822/11823端口都未被占用;
dbpath:数据文件路径,用于存放数据节点的数据文件,请确保数据管理员(安装时创建,默认为 sdbadmin)用户有写权限;
config:该参数为可选参数,用于配置更多细节参数,格式必须为 json 格式,参数参见数据库配置一节;如需要配置日志大小参数{logfilesz:64}。
第三条命令用于启动数据分区组,该命令将该组的所有节点启动,并提供服务
2)分区组中新增节点
某些分区组可能在创建时设定的副本数较少,随着物理设备的增加,可能需要增加副本数以提高分区组数据可靠性。
操作方法:
> var dataRG = db.getRG(<groupname>); > var node1 = dataRG.createNode(<host>,<service>,<dbpath>,[config]); > node1.start();
第一条命令用于获取数据分区组,参数 groupname 为数据分区组组名;
第二条命令用于创建一个新的数据节点,参数与新增编目分区组中的创建节点参数相同;
第三条命令用于启动新增的数据节点。
4. 集群中新增协调节点
1. 创建协调节点配置目录;
mkdir -p /opt/sequoiadb/conf/local/11810
其中11810为协调节点的服务端口,可根据需要配置
2. 拷贝协调节点样例配置文件;
cp /opt/sequoiadb/conf/samples/sdb.conf.coord /opt/sequoiadb/conf/local/11810/sdb.conf
vi /opt/sequoiadb/conf/local/11810/sdb.conf
修改内容
# database path dbpath=/opt/sequoiadb/database/coord
该参数为数据库放置路径,可根据需要修改,请确保路径已经存在(不存在请手工创建)
将如下行:
# catalog addr(hostname1:servicename1,hostname2:servicename2,...) # catalogaddr=
修改
# catalog addr(hostname1:servicename1,hostname2:servicename2,...) catalogaddr=sdbserver1:11803,sdbserver2:11803,sdbserver3:11803
该参数为Catalog服务地址和端口
4. 按 :wq,保存退出 vi;
5. 创建数据文件存放路径;
mkdir -p /opt/sequoiadb/database/coord
路径为上一步骤配置的路径
6. 启动协调节点进程。
/opt/sequoiadb/bin/sdbstart -c /opt/sequoiadb/conf/local/11810/
小案例:
案例一:新增主机,在当前数据分区中新增一个数据副本节点
- 当前环境:
配置项 配置情况 主机 包含一台主机: 主机一:OS 为 SUSE 11 SP2 64位,主机名为 vmsvr1-suse-x64,IP 为192.168.1.10编目分区组 分区组包含一个编目节点,服务端口为11800 数据分区组 一个数据分区组,组名为 datagroup1,其中包含一个数据节点: 数据节点一:服务主机名为 vmsvr1-suse-x64,端口为11820协调节点 一个协调节点,端口为11810 - 调整后的预期结果
配置项 配置情况 主机 包含两台主机: 主机一:OS 为 SUSE 11 SP2 64位,主机名为 vmsvr1-suse-x64,IP 为192.168.1.10主机二:OS 为 SUSE 11 SP2 64位,主机名为 vmsvr2-suse-x64,IP 为192.168.1.11编目分区组 分区组包含一个编目节点,服务端口为11800 数据分区组 一个数据分区组,组名为 datagroup1,其中包含两个数据节点: 数据节点一:服务主机名为 vmsvr1-suse-x64,端口为11820数据节点二:服务主机名为 vmsvr2-suse-x64,端口为11820协调节点 一个协调节点,端口为11810
操作步骤
- 步骤一:配置新增的主机
1. 安装操作系统 SUSE 11 SP2 64位(保持与原系统一致);
2. 使用 root 用户登录系统;
3. 配置 IP 地址为 192.168.1.11;
4. 执行如下命令,配置主机名为 vmsvr2-suse-x64:hostname vmsvr2-suse-x64
修改 /etc/hosts文件,新增两行:192.168.1.10 vmsvr1-suse-x64 192.168.1.11 vmsvr2-suse-x64
按 :wq 保存退出;5. 执行如下命令,检查主机配置是否生效:ping vmsvr1-suse-x64 //检查是否 ping 通; ping vmsvr2-suse-x64 //检查是否 ping 通;
6. 配置系统内核参数:
打开 /etc/profile 文件,在该文件末尾增加如下行:
ulimit -Sf unlimited //文件大小限制 ulimit -St unlimited //CPU时间限制 ulimit -Sv unlimited //虚拟内存限制 ulimit -Sn 64000 //文件个数限制 ulimit -Sm unlimited //内存大小限制 ulimit -Su 32000 //线程个数限制
按 :wq 保存退出;执行 source /etc/profile,使得配置生效;
7. 执行如下命令,检查系统内核参数配置是否生效:ulimit -a; //查看配置是否正确;
- 步骤二:配置原集群的主机
修改原主机 vmsvr1-suse-x64 的 /etc/hosts 配置文件,在配置文件中新增一行:
192.168.1.11 vmsvr2-suse-x64
按 :wq 保存退出;
- 步骤三:在新增主机上安装 SequoiaDB 软件
参考 SequoiaDB 服务器安装一节进行软件安装。
- 步骤四:在当前分区中新增数据节点
1. 在 vmsvr2-suse-x64 上执行如下命令,启动 SequoaiDB Shell 命令行:
/opt/sequoiadb/bin/sdb
2. 在 SequoiaDB Shell 命令行中,执行如下命令在当前数据分区组新增一副本节点:
> var db = new Sdb("localhost",11810) > var datarg = db.getRG("datagroup1") > node=rg.createNode("vmsvr2-suse-x64",11820,"/opt/sequoiadb /database/data/11820") > node.start()
3. 在SequoiaDB Shell命令行中,执行如下命令检查分区组配置情况,可以看到数据组新增了一个数据节点:
> db.listReplicaGroups(); … { "Group": [ { "dbpath": "/opt/sequoiadb/database/data/11820", "HostName": " vmsvr1-suse-x64", "Service": [ { "Type": 0, { "Type": 1, "Name": "11821" }, { "Type": 2, "Name": "11822" }, { "Type": 3, "Name": "11823" } ], "NodeID": 1000 }, { "dbpath": "/opt/sequoiadb/database/data/11820", "HostName": " vmsvr2-suse-x64", "Service": [ { "Type": 0, "Name": "11820" }, { "Type": 1, "Name": "11821" }, { "Type": 2, "Name": "11822" }, { "Type": 3, "Name": "11823" } ], "NodeID": 1001 } ], "GroupID": 1000, "GroupName": "datagroup1", "PrimaryNode": 1000, "Role": 0, "Status": 1, "Version": 3, "_id": { "$oid": "51d673c1fde96799fbac6aad" } }