熱門文章 (Popular Post)

顯示具有 「Mongo DataBase 學習系列」 標籤的文章。 顯示所有文章

[Database][MongoDB] 製作複本 ( Replica Sets )

By : Duran Hsieh

目錄:


前言:

Replicat Sets是由多個MongoDB所組合而成的群組,保存著相同的資料,藉此讓資料庫
保持不中斷的運作,具有高可用性。在製作Replicat Sets前,必須先了解一些專有名詞。

在Replicat Sets可以分成三個角色:Primary, Secondary, 與Arbiter
  1. Primary
  2. Secondary
  3. Arbiter 
Replicat Sets每一個資料庫均會維持彼此的連線,確認每個資料庫是否正常運作。群組內
對外讀寫資料、主要的資料庫,我們稱為Primary。當資料庫內容有異動時,會同步更新
其他的資料庫(我們稱之為Secondary,可以擁有多個),如下圖所示:

 

[Database][MongoDB] 資料匯出、匯入、備份與還原 ( Backup, Restore, Import and Export )

By : Duran Hsieh

目錄:



前言:

前面幾篇我們介紹了mongodb的安裝、服務註冊與基本操作,而在這篇,我們要介紹基本資料
匯出與備份還原的操作,這篇結束後,mongodb的基本操作介紹就差不多了,後面會在介紹進
階功能:副本(replica sets)製作與副本上建立索引的方法。
這章節將介紹匯入匯出指令與備份還原指令,雖然備份資料可以也可以透過匯入匯出方式達到可能的效果,
但官方網站不建議這樣使用,因為匯出的json(或其他)檔案,沒有詳細紀錄資料類型,利用匯入的方式進行備援,可能會造成一些資料面的問題。

執行步驟:

  • 匯入與匯出:指資料匯出匯入使用,可以使用的格式有json, csv, tsv等
    • Export command:mongoexport
      step.1 Enter command as below (out: file path and file name)
      mongoexport --db test --collection Currency --out Currency.json

[Database][MongoDB] 新增、修改、查詢、刪除操作 2 ( CRUD operation 2 )

By : Duran Hsieh

目錄:



前言:

在前一篇MongoDB CRUD1章節中,我們介紹mongo shell基本的操作與查詢指令,
在本篇,我們接簡單介紹insert, update, remove與drop常用指令。


執行步驟:

Insert:
MongoDB是以document的結構進行儲存,並沒有固定的綱要(schemaless),新增(Insert)的
過程中,若遇到新的欄位會自動建立(但並不是每筆資料都加上此欄位),比起關連式資料庫需要修改
資料結構,MongoDB更顯得有彈性。

基本指令如下:
db.people.insert({name:"alice",type:"student",age:20,array:[1,2,3,4,5]})


[Database][MongoDB] Create Indexes on the Replica Sets

By : Duran Hsieh

目錄:

前言:

在Replica Sets環境下建立索引大致上可以歸類兩大步驟:於PrimarySecondary建立索引。
雖然操作人員於Primary建立索引後,會自動同步到Secondary,在每個Secondary建立索引,
但官方網站建議完成所有的Secondary步驟後,最後於Primary環境下建立索引,對於營運中
的資料庫影響較小。

Create Indexes on the Replica Sets 步驟如下:
  1. 在Secondary建立索引
    • 關閉原有資料庫服務
    • 單獨啟動服務
    • 建立索引
    • 關閉單獨服務,重新啟動(加入Replica Sets)
  2. 在Primary建立索引
    • 背景執行建立索引
    • 切換Secondary至primary

執行步驟:


一、在Secondary建立索引

      Step 1. 開啟命令提示字元(shell or command),連線到primary db確認環境。


      Step 2. 下方工具列點選右鍵,選擇啟動服務管理員,點選服務。


    Step 3. 找到Secondary服務後,右鍵點選,選擇停止


    Step 4. 從第一步驟的命令提是字元,觀看secondary是否已經關閉      
rs.status()




      Step 5. 啟動另一個命令提示字元(shell or command line),單獨啟動資料庫       
mongod --port 27020 --dbpath C:\data1\db1




      Step 6. 啟動第三個命令提示字元(shell or command line),連線到剛才的資料庫       
mongo --port 27020

      
      Step 7. 切換資料庫後,建立索引。      
use database
db.collections.createIndex({"Id":1})



      Step 7. 於第五步驟的命令提示字元,確認建立索引狀態。
                  確認完成後,關閉服務(關閉command line)


       Step 8. 重新啟動服務。


     Step 9. 於第一步驟的命令提是字元,確認服務啟動,有接上Replca Sets。
                 依此類推,完成所有Secondary區塊。



二、在Primary建立索引

      背景執行的好處是可以同步寫入資料,但需要花費較多時間且可能會影響primary的寫
      入效能,適用於較不複雜的資料結構。

      下列步驟背景建立索引:

      Step 1. 開啟命令提示字元(shell or command),連線到資料庫
                  切換資料庫後,建立索引

use database
db.collections.createIndex({id:1},{background: true})
      
      Step 2. 觀看索引建立狀態,完成後,Replica Sets匯自動將索引帶到Secondary。


     
      下列步驟為切換Secondary為Primary:
      Step 1. 開啟命令提示字元(shell or command),連線到primary db確認環境。

rs.status()



     Step 2. 開啟另一個命令提示字元,連線到另一個Secondary,輸入下列指令,使他不會變成
                  primary。(30秒內)
rs.freeze(30)


     Step 3. 在primary環境下,輸入下列指令,即可讓出primary。(30秒內)
rs.stepDown(30)


     Step 4. 再次確認Replica Sets狀態,完成。切換成primary的資料庫,會將索引同步到其他                      Secondary 。
rs.status()


參考資料:

Mongodb官方網站

--
謝謝!


[Database][MongoDB] 新增、修改、查詢、刪除操作 1 ( CRUD operation 1 )

By : Duran Hsieh

目錄:

3. [Database][MongoDB] 新增、修改、查詢、刪除操作 1 ( CRUD operation 1 )

前言:

後續這兩個章節,我將簡單介紹mongodb幾個重要項目:
  1. 資料結構(Documents and JSON)
  2. 基本操作指令
  3. CRUD(新增、查詢、修改與刪除的)指令
在mongodb的官方網站上,有詳細的說明與介紹。除此之外,若您已經熟悉SQL語法的開發者或管理者,想要知道目前的Query如何在mongodb使用,在官方網站上也有SQL語法與mongodb與法的對照說明,您可以參考此連結


資料結構:

Mongodb儲存資料的結構稱document,為一種JSON-like(field-value)組合的格式。
與一般關連式資料庫不同,Mongodb是一種無schema(綱要)的資料庫,它的結構是動態的。
如果你曾經使用Json來進行資料的操作,那對於這種field-value資料格式一定不陌生。

何謂field-value型式資料? field-value型式資料就是一個欄位對應一個值的資料格式,
例如: 

  • name : "duran"
  • age : 26
  • isEnable : true
  • group : ["News" , "sports"]

而document是由這些(field-value)組合而成,下列是document的範例:
{
    name : "Duran",
    age : 29,
    status : "B",
    group : ["News", "sports"]
}

而多個document的集合,我們就稱為collections,而在一個mongodb中一個database,包含了許多collections。


[Database][MongoDB][Windows] Configure與設定資料庫服務 ( Install Windows Service )

By : Duran Hsieh

目錄:



前言:

上一篇,我們簡單介紹Mongo DB安裝過程、啟動資料庫與連線方法。我們以Mongo DB預設的內容(如Port:27017,資料位置C:\data\db…等),快速的啟動資料
庫並進行簡單的測試,確認Mongo DB安裝成功且正常運作。
與其他資料庫系統相似,MongoDB包含許多參數設定,提供DBA進行資料庫
管理。理所當然,我們必須了解如何設定,才能應付不同專案中不同的需求。
在這一章節,我們將簡單介紹Mongo DB相關組態(Configure)、撰寫組態檔
案(Configuration File)與新增(移除)Mongo DB為Windows 服務。


執行步驟:

一、組態的參數使用方法(可以混用):

使用預設方式啟動資料庫:

mongod

設定資料位置:
//mongod --dbpath Path
mongod --dbpath "d:\test\mongo\db\data"


設定Port:
//mongod --port PortNumber
mongod --port 27021


設定Replica Sets:
//mongod  --replSet  --oplogSize 
mongod  --replSet rs0  --oplogSize 128

二、撰寫組態檔案:

每次啟動資料庫的時候,都需要打入一堆參數,其實相當麻煩:我們能將這些組態設定資訊寫成一個組態檔案(Configuration   file),啟動時指定讀取即可。

  • 組態檔案格式(Configuration file Fotmat):
    Mongo DB 2.6版本之後,官方網站講組態檔案格式改用YAML格式進行編寫,
    如下圖所示。
    (提醒:YAML不使用tab,而是使用空白做編排)

[Database][MongoDB] 介紹與安裝 ( Introduction and Installation )

By : Duran Hsieh

目錄:

1. [Database][MongoDB] 介紹與安裝 ( Introduction and Installation )

前言:

運氣很好的,原本從研究所開始到工作三年,接觸過My SQL, Sybase, Oracle, 
Sql Server等多種資料庫,但仍脫離不了關聯式資料庫的範疇,原本以為會一
直在關聯式資料庫的世界打滾,卻在某種因緣際會下,開始了摸索MongoDB
旅程。

初次開始接觸MongoDB,發現他有一些優點:
1.     與關聯式資料庫最大的不同,就是看不見硬梆梆的關聯性(當然,它有自己
      獨特的方式進行關聯)
2.     不需要因為需要更改資料表欄位而大費周章調整結構與修改程式。
3.     若您對JSON很熟悉,那對他的Document一定不陌生。


這一系列的文章預計會有六篇,從安裝、增加Windows ServiceCRUD(Create,
 Read, Update, Delete)基礎與進階操作、備份還原與匯出匯入、製作備份組(
Replica Sets)等功能,是這段期間依照官方網站與自行摸索的紀錄,除了做為自
己學習日記,也提供大家參考(官方網站教學非常詳細,大家可以多利用)

在這一篇,我們間單介紹如何安裝MongoDB、執行、測試與使用相關軟體。


執行步驟:

Step 1 : 輸入網址:https://www.mongodb.org/
             Enter website url: https://www.mongodb.org/




Step 2 :選擇Widnow 64-bit 2008 R2,選擇Download(MSI)
            Select Widnow 64-bit 2008 R2, and then click Download(MSI) 



Step 3 : 點選Next
             Click Next



Step 4 : 勾選"I accept the term in the License Agreement",然後點選Next
             Check "I accept the term in the License Agreement" ,and then Click Next



Step 5 : 點選 Complete
             Click Complete



Step 6 : 點選 Install
             Click Install



Step 7 : 安裝中...
             Installing...



Step 8 : 點選 Finish
             Click Finish



Step 8 : 因為MongoDB預設的路徑為C:\data\db,我們需要建立data與db資料夾。
             首先,開啟命令提示字元。
             We need to create two folder because default path of MongoDB is "C:\data\db".
             At first, open an Administrator command prompt.



Step 9 : 輸入下列指令
              Enter command as below

md data\db


Step 10 : 輸入下列指令啟動MongoDB
               Enter command as below to Start MongoDB

cd Program Files\MongoDB\Server\3.0\bin
mongod



Step 11 : 開啟另一個命令提示字元,並輸入下列指令連線到MongoDB
               open another Administrator command prompt,  and enter command as
               below to connect MongoDB

cd Program Files\MongoDB\Server\3.0\bin
mongo





Step 12 . 完成,測試下列指令(新增與查詢)
                Finish, enter command as below to test (insert, search)

db.test.insert({name:"duran",age:26,status:"A",group:["new","sport"]})
db.test.find({name:"duran"})
db.test.find()





注意(Important):


  • 若您的作業系統版本是在Windows 7或Windows Server 2008 R2,安裝完MongoDB,安裝文件提示必須安裝微軟的修正更新,以解決記憶體對應檔案問題。下載位置:https://support.microsoft.com/zh-tw/kb/2731284






  • 使用系統管理者身分執行命令提示字元 (open another Administrator command prompt)

參考資料:

http://docs.mongodb.org/manual/tutorial/install-mongodb-on-windows/


--
謝謝!






- Copyright © Duran Hsieh @ Matsurigoto - Date A Live - Powered by Blogger - Designed by Johanes Djogan -