東坡下載:內(nèi)容最豐富最安全的下載站!

首頁IT技術 → linux系統(tǒng)MongoDB數(shù)據(jù)庫安裝_主從同步_備份與恢復教程

linux系統(tǒng)MongoDB數(shù)據(jù)庫安裝_主從同步_備份與恢復教程

相關文章發(fā)表評論 來源:本站整理時間:2014/11/8 9:50:54字體大。A-A+

更多

作者:佚名點擊:216次評論:0次標簽: mongodb主從配置

對于linux系統(tǒng)下的MongoDB數(shù)據(jù)庫安裝配置等操作,小編為大家整理了linux系統(tǒng)MongoDB數(shù)據(jù)庫安裝、配置、主從同步、備份與恢復資料,希望對大家有所幫助。

MongoDB介紹

Mongo是一個高性能,開源,模式自由(schema-free)的文檔型數(shù)據(jù)庫,它在許多場景下可用于替代傳統(tǒng)的關系型數(shù)據(jù)庫或鍵/值(key-value)存儲方式。Mongo使用C++開發(fā),具有以下特性: 

l 面向集合的存儲:適合存儲對象及JSON形式的數(shù)據(jù)。 

l 動態(tài)查詢:Mongo支持豐富的查詢表達式。查詢指令使用JSON形式的標記,可輕易查詢文檔中內(nèi)嵌的對象及數(shù)組。 

l 完整的索引支持:包括文檔內(nèi)嵌對象及數(shù)組。Mongo的查詢優(yōu)化器會分析查詢表達式,并生成一個高效的查詢計劃。 

l 查詢監(jiān)視:Mongo包含一個監(jiān)視工具用于分析數(shù)據(jù)庫操作的性能。 

l 復制及自動故障轉(zhuǎn)移:Mongo數(shù)據(jù)庫支持服務器之間的數(shù)據(jù)復制,支持主-從模式及服務器之間的相互復制。復制的主要目標是提供冗余及自動故障轉(zhuǎn)移。 

l 高效的傳統(tǒng)存儲方式:支持二進制數(shù)據(jù)及大型對象(如照片或圖片)。 

l 自動分片以支持云級別的伸縮性(處于早期alpha階段):自動分片功能支持水平的數(shù)據(jù)庫集群,可動態(tài)添加額外的機器。 

模式自由(schema-free),意味著對于存儲在mongodb數(shù)據(jù)庫中的文件,我們不需要知道它的任何結構定義。如果需要的話,你完全可以把不同結構的文件存儲在同一個數(shù)據(jù)庫里。 

存儲在集合中的文檔,被存儲為鍵-值對的形式。鍵用于唯一標識一個文檔,為字符串類型,而值則可以是各中復雜的文件類型。我們稱這種存儲形式為BSON(Binary Serialized dOcument Format)。 

MongoDB服務端可運行在Linux、Windows或OS X平臺,支持32位和64位應用,默認端口為27017。推薦運行在64位平臺,因為MongoDB在32位模式運行時支持的最大文件尺寸為2GB。 

MongoDB把數(shù)據(jù)存儲在文件中(默認路徑為:/data/db),為提高效率使用內(nèi)存映射文件進行管理。 

=== 安裝、配置 ===

源碼包:wget http://downloads.mongodb.org/linux/mongodb-linux-i686-latest.tgz 

1.解壓tar -zxvf mongodb-linux-i686-1.6.5.tgz

重命名mv mongodb-linux-i686-1.6.5.tgz mongodb

2.創(chuàng)建數(shù)據(jù)庫文件目錄,默認為/data/db,我把數(shù)據(jù)庫文件目錄放在當前文件夾下,mkdir -p data/mongodb,創(chuàng)建日志目錄mkdir log

3.啟動服務

cd /usr/local/mongodb/bin

./mongod -dbpath=/data/mongodb -logpath=/var/log/mongodb.log

4.安裝完,進行測試

[root@localhost bin]# ./mongo

MongoDB shell version: 1.6.5

connecting to: test

> db.foo.save({a:1})

> db.foo.find()

{ "_id" : ObjectId("4d292a457e289d5d90dc6f33"), "a" : 1 }

5.將mongoDB服務加入隨機啟動

vi /etc/rc.local

使用vi編輯器打開配置文件,并在其中加入下面一行代碼

/usr/local/mongodb/bin/mongod -dbpath=/data/mongodb --port 27017

-logpath=/var/log/mongodb.log --logappend &

=== 主從同步 ===

1.建立數(shù)據(jù)庫目錄

mkdir /mongodb/masterdb

mkdir/mongodb/slavedb_1

mkdir/mongodb/slavedb_2

2.分別啟動主從服務器

啟動主服務器 監(jiān)聽10000端口

./bin/mongod-dbpath /mongodb/masterdb/--port 10000 --master

啟動兩個從服務器 分別用10001 和 10002 端口 也可以使用 master master-> slave 的設置

./bin/mongod-dbpath /mongodb/slavedb_1--sourcelocalhost:10000 --slave --port 10001

./bin/mongod-dbpath /mongodb/slavedb_2--sourcelocalhost:10000 --slave --port 10002

#啟動后 就會看到有日志 顯示 從主服務器復制內(nèi)容了

相關參數(shù):./mongod --help

--autoresync 當發(fā)現(xiàn)從服務器的數(shù)據(jù)不是最新時,開始從主服務器請求同步數(shù)據(jù)

--slavedelay 同步延遲,單位:秒

3.測試主從

a、在主服務器新建數(shù)據(jù)庫

./bin/mongo--port 10001

show dbs

#里面只有系統(tǒng)數(shù)據(jù)庫,同時如果做插入數(shù)據(jù)的操作 會提示 not master

use testdb

db.blog.save({title:"new article"})

b、在從服務器上查看同步數(shù)據(jù)

./bin/mongo--port 10001

MongoDB shell version: 1.6.0

connecting to: 127.0.0.1:10001/test

> show dbs

admin

local

testdb

> use testdb

switched to db testdb

> db.blog.find()

{ "_id": ObjectId("4c776ccce7af0727ce4b6234"), "title": "new article"} #此為同步過來的數(shù)據(jù),測試成功

=== 備份與恢復 ===

mongodump -h 192.168.0.39:10001 -d csf -o /backup/mongodb

將/tmp/backup 下面的文件導入數(shù)據(jù)庫:

mongorestore -h 192.168.0.39:10001 -d csf -drop --directoryperdb /backup/mongodb/csf/

mongodb提供了兩個命令來備份(mongodump )和恢復(mongorestore )數(shù)據(jù)庫。

1、備份數(shù)據(jù)庫

語法:mongodump -h IP -d 數(shù)據(jù)庫 -o 文件存在路徑

./mongodump -h 127.0.0.1 -d testdb -o /backup/mongobak/

connected to: 127.0.0.1:10000

DATABASE: testdb to /data/dump/testdb

testdb.blog to /data/dump/testdb/blog.bson

1 objects

testdb.system.indexes to /data/dump/testdb/system.indexes.bson

1 objects

出現(xiàn)此提示說明備份成功

2、恢復數(shù)據(jù)庫

語法:mongorestore -h 主機 -d 目標庫 -drop --directoryperdb 源文件

【注釋】--drop參數(shù),有此參數(shù),則表示,先刪除所有的記錄,然后恢復。如無此參數(shù),則恢復備份時候的數(shù)據(jù),備份之后新增加的數(shù)據(jù)依然存在;/backup/mongodb則是備份文件存放路徑

./mongorestore -h 127.0.0.1 --directoryperdb /data/dump 

3.另外mongodb還提供了mongoexport 和 mongoimport 這兩個命令來導出或?qū)霐?shù)據(jù),導出的數(shù)據(jù)是json格式的。也可以實現(xiàn)備份和恢復的功能。

例:

mongoexport -d mixi_top_city_prod -c building_45 -q '{ "uid" : "10832545" }' > mongo_10832545.bson

mongoimport -d mixi_top_city -c building_45 --file mongo_10832545.bson



擴展知識

相關評論

閱讀本文后您有什么感想? 已有 人給出評價!

  • 2791 喜歡喜歡
  • 2101 頂
  • 800 難過難過
  • 1219 囧
  • 4049 圍觀圍觀
  • 5602 無聊無聊
熱門評論
最新評論
發(fā)表評論 查看所有評論(0)
昵稱:
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
字數(shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)