MongoDB(四)——管理架構

來源:互聯網
上載者:User

標籤:

         前面介紹MongoDB基礎,在這裡,我們推薦兩個網站,我們可以看看,評論是相當具體:http://www.w3cschool.cc/mongodb/mongodb-tutorial.html。http://www.yiibai.com/mongodb/mongodb_create_backup.html#。好這篇文章來看一下MongoDB的資料管理,架構搭建。好。先來看張圖:

 

 

       下邊依照這張圖進行一一介紹。

       一,管理篇,當然主要是對資料庫的管理,包含我們最關心的資料。和管理這些資料的使用者。

不管非關係型還是關係型資料庫。這一點都是很重要的。

 

       1,資料的匯入匯出:對於MongoDB的資料匯入匯出,用到的還是bin下的命令mongoexport(匯出),mongoimport(匯入)。

 

       mongoexport:預設匯出的JSON格式的檔案。

進入dos命令表單,在d:\mongodb\bin的路徑下,利用mongoexport命令,能夠通過mongoexport -help進行協助查詢。文法:mongoexport -d mydatabase -c mycollection --port 連接埠  --cvs -f 要匯出的列  -0  指定匯出的路徑名+檔案名稱

 

         mongoimport:和上邊的使用方法基本一樣,能夠匯入JSON格式資料,也能夠匯出cvs資料格式。

mongoimport -h:指明資料庫宿主機的IP -u:指明資料庫的username -p:指明資料庫的password -d:指明資料庫的名字 -c:指明collection的名字 --type cvs --headerline(指名第一行是列名,無須要匯入) --file要匯入的檔案

 

        匯入匯出很easy的,熟練使用這兩個命令就可以。

 

        2,資料的備份和恢複:資料無價。隨著當今大資料時代的到來,資料的是越來越加重要,儲存好資料。就相當於儲存了價值,所以資料庫的備份和恢複工作也是很的重要,這裡看一下Mongodb的備份和操作。

 

        備份:也是bin下的命令mongodump,相對來說較簡單:

參數說明:

-h:指明資料庫宿主機的IP

-u:指明資料庫的username

-p:指明資料庫的password

-d:指明資料庫的名字

-c:指明collection的名字

-o:指明到要匯出的檔案名稱

-q:指明匯出資料的過濾條件

 

          恢複:bin下的命令mongorestore

          

參數說明:

-h:指明資料庫宿主機的IP

-u:指明資料庫的username

-p:指明資料庫的password

-d:指明資料庫的名字

-c:指明collection的名字

-o:指明到要備份的檔案名稱

-q:指明備份資料的過濾條件

 

        3,使用者管理,mongodb裡邊的使用者管理,他有兩類使用者。一個是超級管理員,一個每一個資料庫的資料庫管理員。預設情況下是沒有許可權認證的。僅僅有啟用了安全性認證後。資料庫認證的使用者才幹夠進行讀寫操作。

啟動時指定 --auth即加入了許可權認證。

          

       1.加入並驗證使用者,當中這是給本資料test加入使用者,第三個參數為readOnly,true或false,表示是否為僅僅讀。

> use test

> db.addUser("zjx","tsjianxin")

> db.auth("zjx","tsjianxin")

        2.查看已存在的使用者

> db.system.users.find()

        3.刪除使用者

> use dbname (admin or 51cv ,etc)

> db.system.users.remove({user:"haha"})

> db.system.users.find()

         

       給admin加入的使用者為超級管理員,能夠管理其他資料庫,可是每一個資料庫的登入驗證必須從自己管理的資料庫進行驗證,超級管理必須通過admin進行管理。然後切換來管理其他資料庫。

 

 

       二,架構篇,這裡簡單看一下分散式資料庫的搭建,分為主從複製和複本集兩個情況,簡單來看一下。

 

       1,Master-Slave(主從)複製:MongoDB支援在多個機器中通過非同步複製達到容錯移轉和實現冗餘。多機器中同一時刻僅僅有一台是用於寫操作。也就是Master(主server),可是它能夠把讀操作分給其他的slave(從server)。這也就是主從,這樣的情況,當主server宕掉以後,須要我們手動將一台從server改為主server,這也是這樣的形式不好的地方。

 

       首先,須要我們安裝兩台MongoDBserver(當然也能夠通過一台server。在不同的連接埠上)。然後主server啟動的命令:mongod --master  --dbpa "存放資料庫的路徑" --logpath "存放日誌的路徑"  --port 連接埠號碼     這樣我們的主server就算完畢了。

      從server啟動命令: mongod --slave --source 主server的ip:主server的mongodb的連接埠號碼  --dbpa "存放資料庫的路徑" --logpath "存放日誌的路徑"  --port 連接埠號碼   這樣的我們主server的從server也就啟動好了,當然我們能夠建立多個從server。然後我們能夠在主server進行增刪改操作,看從server上的資料會隨著主server的變化而變化,這樣就達到了,mongodb的主從分布。

 

        2,Replica Set(複本集)複製,這樣的分布叢集,主要添加了出現問題自己主動切換和自己主動修複成員節點。各個DB之間的資料全然一樣。和主從最為顯著的差別在於其沒有固定的節點,它是整個叢集選舉出的一個主節點,當其共工作不正常時,其他節點強烈推薦使用。

 

         部署步驟:a,分別為每一個mongoDBserver建立data儲存路徑和log儲存路徑

                           b,分別建立主從key檔案用於標識叢集的私密金鑰。裡邊存上同樣的私密金鑰。改為僅僅讀形式的。

                           c,每一個server進行啟動:mongod --replSet rs1(複本集名字,同樣就可以)  --keyFile  key的路徑  --port 連接埠號碼 --dbpath 資料庫存放路徑  --logpath 日誌路徑

 

                           d,配置初始化Replica Sets,也就是將這個集合進行配置:登入隨意一台:config_rs1={_id:"rs1",members:[{_id:0,host:"server1IP:連接埠",priority:1(優先順序)}。{id:1,host:"server2IP:連接埠",priority:2(優先順序)}]}

 然後初始化配置:rs.initiate(config_rs1);    Ok就可以

 

        這樣就弄好了,優先順序數字越大。優先順序越高。高的這一台將自己主動選為主server。能夠進行增刪改查。而其他的則是從server能夠進行讀。注意:rs.slaveOk();

 

        好。最後舉一個範例。來理解一下這兩種架構。

主從複製好比小學班級,複本集複製好比大學班級。

每一個班級都有一個班長。就是masterserver。其他學生是slaveserver。通過班長能夠對班級事宜進行增刪改查,而通過學生僅僅能對班級事宜進行瞭解查詢。小學的班長請假了,須要我們老師再來指定一個班長,學生沒有意識去推薦,而大學班級,則會由學生自行推薦,無須老師的介入。

 

          大,這會第一本,mongoDB在深入研究還有待大大,通過使用連續的深刻理解。不斷熟悉,。連續蒸餾。

 

MongoDB(四)——管理架構

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.