东坡下载:内容最丰富最安全的下载站!

首页IT技术 → linux系统MongoDB数据库安装_主从同步_备份与恢复教程

linux系统MongoDB数据库安装_主从同步_备份与恢复教程

相关文章发表评论 来源:本站整理时间:2014/11/8 9:50:54字体大小:A-A+

更多

作者:佚名点击:216次评论:0次标签: mongodb主从配置

对于linux系统下的MongoDB数据库安装配置等操作,小编为大家整理了linux系统MongoDB数据库安装、配置、主从同步、备份与恢复资料,希望对大家有所帮助。

MongoDB介绍

Mongo是一个高性能,开源,模式自由(schema-free)的文档型数据库,它在许多场景下可用于替代传统的关系型数据库或键/值(key-value)存储方式。Mongo使用C++开发,具有以下特性: 

l 面向集合的存储:适合存储对象及JSON形式的数据。 

l 动态查询:Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。 

l 完整的索引支持:包括文档内嵌对象及数组。Mongo的查询优化器会分析查询表达式,并生成一个高效的查询计划。 

l 查询监视:Mongo包含一个监视工具用于分析数据库操作的性能。 

l 复制及自动故障转移:Mongo数据库支持服务器之间的数据复制,支持主-从模式及服务器之间的相互复制。复制的主要目标是提供冗余及自动故障转移。 

l 高效的传统存储方式:支持二进制数据及大型对象(如照片或图片)。 

l 自动分片以支持云级别的伸缩性(处于早期alpha阶段):自动分片功能支持水平的数据库集群,可动态添加额外的机器。 

模式自由(schema-free),意味着对于存储在mongodb数据库中的文件,我们不需要知道它的任何结构定义。如果需要的话,你完全可以把不同结构的文件存储在同一个数据库里。 

存储在集合中的文档,被存储为键-值对的形式。键用于唯一标识一个文档,为字符串类型,而值则可以是各中复杂的文件类型。我们称这种存储形式为BSON(Binary Serialized dOcument Format)。 

MongoDB服务端可运行在Linux、Windows或OS X平台,支持32位和64位应用,默认端口为27017。推荐运行在64位平台,因为MongoDB在32位模式运行时支持的最大文件尺寸为2GB。 

MongoDB把数据存储在文件中(默认路径为:/data/db),为提高效率使用内存映射文件进行管理。 

=== 安装、配置 ===

源码包: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.创建数据库文件目录,默认为/data/db,我把数据库文件目录放在当前文件夹下,mkdir -p data/mongodb,创建日志目录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.建立数据库目录

mkdir /mongodb/masterdb

mkdir/mongodb/slavedb_1

mkdir/mongodb/slavedb_2

2.分别启动主从服务器

启动主服务器 监听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

#启动后 就会看到有日志 显示 从主服务器复制内容了

相关参数:./mongod --help

--autoresync 当发现从服务器的数据不是最新时,开始从主服务器请求同步数据

--slavedelay 同步延迟,单位:秒

3.测试主从

a、在主服务器新建数据库

./bin/mongo--port 10001

show dbs

#里面只有系统数据库,同时如果做插入数据的操作 会提示 not master

use testdb

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

b、在从服务器上查看同步数据

./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"} #此为同步过来的数据,测试成功

=== 备份与恢复 ===

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

将/tmp/backup 下面的文件导入数据库:

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

mongodb提供了两个命令来备份(mongodump )和恢复(mongorestore )数据库。

1、备份数据库

语法:mongodump -h IP -d 数据库 -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

出现此提示说明备份成功

2、恢复数据库

语法:mongorestore -h 主机 -d 目标库 -drop --directoryperdb 源文件

【注释】--drop参数,有此参数,则表示,先删除所有的记录,然后恢复。如无此参数,则恢复备份时候的数据,备份之后新增加的数据依然存在;/backup/mongodb则是备份文件存放路径

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

3.另外mongodb还提供了mongoexport 和 mongoimport 这两个命令来导出或导入数据,导出的数据是json格式的。也可以实现备份和恢复的功能。

例:

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 无聊无聊
热门评论
最新评论
昵称:
表情: 高兴 可 汗 我不要 害羞 好 下下下 送花 屎 亲亲
字数: 0/500 (您的评论需要经过审核才能显示)

本类常用软件