MongoDB 入门实战(2)–安装

本文主要介绍 MongoDB 的安装,使用到的软件版本:MongoDB 5.0.5、Centos 7.6。

1、单机安装

1.1、下载并解压 MongoDB

下载地址:hthadoop菜鸟教程tps://www.mongodb.com/try/download/community

解压:tar zxvfmongodb-linux-x86_64-rhel70-5.0.5.tgz

1.2、创建数据及日志目录

cd $MONGODB_HOME

mkdir data
mkidr logs

1.3、启动

cd $MONGODB_HOME/bin

./mongod --bind_id 10.40.96.10,127.0.0.1 --dbpath ../data --logpath ../logs/mongod.log --fork

--dbpath:数据存储目录

--logpath:日志文件

mongod 命令的更多参数可使用 mongod数据库 -h 来查看。

1.4、停止配置文件的扩展名是什么

通过 mongo 连接 Mon数据库查询语句goDB 的服务,然后执停止的命令。

cd $MONGODB_HOME/bin
./mongo

> use admin
switched to db admin
> db.shutdownServer()

2mongodb面试题、Master-Slave 主从方式安装

主从方式安装时先启动主机节点,再启动被备节点;启动方式如下:

./mongod --master --bind_ip <ip> --dbpath <dbpath> --logpath <logapth>  #主节点  

./mongod --slave --bind_ip <ip> --source <masterip:masterport> --dbpath <dbpath> --logfile <logfile> #备节点

新版的 MongoDB 已经不支持这种部署模式了(运时会提示:M数据库aster/hadoop三大组件slave replicatio数据库系统概论n is no longer supported),这里就不详细介绍了。

3、Replica Set 副本集方式安装

3.配置文件1、规划

ip

端口

角色

MongoDB安装目录

10.49.196.10

27017

Primary

/home/hadoop/app/mongodb-nosql特点5.0.5

10.49.196.11

27017

Secondarmongodb集群y

/home/hadoop/app/mongodb-5.0.5

10.49.1hadoop的核心96.12

27017

Secondary

/home/hadoop/app/mongodb-5.0.5

10.49.196.12

27018

Arbiter

/home/hadoop/app/mongodb-5.0.5-27018

3.2、配置

使用配置文件来启动 MongoDB,各 MongoDB 实例的配置文件(mongod.conf)如下:

10.49.196.10:27017

dbpath=/home/hadoop/app/mongodb-5.0.5/data
logpath=/home/hadoop/app/mongodb-5.0.5/logs/mongo.log
fork=true
replSet=rs0
bind_ip=127.0.0.1,10.49.196.10

10.49.1配置文件中没有undefined的js对象96.11:27017

dbpath=/home/hadoop/app/mongodb-5.0.5/data
logpath=/home/hadoop/app/mongodb-5.0.5/logs/mongo.log
fork=true
replSet=rs0
bind_ip=127.0.0.1,10.49.196.11

10.49.196.12:27017

dbpath=/home/hadoop/app/mongodb-5.0.5/data
logpath=/home/hadoop/app/mongodb-5.0.5/logs/mongo.log
fork=true
replSet=rs0
bind_ip=127.0.0.1,10.49.196.12

10.49.196.12:27018

dbpath=/home/hadoop/app/mongodb-5.0.5-27018/data
logpath=/home/hadoop/app/mongodb-5.0.5-27018/logs/mongo.log
fork=true
replSet=rs0
port=27018
bind_ip=127.0.0.1,10.49.196.12

注:数据目录和日志目录需要自己创建。

3.3、启动nosql特点

在各机数据库系统概论器机器上使用如下命令来启动 MongoDB:

cd $MONGODB_HMOE/bin

./mongod --config ./mongod.conf

3.4、初始化Replica Set

连接Primaryhadoop三大组件,Secondary 的nosql特点任一节点,执初始化操作数据库系统工程师

> use admin
> cfg = {_id: "rs0",members:[{_id: 0,host: '10.49.196.10:27017',priority: 3},{_id: 1,host: '10.49.196.11:27017',priority: 2},{_id: 2,host: '10.49.196.12:27017',priority: 1},{_id: 3,host: '10.49.196.12:27018',arbiterOnly: true}]};
> rs.initiate(cfg)

最外层的 _id 表示 Replica Set 的名nosql怎么读字,members 里包含所有节网络配置文件点的地址以及优nosql数据库与关系型数据库的区别先级nosql数据库的特点;优先级最高成为主节点。对于仲裁节点,需要设置:arbiterOnly:true。

3.5、查看状态

rs0:PRIMARY> rs.status()

3.6、使 Secondary 可读

默认情况下 Secondary 不可写,不可读;可通过执行rs.slaveOk() (新版已过期) 或rs.secondaryOk() 来使Secondary 可读:

rs0:SECONDARY> rs.secondaryOk()

4、Shard数据库系统概论ing 分片方式安装

4.1、hadoop创始人规划

ip

端口

角色

MongoDB安装目录

10.49.196.10

27011

Router(m配置文件ongos)

/home/hadoop/app/mongodb-5.0.5-27011-mongos

27012

Config Server(config Primary)

/home/hadoop/app/mongodb-5.0.5-27012-config

27013

Shard(s配置文件在哪hard1Secondary)

/homehadoop面试题/hadoop/app/mongodb-5.0.5-27013nosql简介-shard1

27014

Sh配置文件是什么意思ard(shard2Senosql数据库condary)

/home/hadoop/app/mongodb-5.0.5-27014-shard2

10.49.196.11

27011

Router(mon数据库系统概论gos)

/home/hadoop数据库系统的特点/app/mongodb-5.0.5-27011-momongodb和redis的区别ngos

27012

Config Server(config Secondary)

/home/hadoop/app/mongodb-5.0.5-27012-config

27013

Shard(shard1 Primary)

/home/hadomongodb是什么op/apmongodb安装教程p/mongodb-5.0.5-27013-shard1

27014hadoop菜鸟教程

Shard(shard2Secondary)

/home/hadoop/ap配置文件怎么创建p/mongodhadoop安装详细步骤b-5.0.5-27014-shard2

10.49.196.12

27011

Router(mongos)

/home/hadoop/app/mongonosql数据库与关系型数据库的区别db-5.0.5-27011-mongos

27012

Config Server(config Shadoop三大组件econdary)

/home/hadnosql数据库oop/app/mongodb-5.0.5-27012-config

27013

Shard(shard1 Seconda数据库系统的核心是ry)

/hnosql怎么读ome/hadoop/app/mongodb-5mongodb安装教程.0.5-27013-shar数据库系统概论d1

27014

Shard(shard2 Primary)

/home/hadoop/app/mongodb-5.0.5-27014-shard2

4.2、启动 Config Server

A、数据库系统概论第五版课后答案使用如下命令启动 config 的各个节点:

./mongod --config ./mon.conf

各节点配置文件 mon.conf 的内容如下:

10.49.196.10:27012

dbpath=/home/hadoop/app/mongodb-5.0.5-27013-config/data
logpath=/home/hadoop/app/mongodb-5.0.5-27012-config/logs/mon.log
fork=true
replSet=config
bind_ip=127.0.0.1,10.49.196.10
port=27012
configsvr=true

10.49.196.11:27012

dbpath=/home/hadoop/app/mongodb-5.0.5-27013-config/data
logpath=/home/hadoop/app/mongodb-5.0.5-27012-config/logs/mon.log
fork=true
replSet=config
bind_ip=127.0.0.1,10.49.196.11
port=27012
configsvr=true

10.49.196.12:27012

dbpath=/home/hadoop/app/mongodb-5.0.5-27013-config/data
logpath=/home/hadoop/app/mongodb-5.0.5-27013-config/logs/mon.log
fork=true
replSet=config
bind_ip=127.0.0.1,10.49.196.12
port=27012
configsvr=true

B、初始化副本集 config

登录任一节点(./mong --port 27012)执行如下命令:

> use admin
> cfg = {_id: "config",members:[{_id: 1,host: '10.49.196.10:27012',priority: 3},{_id: 2,host: '10.49.196.11:27012',priority: 1},{_id: 3,host: '10.49.196.12:27012',priority: 2}]};
> rs.initiate(cfg)

4.3、启动 Shard

4.3.1、启动 shard1

A、使用如下命令启动数据库系统概论第五版课后答案 shard1 的各个节点:

./mongod --config ./mon.conf

各节点数据库系统概论配置文件 mon.conf 的内容如下:配置文件

10.49.196.10:27013

dbpath=/home/hadoop/app/mongodb-5.0.5-27013-shard1/data
logpath=/home/hadoop/app/mongodb-5.0.5-27013-shard1/logs/mon.log
fork=true
replSet=shard1
bind_ip=127.0.0.1,10.49.196.10
port=27013
shardsvr=true

10.49.196.11:27013

dbpath=/home/hadoop/app/mongodb-5.0.5-27013-shard1/data
logpath=/home/hadoop/app/mongodb-5.0.5-27013-shard1/logs/mon.log
fork=true
replSet=shard1
bind_ip=127.0.0.1,10.49.196.11
port=27013
shardsvr=true

10.49.196.12:27013

dbpath=/home/hadoop/app/mongodb-5.0.5-27013-shard1/data
logpath=/home/hadoop/app/mongodb-5.0.5-27013-shard1/logs/mon.log
fork=true
replSet=shard1
bind_ip=127.0.0.1,10.49.196.12
port=27013
shardsvr=true

B、初始化 shnosql怎么读ard1

登录任一节点(./mong --port 27013)执行如mongodb增删改查下命令:

> use admin
> cfg = {_id: "shard1",members:[{_id: 1,host: '10.49.196.10:27013',priority: 2},{_id: 2,host: '10.49.196.11:27013',priority: 3},{_id: 3,host: '10.49.196.12:27013',priority: 1}]};
> rs.initiate(cfg)

4.3.2、启动 shard2

A、使用如下命hadoop安装详细步骤令启动 shard2 的各个节点:

./mongod --config ./mon.conf

各节点配置文件 mon.conf 的内容如下:

10.49.196.10:27014

dbpath=/home/hadoop/app/mongodb-5.0.5-27014-shard2/data
logpath=/home/hadoop/app/mongodb-5.0.5-27014-shard2/logs/mon.log
fork=true
replSet=shard2
bind_ip=127.0.0.1,10.49.196.10
port=27014
shardsvr=true

10.49.196.11:27014

dbpath=/home/hadoop/app/mongodb-5.0.5-27014-shard2/data
logpath=/home/hadoop/app/mongodb-5.0.5-27014-shard2/logs/mon.log
fork=true
replSet=shard2
bind_ip=127.0.0.1,10.49.196.11
port=27014
shardsvr=true

10.49.196.12:27014

dbpath=/home/hadoop/app/mongodb-5.0.5-27014-shard2/data
logpath=/home/hadoop/app/mongodb-5.0.5-27014-shard2/logs/mon.log
fork=true
replSet=shard2
bind_ip=127.0.0.1,10.49.196.12
port=27014
shardsvr=true

BNOSQL、初始化 shard2

登录任一节点(./mong --port 27014)执行如用户配置文件下命令:

> use admin
> cfg = {_id: "shard2",members:[{_id: 1,host: '10.49.196.10:27014',priority: 1},{_id: 2,host: '10.49.196.11:27014',priority: 2},{_id: 3,host: '10.49.196.12:27014',priority: 3}]};
> rs.initiate(cfg)

4.3用户配置文件、启动 Route

这里以启动一个 Route 为数据库系统工程师例来演示,其他的 Route 都是类似的操作。

1、使用如下命令启动 Route:hadoop生态系统

./mongos -f ./mon.conf

配置文件 mon.conf 的内容如下:

logpath=/home/hadoop/app/mongodb-5.0.5-27011-mongos/logs/mon.log
fork=true
bind_ip=127.0.0.1,10.49.196.10
port=27011
configdb=config/10.49.196.10:27012,10.49.196.11:27012,10.49.196.12:27012  #对应配置的副本集

2、配置 Sharding

./mongo --port 27011

mongos> use admin
mongos> sh.addShard("shard1/10.49.196.10:27013,10.49.196.12:27013,10.49.196.12:27013");
mongos> sh.addShard("shard2/10.49.196.10:27014,10.49.196.12:27014,10.49.196.12:27014");

3、数据库查看集群状态

mongos> sh.status()

4、查看分片信息

mongos> use config
mongos> db.shards.find()

5、查看 chunk 信息

mongos> use config
mongos> db.chunks.find()

6、指定使用分片的数据库

mongos> sh.enableSharding("testdb")

7、hash 分片例子

先指定分片的集合和片键

mongos> use testdb
mongos> db.createCollection('col1')
mongos> sh.enableSharding("testdb")
mongos> sh.shardCollection("testdb.col1", {"name":"hashed"})

往集合中插入数据:

mongos> for(i=1;i<=1000;i++){db.col1.insert({"id":i,"name":"test" + i})};

查看集合的统计信息:

mongos> db.col1.find()

...
"shards" : {
"shard2" : {
"ns" : "testdb.col1",
"size" : 24274,
"count" : 468,
"avgObjSize" : 51,
"storageSize" : 28672,
"freeStorageSize" : 0,
"capped" : false,
...
"shard1" : {
"ns" : "testdb.col1",
"size" : 27619,
"count" : 532,
"avgObjSize" : 51,
"storageSize" : 32768,
...

可以看到分片 shard2 上有 468 条记录,shard1 上有 532 条记录。

8、范围分片例子

先指定分片的集合和片键

mongos> use testdb
mongos> db.createCollection('col2')
mongos> sh.enableSharding("testdb")
mongos> sh.shardCollection("testdb.col2", {"x":1})

往集合中插入数据:

mongos> for(i=1;i<=1000;i++){db.col2.insert({"x":i,"name":"test" + i})};