SequoiaDB版本線上升級介紹說明
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=sdbcm
SDBADMIN_USER=sdbadmin
INSTALL_DIR=/opt/sequoiadb
MD5=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 License
Please 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.
Installing
0% ______________ 50% ______________ 100%
Begin to upgrade package ......
************************** check list *************************************
Check: configure file /etc/default/sequoiadb is exists ...... ok
Check: get install directory and user in /etc/default/sequoiadb ...... ok
Check: install dir /opt/sequoiadb is not empty ...... ok
Check: compatibility between version 1.12.5 Enterprise and 2.6 Enterprise ...... ok
Check: disk space is enough ...... ok
Check: user sdbadmin is exist, and get group ...... ok
Check: relevant processes are stoped ...... ok
#########################################
只要螢幕上出現以下資訊,則證明SequoiaDB軟體版本升級已經成功了
Setup has finished installing SequoiaDB Server on your computer.
5.3SequoiaDB版本升級後檢查 在SequoiaDB版本升級後,sdbcm會自動將當前機器的所有SequoiaDB服務啟動,使用者可以通過sdblist命令檢視確認。使用者在執行命令前,作者建議使用者還是首先切換系統使用者
su - sdbadmin
檢視SequoiaDB資料庫服務啟動情況。
/opt/sequoiadb/bin/sdblist -t all -m local
例如作者的環境,列印的內容為:
sequoiadb(11920) (12808) D
sequoiadb(11930) (12811) D
sdbom(11780) (12792)
sequoiadb(11910) (12812) D
sequoiadb(11810) (12805) S
sequoiadb(11800) (12780) C
sdbcm(11790) (12770)
sdbcmd (12768)
Total: 8
如果有存在一些節點沒有正常啟動,會列印如下資訊
sequoiadb(11920) (12808) D
sequoiadb(11930) (12811) D
sdbom(11780) (12792)
sequoiadb(11910) (12812) D
sequoiadb(11810) (-) S
sequoiadb(11800) (12780) C
sdbcm(11790) (12770)
sdbcmd (12768)
Total: 8
顯示sequoiadb(11810) (-) S 則說明這個節點是存在於本伺服器的,但是該節點並沒有啟動。 SequoiaDB版本升級後,雖然所有的程式都已經啟動,但是使用者還需要確認啟動的節點已經恢復正常,並且能夠正常提供服務。 使用者在檢查節點是否恢復正常時,只要檢查編目節點和資料節點的狀態,也就是
sequoiadb(11920) (12808) D
sequoiadb(11930) (12811) D
sequoiadb(11910) (12812) D
sequoiadb(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資料庫版本做升級操作,從而完成所有伺服器的資料庫版本升級。
相關文章
- css樣式說明介紹CSS
- JavaScript介紹及說明(01)JavaScript
- Redis 3.0介紹及叢集說明Redis
- openssh版本更新與說明 openssl版本更新與說明
- Oracle 版本說明Oracle
- mysql 版本說明MySql
- SequoiaDB資料庫之環境介紹資料庫
- python基礎學習-埠介紹說明Python
- WebMisSharp升級說明,最新版本1.6.0Web
- Linux系統結構說明及用途介紹Linux
- 介紹tomcat Connector 引數優化說明Tomcat優化
- Cz工具集使用介紹 - 規範Git提交說明Git
- Tyk API閘道器介紹及安裝說明API
- 智慧控制打氣泵方案pcba的介紹說明
- 如何升級電腦windows版本 windows系統版本升級方法介紹Windows
- suse目前的版本說明
- Volley 網路請求框架介紹與使用說明框架
- 營銷型網站設計方案介紹及說明網站
- IBM ThinkPad 隨機軟體的介紹說明IBMThinkPad隨機
- CentOS 7升級核心簡明說明CentOS
- MySQL 5.6.27升級MySQL 5.7.18版本的升級步驟介紹MySql
- JavaScript ECMAScript版本介紹JavaScript
- MySQL分支版本介紹MySql
- Apache 版本介紹(轉)Apache
- 虹軟人臉識別—版本升級介面修改說明(C#)C#
- Texpad for Mac編輯器使用說明以及快捷方式介紹Mac
- J302βγ蓋格計數管規格介紹說明
- 關於DedeCMS版本號的說明
- 合宙NB模組air302介紹及燒錄說明AI
- Linux 下各資料夾的結構說明及用途介紹Linux
- Git版本管理介紹(一)Git
- git引入_版本控制介紹Git
- 軟體版本控制介紹
- informix IDS版本介紹ORM
- 華為分析5.3.1版本更新說明
- Linux各個版本相關說明Linux
- Oracle的JDBC驅動的版本說明OracleJDBC
- Oracle 更新 OPatch 工具版本 的方法 說明Oracle