1. 前言

在SequoiaDB数据库发展过程中,基本保持每半年对外发行一个正式的Release版本。并且每个新发布的Release版本相对老版本而言,性能方面都有很大的提高,并且数据库也会在新版本中加入很多新的功能,希望能够提高数据库开发的易用性。

在SequoiaDB发展过程中,越来越多的开发者了解到它,并且对它发生兴趣。现在已经有越来越多的用户在学习、研究SequoiaDB,并且也有越来越多的企业用户在对SequoiaDB经过充分测试后,决定将SequoiaDB部署在企业的生产环境中,利用SequoiaDB分布式存储的优势,对外提供高并发、低延时的数据操作服务。

在很多SequoiaDB的企业客户中,使用SequoiaDB数据库的生产系统都是企业内部比较重要的系统,必须支持24*7对外提供服务,所以即使在对数据库实施版本升级的同时,也必须要满足数据库服务不停机的技术要求。

本文通过SequoiaDB在线升级原理介绍与详细升级步骤说明,向广大SequoiaDB用户提供一个可操作的数据库在线升级方案文档,希望能够对即将给SequoiaDB做版本升级的用户提供帮助。

2.背景介绍

2.1 服务器资源介绍

2.2 操作系统及数据库软件版本

2.3 数据集群部署部署架构

3.版本升级兼容性说明

4.SequoiaDB支持在线升级原理说明

在Sequoiadb集群中,如果部署的环境为所有节点组都是3份数据冗余,那样用户就可以逐一对每台服务器上的数据库版本进行升级。

在线升级的方法如图示:

用户首先选择一台服务器,将其所有的Sequoiadb 进程停止,停止当前机器所有的数据库服务可以参考 sdbstop 命令的使用方式,然后直接使用新版本的数据库安装包覆盖安装老的版本。新版数据库安装完毕后,它会自动将本台机器的所有Sequoiadb 相关进程启动。一旦升级的数据库服务成功启动后,则代表此服务器完成了数据库版本升级。

用户可以通过相同的方式对其余几台服务器进行相同的操作,直至所有服务器都完成了版本升级,并且所有的数据库服务都已经成功启动。

5.SequoiaDB版本在线升级步骤

5.1 升级前环境信息收集

用户在开始SequoiaDB集群版本升级之前,应该先对SequoiaDB集群的基本情况有一个大概的了解,并且将数据库的信息收集起来。

检查SequoiaDB数据库的安装路径已经操作系统分配给数据库的系统用户,此步骤建议用户在所有部署了SequoiaDB服务的机器上执行

切换到root权限

su - root

查看SequoiaDB数据库的安装路径与操作系统分配的用户

cat /etc/default/sequoiadb

以作者的环境举例,打印的内容如下:

NAME=sdbcmSDBADMIN_USER=sdbadminINSTALL_DIR=/opt/sequoiadbMD5=d60fdabd78e05f0ad482b938f1df1d72

通过/etc/default/sequoiadb文件,用户可以快速了解到SequoiaDB的基本情况

用户再通过sdb shell控制台,了解SequoiaDB数据库集群的部署情况

切换到sdbadmin用户

su - sdbadmin

进入sdb shell控制台

/opt/sequoiadb/bin/sdb

连接数据库Coord节点

> db = new Sdb("localhost", 11810)

查看SequoiaDB集群部署情况

> db.list(7)

以作者环境为例,打印内容为(由于篇幅太长,文档里做了省略):

{"Group": [{"dbpath": "/opt/sequoiadb/database/catalog/11800","HostName": "sdb1","Service": [{"Type": 0,"Name": "11800"},{"Type": 1,"Name": "11801"},{"Type": 2,"Name": "11802"},{"Type": 3,"Name": "11803"}],"NodeID": 1},………………{"HostName": "sdb3","dbpath": "/opt/sequoiadb/database/data/11930","Service": [{"Type": 0,"Name": "11930"},{"Type": 1,"Name": "11931"},{"Type": 2,"Name": "11932"}],"NodeID": 1008}],"GroupID": 1002,"GroupName": "group3","PrimaryNode": 1008,"Role": 0,"Status": 1,"Version": 4,"_id": {"$oid": "580c1fc9a378cafcebe4e956"}}

用户从打印的信息中,基本可以了解到SequoiaDB共使用了多少台服务器,建立了多少个数据组,每个数据组又包含多少个节点,节点的数据存储路径和端口号分别是什么,用户都可以从db.list(7)命令中获取。

作者根据演示环境,整理信息如下:

升级步骤必须逐台服务器执行,不能够同时在所有服务器上执行升级数据库版本步骤。

5.2 数据库版本升级

作者以升级01服务器为例,详细记录一台服务器上升级SequoiaDB版本的步骤。

切换sdbadmin用户

su - sdbadmin

停止当前服务器的sdbcm服务

/opt/sequoiadb/bin/sdbcmtop

停止当前服务器所有的SequoiaDB服务

/opt/sequoiadb/bin/sdbstop/opt/sequoiadb/bin/sdbstop -p 11780

检查当前服务器是否所有SequoiaDB服务器停止

/opt/sequoiadb/bin/sdblist -t all -m run

如果还有SequoiaDB服务在运行,执行sdblist命令会在屏幕上打印SequoiaDB正在运行的服务信息,例如

sdbom(11780) (31966)Total: 1

确认所有的SequoiaDB均停止后,开始对当前服务器升级SequoiaDB版本

切换root权限

su - root

为SequoiaDB执行软件赋予可执行权限

chmod a+x /opt/sequoiadb-2.6-linux_x86_64-enterprise-installer.run

执行SequoiaDB新版本安装命令

/opt/sequoiadb-2.6-linux_x86_64-enterprise-installer.run

让用户选择安装时的语言,这里选择1,英文

Please select the installation language[1] English - English[2] Simplified Chinese - 简体中文Please choose an option [1] : 1

然后出来一堆license的内容,让用户选择直接忽略选择1,如果希望了解详情选择2查看

License Agreement for Evaluation of Programs[1] Agree The License: For More License's Detail, Please Check The License File After Installation[2] Read The LicensePlease choose an option [1] : 1

让用户选择是否同意本license,这里选择y(YES)

Do you accept this license? [y/n]: y

软件检测到本机器已经安装了SequoiaDB,让用户选择是否升级版本,这里选择Y(YES)

An existing installation has been detected in /opt/sequoiadb. Change to upgrade mode? [Y/n]: y

安装软件已经准备就绪了,是否继续安装,这里选择Y(YES)

Setup is now ready to begin installing SequoiaDB Server on your computer.Do you want to continue? [Y/n]: Y

然后软件就开始正式安装,会出现以下的内容

Please wait while Setup installs SequoiaDB Server on your computer.Installing0% ______________ 50% ______________ 100%Begin to upgrade package ......**************************  check list *************************************Check: configure file /etc/default/sequoiadb is exists ...... okCheck: get install directory and user in /etc/default/sequoiadb ...... okCheck: install dir /opt/sequoiadb is not empty ...... okCheck: compatibility between version 1.12.5 Enterprise and 2.6 Enterprise ...... okCheck: disk space is enough ...... okCheck: user sdbadmin is exist, and get group ......  okCheck: relevant processes are stoped ...... ok#########################################

只要屏幕上出现以下信息,则证明SequoiaDB软件版本升级已经成功了

Setup has finished installing SequoiaDB Server on your computer.

5.3 SequoiaDB版本升级后检查

在SequoiaDB版本升级后,sdbcm会自动将当前机器的所有SequoiaDB服务启动,用户可以通过sdblist命令查看确认。用户在执行命令前,作者建议用户还是首先切换系统用户

su - sdbadmin

查看SequoiaDB数据库服务启动情况。

/opt/sequoiadb/bin/sdblist -t all -m local

例如作者的环境,打印的内容为:

sequoiadb(11920) (12808) Dsequoiadb(11930) (12811) Dsdbom(11780) (12792)sequoiadb(11910) (12812) Dsequoiadb(11810) (12805) Ssequoiadb(11800) (12780) Csdbcm(11790) (12770)sdbcmd (12768)Total: 8

如果有存在一些节点没有正常启动,会打印如下信息

sequoiadb(11920) (12808) Dsequoiadb(11930) (12811) Dsdbom(11780) (12792)sequoiadb(11910) (12812) Dsequoiadb(11810) (-) Ssequoiadb(11800) (12780) Csdbcm(11790) (12770)sdbcmd (12768)Total: 8

显示sequoiadb(11810) (-) S 则说明这个节点是存在于本服务器的,但是该节点并没有启动。

SequoiaDB版本升级后,虽然所有的进程都已经启动,但是用户还需要确认启动的节点已经恢复正常,并且能够正常提供服务。

用户在检查节点是否恢复正常时,只要检查编目节点和数据节点的状态,也就是

sequoiadb(11920) (12808) Dsequoiadb(11930) (12811) Dsequoiadb(11910) (12812) Dsequoiadb(11800) (12780) C用户进入SequoiaDB Shell/opt/sequoiadb/bin/sdb

挑选其中一个节点,进行连接检查

> var db = new Sdb("localhost", 11910);> db.snapshot(6, {}, {"ServiceStatus":null});> db.close();

只要snapshot(6)打印的内容{"ServiceStatus": true} 等于true,则代表此节点服务已经恢复正常,处于正常运行状态,如果为false,则代表此节点状态还没有恢复,通常情况下,ServiceStatus=false,为节点处于全量同步状态。

重复此动作,检查其余的localhost:11920、localhost:11930、localhost:11800节点状态是否正常。如果有节点状态不正常,就需要耐心等待节点完成数据检查或者数据同步,直至节点状态恢复正常,当前服务器的SequoiaDB版本升级才算结束。

> var db = new Sdb("localhost", 11920);> db.snapshot(6, {}, {"ServiceStatus":null});> db.close();> var db = new Sdb("localhost", 11920);> db.snapshot(6, {}, {"ServiceStatus":null});> db.close();> var db = new Sdb("localhost", 11800);> db.snapshot(6, {}, {"ServiceStatus":null});> db.close();

当用户完成当前服务器的SequoiaDB版本升级,则可以在两外一台服务器上执行相同命令,开始SequoiaDB版本升级,直至数据库集群所有的服务器数据库版本升级完毕。

6 总结

由于SequoiaDB集群部署时,是通过3台服务器互相做数据冗余,从而保证整个数据库集群的数据安全性,并且每台服务器的数据库进程都相互独立,中间没有任何的数据依赖。用户在对数据库版本进行升级时,可以利用这数据冗余3份的特点,通过对整个数据库集群做滚动升级的方式,逐一对各台服务器上的SequoiaDB数据库版本做升级操作,从而完成所有服务器的数据库版本升级。

SequoiaDB巨杉数据库2.6最新版下载

SequoiaDB巨杉数据库技术博客
SequoiaDB巨杉数据库社区

转载于:https://my.oschina.net/u/2444165/blog/805186

SequoiaDB版本在线升级介绍说明相关推荐

  1. C#实现程序的版本在线升级更新

    文章目录 背景 代码 下载地址 设置到的知识点 参考文献 背景 最近在做开发的时候,需要程序有自动版本升级的功能.特此记录下整个过程. 代码 注意事项: 服务器端需要上传XML配置文件和待下载的软件 ...

  2. Eclipse 版本升级:如何不卸载旧版本 Eclipse 实现在线升级到最新版本?

    文章目录 前言 一.网上没"升级 Eclipse"相关资料吗? 1.1.相关资料很少,我也生气 1.2.升级新版本与在线升级插件傻傻搞不清 二.版本升级准备 2.1.Eclipse ...

  3. 软件包管理 之 软件在线升级更新yum 图形工具介绍

    作者:北南南北 来自:LinuxSir.Org 提要:yum 是Fedora/Redhat 软件包管理工具,包括文本命令行模式和图形模式:图形模式的yum也是基于文本模式的:目前yum图形前端程序主要 ...

  4. R语言中package ‘xxxx’ is not available (for R version xxx)的解决办法以及R如何在线升级版本?

    R语言中package 'xxxx' is not available (for R version xxx)的解决办法以及R如何在线升级版本? 第一步:在R或者Rstudio中安装installr包 ...

  5. 在线升级版本:ESXI6.5升级7.0

    将一台使用ESXI6.7的虚升级条件 1.首先确保硬件是否能升级到7.0版本,注意:物理网卡驱动为e1000e不能升级,如果是igbn,则可以顺利升级.拟机升级到了7.0版本. 升级方法 升级方法有补 ...

  6. C#做的在线升级小程序

    转自原文C#做的在线升级小程序 日前收到一个小任务,要做一个通用的在线升级程序.更新的内容包括一些dll或exe或.配置文件.升级的大致流程是这样的,从服务器获取一个更新的配置文件,经过核对后如有新的 ...

  7. STM32 之八 在线升级(IAP)超详细图解 及 需要注意的问题解决

    IAP 是啥   IAP( In Application Programming)即在应用编程,也就是用户可以使用自己的程序对MCU的中的运行程序进行更新,而无需借助于外部烧写器.其实ST官网也给出了 ...

  8. CentOS以及Oracle数据库发展历史及各版本新功能介绍, 便于构造环境时有个对应关系...

    CentOS版本历史 版本 CentOS版本号有两个部分,一个主要版本和一个次要版本,主要和次要版本号分别对应于RHEL的主要版本与更新包,CentOS采取从RHEL的源代码包来构建.例如CentOS ...

  9. C#程序在线升级代码---webservice

    前言: 由于项目原因,要实施的客户离作者太远,考虑提供软件的在线升级功能.我们如何实现呢!先讲下思路. 思路: 先实现WEB端的开发,主要考虑使用WEBService技术,提供远程服务的调用函数,返回 ...

最新文章

  1. 北京智能计算产业研究院落户顺义,中科睿芯联手计算所、顺义区打造“产业园2.0”...
  2. 小程序 座位管理系统(一)(纯前端)
  3. python 从入门到实践 第三章
  4. maven配置国内阿里云镜像
  5. python基础——使用模块
  6. java拷贝文件夹和删除文件夹
  7. add jar and proxy repo
  8. 后期处理之一:雾蒙蒙风景照片处理技巧
  9. 六子冲棋,六子炮棋,二打一棋,箭棋,炮棋(java单机版)java人机对战
  10. ue4 迁移模型_UE4模型导入基础操作(MAX为例)
  11. oracle数据库数值函数,oracle数据库函数对照表
  12. 类风湿性关节炎中的肠-关节轴
  13. SCC算法求强连通分量简单讲解证明及实现
  14. Visual Paradigm 下载安装及使用
  15. 怎么修改html的空格大小,css设置空格宽度间距样式
  16. 摄像头各参数的意义_摄像机参数及性能指标浅谈
  17. php公众号自动回复链接,微信公众号自动回复超链接怎么添加-微信公众号添加自动回复超链接的方法 - 河东软件园...
  18. 2023年——个人每日分享汇总
  19. 服务器无法用u盘安装系统安装win7系统安装不了怎么办,为什么新电脑不支持安装Win7操作系统?...
  20. ehviewer怎么搜索关键字_ehviewer怎么用-ehviewer用法介绍-Appfound

热门文章

  1. 怎么一次性将Excel表格中指定文本整行数据删除
  2. 工大计算机专业课,哈工大计算机系统_考研专业课.pdf
  3. 世茂集团高端酒店品牌世御于河北省高碑店亮相
  4. PAT 1040有几个PAT
  5. elasticsearch实现热门词汇展示
  6. 绝地求生 服务器位置,绝地求生国服登陆界面地址入口 国服登陆界面地址在哪儿...
  7. 1018 锤子剪刀布 (20分) 测试点五问题
  8. 雷军做程序员时写的博客
  9. 电脑摄像头未能创建连接服务器,电脑打开摄像头却提示未能创建视频预览怎么办?...
  10. 当Transformer遇见偏微分方程求解