SequoiaDB 系列之一 :SequoiaDB的安裝、部署


在分析或者參與一個開源項目之前,了解項目構建的目的是有必要的。

既然SequoiaDB是NoSQL數據庫產品,則必然存在於傳統關系型數據庫相同的功能點:數據的增、刪、改和查詢(CRUD)。

先了解怎么用,再在會用的基礎上,進一步分析其實現。

 

在上一篇中已經列出的安裝環境,以及SequoiaDB的下載地址。

具備以上條件之后,然后咱就行動吧。

本篇文章的內容是安裝和部署一個集群環境(也可以是獨立數據節點的環境,看個人的喜好了。獨立模式的部署可以去SequoiaDB官網的信息中心獲取)

 

進入終端,切入到存放SequoiaDB的目錄,我的目錄是home(~)目錄。

SequoiaDB的安裝包下載下來,是一個tar.gz的壓縮包,需要先解壓:

tar -zxvf sequoiadb-1.10-linux_x86_64-installer.tar.gz

該命令會把壓縮包解壓到當前目錄。

 

執行解壓出來的run包:

sudo ./sequoiadb-1.10-linux_x86_64-installer.run

此shell命令會執行SequoiaDB的安裝。如果是桌面環境,默認會以圖形向導的方式安裝,如果需要用字符安裝向導,可以用下面的命令來執行安裝:

sudo ./sequoiadb-1.10-linux_x86_64-installer.run --mode text --SMS false

我采用的是字符向導安裝,依次會經過

  1. 語言選擇,有 English 和 中文 供選擇,我選擇是English;
  2. 用戶許可協議聲明,如有疑問開源選擇2,查看協議的具體內容;
  3. 確認許可,選擇 y;
  4. 安裝目錄,默認是 /opt/sequoiadb;(不包括“;”)
  5. 創建數據庫管理員賬戶:用戶名,默認是sdbadmin;密碼,默認為sdbadmin,如果你需要自己設定數據庫管理員用戶名和密碼,可以在對應的輸入提示處輸入;
  6. 集群管理服務端口,默認是11790
  7. 開機自啟動,我選擇的是 Y,確認開機自啟動;
  8. OM Server安裝等確認,我選擇的是 y,確認安裝;

最后就是繼續安裝確認,必須選擇 Y哈,確認之后會出現一下字符:

Please wait while Setup installs SequoiaDB Server on your computer.

 Installing
 0% ______________ 50% ______________ 100%
 ###########################

此時耐心等待其安裝即可,當安裝完成,會自動切入Shell輸入狀態。

再次確認一下:安裝過程中,安裝程序會創建一個數據庫管理員的系統用戶,用戶數據庫的管理和部署。

到此處,數據庫正確安裝了 :)

 

安裝完成后,先檢查數據庫服務狀態,在shell中執行 service sdbcm status

正確情況下,應該出現的是 sdbcmd進程號,和 sdbcm is running. 的提示:

tynia@Milky:~$ service sdbcm status
4991
sdbcm is running.

如果sdbcm服務並沒有啟動,可以手動執行 service sdbcm start 來啟動sdbcm服務。注:我的機器hostname是Milky,當前user是tynia。

如果仍然失敗,請檢查一下安裝過程是否出錯。

 

sdbcm服務狀態正確的話,就可以繼續部署了。

我將在自己機器上部署一個集群環境:

一個編目節點組,也稱之為 catalog節點組,有兩個節點,每個節點稱為 catalog節點;

一個數據節點組,稱之為 data節點組,有三個節點,每個節點稱為 data節點;

一個協調節點組,稱之為coord節點組,有一個節點,稱為coord節點;

我只有一台機器,因此部署的是一個偽集群環境:所有的數據節點都在一台機器上,無法保證數據安全。如果用於生產系統,最好的做法是把集群中的節點分開安裝,達到數據保護的目的。

 

步驟如下:

一、准備創建集群的條件

  • 切換到數據庫管理員賬戶:~$ su sdbadmin
  • 執行SequoiaDB的shell程序,程序路徑是 /opt/sequoiadb/bin/sdb
    ~$ /opt/sequoiadb/bin/sdb
    進入數據庫shell環境,這個環境和mongodb很像,是一個javascript的執行環境;
  • 連接到數據庫的集群管理服務,在shell環境下,輸入:
    > oma = new Oma( "localhost", 11790 )
    第一個參數是本地的hostname,第二個是集群管理服務的端口號;
  • 連接成功后,創建一個臨時的協調節點:輸入:
    > oma.createCoord( 18800, "/opt/sequoiadb/database/coord/18800" )
    第一個參數是所指定的臨時coord節點的服務端口號,第二個參數是所指定的臨時coord節點的配置文件路徑;
  • 創建臨時節點成功之后,啟動臨時coord節點:
    > oma.startNode( 18800 )
  • 等待臨時coord節點啟動,然后就可以連接上coord節點繼續部署:
    > db = new Sdb( "localhost", 18800 )

 

二、創建catalog節點組

  • 成功連接到臨時coord節點,開始創建catalog節點組:
    > db.createCataRG( "Milky", 11820, "/opt/sequoiadb/database/cata/11820" )

創建成功之后,數據庫系統會創建一個名字為“SYSCatalogGroup”的catalog節點組,此時catalog節點組中還沒有節點,需要接下來繼續創建。

TIPS:第一個參數是服務器的主機名(可以是其它能訪問的其它機器,做到分布式,必須是hostname,慎重使用“localhost”),第二個參數是catalog節點組的服務端口號,第三個參數是catalog節點組的配置文件目錄,系統會自動創建該目錄;

NOTICE:因為我只有一台機器,端口號無法重復使用,因此沿着11820,使用1183011840。如果條件允許,具有多個物理機部署,完全可以指定 11800端口作為catalog節點服務端口,這樣也方便記憶和管理。下面創建數據節點所用的端口號,原因於此處相同。

Question:為什么我不從11810開始?慢慢來,后面會有解答 :)

  • 取得catalog節點組對象,輸入:
    > cataRG = db.getRG( "SYSCatalogGroup" ) 
  • 創建第一個catalog節點,輸入:
    > catanode1 = cataRG.createNode( "Milky", 11830, "/opt/sequoiadb/database/cata/11830" )
  • 創建第二個catalog節點,輸入:
    > catanode2 = cataRG.createNode( "Milky", 11840, "/opt/sequoiadb/database/cata/11840" ) 

TIPS:creaeNode接口的第一個參數是物理機的主機名(前面已經提到過,可以做分布式部署),第二個參數是catalog節點服務端口號,第三個參數是catalog節點配置文件路徑;

  • 創建catalog節點成功之后,就是啟動catalog節點了,輸入:
    > catanode1.start()
    等待第一個節點啟動;輸入:
    > catanode2.start()
    等待第二個節點啟動;

catalog節點啟動成功,意味着集群的創建,成功了1/3;

 

三、創建數據節點組和數據節點

  • 輸入:
    > dataRG = db.createRG( "datagroup" )

TIPS:其中參數“datagroup”是數據節點組的名字,可以自行指定;

  • 接下來創建第一個數據節點:
    > dataRG.createNode( "Milky", 11850, "/opt/sequoiadb/database/data/11850" )
  • 創建第二個數據節點:
    > dataRG.createNode( "Milky", 11860, "/opt/sequoiadb/database/data/11860" )
  • 創建第三個數據節點:
    > dataRG.createNode( "Milky", 11870, "/opt/sequoiadb/database/data/11870" )
  • 節點創建成功之后,啟動數據組里面的節點:
    > dataRG.start()

這個時間會有點長,等待吧 :)

待到數據節點組啟動后,我的集群環境部署已經成功了 2/3。

 

四、創建coord節點組和coord節點

  • 創建coord節點組,輸入:
    > coordRG = db.createCoordRG()
  • 然后創建一個coord節點:
    > coordRG.createNode( "Milky", 11810, "/opt/sequoiadb/database/coord/11810" )

TIPS:當然,你可以創建多個coord節點,我只想創建一個coord節點。

Answer:終於出現了11810端口了,原來是用在協調節點上!

  • 然后依然是啟動coord節點組:
    > coordRG.start()

等待coord節點組啟動,我的數據庫集群環境部署完畢。接下來是一些清理工作。

 

五、掃尾

  • 刪除臨時coord節點:
    > oma = new Oma( "localhost", 11790 )
  • 連接上集群管理服務,刪除臨時節點:
    > oma.removeCoord( 18800 )

TIPS:18800即是要刪除的臨時節點的服務端口號。

 

最后,梳理一下整個環境:

整個集群都在一台機器上,其中:

11810:coord節點服務端口;

11820:catalog節點組服務端口;

11830:catalog節點1服務端口;

11840:catalog節點2服務端口;

11850:data節點1服務端口;

11860:data節點2服務端口;

11870:data節點3服務端口。

 

感謝您看到此處。本問大致操作流程,都是從SequoiaDB官網信息中心得來。因為條件有限,部署環境有所不同,為您帶來了困惑,請見諒!

下一篇將用SequoiaDB進行簡單的數據操作,敬請關注! 

 

=====>THE END<=====


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM