本条体系大概想跟我们享受以下篇章:

本条连串大约想跟大家分享以下篇章:

1、mongo
三.五分片集群连串之一:浅谈分片集群

1、mongo
三.四分片集群体系之1:浅谈分片集群

2、mongo
三.陆分片集群连串之二:搭建分片集群–哈希分片

2、mongo
三.陆分片集群种类之2:搭建分片集群–哈希分片

3、mongo 三.四分片集群体系之3:搭建分片集群–哈希分片 +
安全

3、mongo 三.四分片集群连串之叁:搭建分片集群–哈希分片 +
安全

4、mongo 三.四分片集群体系之四:搭建分片集群–哈希分片 + 安全 +
区域

4、mongo 3.五分片集群连串之四:搭建分片集群–哈希分片 + 安全 +
区域

5、mongo
三.四分片集群种类之伍:详解平衡器

5、mongo
3.伍分片集群体系之5:详解平衡器

6、mongo
三.5分片集群体系之6:详解配置数据库

6、mongo
三.陆分片集群连串之6:详解配置数据库

7、mongo
三.5分片集群系列之7:配置数据库管理

7、mongo
三.6分片集群类别之7:配置数据库管理

8、mongo
三.6分片集群连串之捌:分片管理

8、mongo
三.五分片集群种类之八:分片管理

 

 

 

那一篇也是施行篇。

那篇为推行篇。

首要要讲两大学一年级些:

这篇主要描述如何复制3个安插服务器,替换1个安插服务器。

1是在存活的,已经搭建好的哈希分片集群上,加上中间认证和用户访问调控(相当于继“mongo
三.五分片集群连串之二:搭建分片集群–哈希分片”搭建的分片集群,扩大安全部制)。

一、使用安顿数据库要驾驭的事

二是在搭建的时候,搭建分片集群和安全共同做,也正是从无集群到有集群的长河。

假如安顿服务器别本集变为只读,即未有主成员,则分片集群不能够支撑改变集群元数据的操作,比如块拆分和迁移。尽管不能拆分或迁移块,但应用程序能够将数据写入分片集群。

 

二、复制3个安顿服务器的步调

此地说的辽源体制,只是轻易的通过密钥文件做内部认证,和用户访问调整。

证明:别本集名称是“mongo_config”,今后别本集有五个成员,mongo_config1(192.168.209.155:6000)(主成员),mongo_config2(192.168.209.155:6001),mongo_config3(192.168.209.155:6002)。

 

今昔参与要用mongo_config4(192.168.209.155:6003),替换mongo_config3(192.168.209.155:6001)

一、      在存活的分片集群上,增加安全机制。

1)      为布局服务器创造文件夹,并配置配置文件

1、        创办和散发密钥文件

#mkdir –p /mongo_config4/data

# cd /etc/

#mkdir –p /mongo_config4/log

# sudo openssl rand –base64 755 > mongo_keyfile

#vim  /mongo_config4/mongo_config4_secure.conf

# sudo chmod 400 mongo_keyfile

铺排文件内容如下:

mongo_keyfile是自家钦点的密钥文件名,能够按需改造;

   图片 1

修改权限,一定要做,不然之后会见世众多不盛名的一无所长。

最终两行是本人在mongo 叁.五分片集群体系之三:搭建分片集群–哈希分片 +
安全

加的里边安全注解,所以要加。倘诺未有加内部平安认证,则足以去掉最终两行

这边要先将1九二.16捌.20玖.15五上的mongo_keyfile文件得到192.16八.20九.156上

贰)      运维替换配置服务器。

#sudo rsync –arvz –P bear@192.168.209.155:/etc/mongo_keyfile /etc/

# mongod --fork --config /mongo_config4/mongo_config4_secure.conf

拷贝过来后,注意检查权限是否400,如图

叁)      将新的布局服务器增添到副本集。

     图片 2

老是到布署服务器别本集的主成员

2、       
安排分片集群管理用户和数据库用户(在1九贰.16八.20九.15伍上操作)

# mongo –port 6000 –u bear –p bear –authenticationDatabase admin

(1)   分片集群管理用户

用rs.add()添加新成员。

mongos和安排服务器的集群众管理理员用户是能够通用的,然则分片要开创自个儿的地面管理员用户。

rs.add("192.168.209.155:6003")

连接到mongos

接下来,就等候系统将有着数据从配置服务器别本集的三个成员复制到新成员,这么些过程能够不重复起动。

# mongo –port 6666

mongos 实例会自动识别配置服务器别本集成员的转移,而不用重新启航。

输入以下命令:(这里只是为了方便清楚,其实命令行打成一行就可以)

四)      关闭成员以调换。

use admin;

只顾:假如更改主成员,请先降级主成员,然后再关闭。

db.createUser(

连接到mongo_config3

  {

# mongo –port 6002 –u bear –p bear –authenticationDatabase admin

    user: “admin”,

闭馆该成员

    pwd: “adminbear”,

use admin;

roles: [

db.shutdownServer();

      { role: “root”, db: “admin” },

exit

      { role: “clusterAdmin”, db: “admin” },

5)      从布局服务器别本集中删除要替换的积极分子。

      { role: “userAdmin”, db: “admin” }

在达成替换配置服务器的开头同步后,连接受主成员

    ]

# mongo –port 6000 –u bear –p bear –authenticationDatabase admin

  }

采纳rs.remove()删除旧成员。

);

rs.remove(“192.168.209.155:6002”)

中间,user用户名和pwd密码,可按需改换。由于剧中人物分配的时候,分配root最高权力给了admin,所以admin既是集群的最高管理员用户,又是具备数据库的万丈助理馆员用户

mongos 实例会自动识别配置服务器别本集成员的改观,而不用重新起动。

(2)   数据库用户

6)      如有须求,请更新mongos配置或DNS记录。

以下是为数据库名DatabaseName,创立数据库用户。

下一次再一次运维时,更新 mongos配置文件,将旧配置数据库的主机端口改造为新的主机端口。

输入以下命令:(这里只是为着便于精晓,其实命令行打成一行就可以)

 

use DatabaseName;

 ————————————— over

上述资料,大多数是参照官方网址的资料,在此表示感激。

  

db.createUser(

  {

    user: “bear”,

    pwd: “bear”,

roles: [

      { role: “readWrite”, db: “DatabaseName” }

    ]

  }

);

里头,user用户名和pwd密码,可按需更改。

exit;

剥离当前的长河

3、        连通每二个mongos实例来强制验证(不停机)

(1)   第一个Mongos路由
mongo_router1(在192.168.209.155上操作)

1)        新建二个配备文件

# sudo vim /etc/mongo_router1_tmp.conf

文本中的配置如下:(全体空位都是空格,不是TAB键哦,大小写是严酷分歧的)

net:

 port: 6666

sharding:

 configDB:
mongo_config/192.168.209.155:6000,192.168.209.155:6001,192.168.209.155:6002

security:

 transitionToAuth: true

 keyFile: /etc/mongo_keyfile

如下图:

         图片 3

2)        关闭mongos实例

连接到mongos

# mongo –port 6666 –u admin –p adminbear –authenticationDatabase
admin

use admin;

db.shutdownServer();

exit;

3)        用新的布置文件再一次mongos实例

# mongos –config /etc/mongo_router1_tmp.conf &

(2)   第二个Mongos路由
mongo_router2(在192.168.209.156上操作)

1)        新建2个铺排文件

# sudo vim /etc/mongo_router2_tmp.conf

文本中的配置如下:(全体空位都是空格,不是TAB键哦,大小写是严酷区分的)

net:

 port: 6666

sharding:

 configDB:
mongo_config/192.168.209.155:6000,192.168.209.155:6001,192.168.209.155:6002

security:

 transitionToAuth: true

 keyFile: /etc/mongo_keyfile

如下图:

         图片 4

2)        关闭mongos实例

连接到mongos

# mongo –port 6666 –u admin –p adminbear –authenticationDatabase
admin

use admin;

db.shutdownServer();

exit;

3)        用新的配置文件再次mongos实例

# mongos –config /etc/mongo_router2_tmp.conf &

4、       
连接每二个铺排服务器的别本集成员实例来强制验证(不停机)(在1玖二.16八.20玖.15伍上操作)

此间配置服务器的主节点是mongo_config1

(1)   第1个布局服务器 mongo_config2

1)        复制密钥文件到钦命目录/mongo_config2/

# sudo cp /etc/mongo_keyfile /mongo_config2/

2)        新建3个布置文件

# sudo vim /mongo_config2/mongo_config2_tmp.conf

文本中的配置如下:(全体空位都是空格,不是**TAB**键哦,大小写是严谨区分的)

storage:

 dbPath: “/mongo_config2/data”

 indexBuildRetry: false

systemLog:

 destination: file

 path: “/mongo_config2/log/mongo_config2.log

net:

 port: 6001

sharding:

 clusterRole: configsvr

replication:

 replSetName: mongo_config

security:

 transitionToAuth: true

 keyFile: /mongo_config2/mongo_keyfile

如下图:

         图片 5

3)        关闭mongod实例

连接到mongod

# mongo –port 6001 –u admin –p adminbear –authenticationDatabase
admin

use admin;

db.shutdownServer();

exit;

4)        用新的布署文件再一次mongod实例

# mongod –fork –config /mongo_config2/mongo_config2_tmp.conf

(2)   其多少个布局服务器 mongo_config3

1)        复制密钥文件到内定目录/mongo_config3/

# sudo cp /etc/mongo_keyfile /mongo_config3/

2)        新建一个配备文件

# sudo vim /mongo_config3/mongo_config3_tmp.conf

文件中的配置如下:(全体空位都以空格,不是TAB键哦,大小写是严酷区分的)

storage:

 dbPath: “/mongo_config3/data”

 indexBuildRetry: false

systemLog:

 destination: file

 path: “/mongo_config3/log/mongo_config3.log

net:

 port: 6002

sharding:

 clusterRole: configsvr

replication:

 replSetName: mongo_config

security:

 transitionToAuth: true

 keyFile: /mongo_config3/mongo_keyfile

如下图:

         图片 6

3)        关闭mongod实例

连接到mongod

# mongo –port 6002 –u admin –p adminbear –authenticationDatabase
admin

use admin;

db.shutdownServer();

exit;

4)        用新的配备文件再度mongod实例

# mongod –fork –config /mongo_config3/mongo_config3_tmp.conf

(3)   率先个布局服务器 mongo_config1

1)        复制密钥文件到内定目录/mongo_config1/

# sudo cp /etc/mongo_keyfile /mongo_config1/

2)        新建一个安排文件

# sudo vim /mongo_config1/mongo_config1_tmp.conf

文件中的配置如下:(全部空位都以空格,不是TAB键哦,大小写是严刻不一样的)

storage:

 dbPath: “/mongo_config1/data”

 indexBuildRetry: false

systemLog:

 destination: file

 path: “/mongo_config1/log/mongo_config1.log

net:

 port: 6000

sharding:

 clusterRole: configsvr

replication:

 replSetName: mongo_config

security:

 transitionToAuth: true

 keyFile: /mongo_config1/mongo_keyfile

如下图:

         图片 7

3)        降职主节点

连接到mongod

# mongo –port 6000 –u admin –p adminbear –authenticationDatabase
admin

rs.stepDown();

4)        关闭mongod实例

use admin;

db.shutdownServer();

exit;

5)        用新的布局文件再一次mongod实例

# mongod –fork –config /mongo_config1/mongo_config1_tmp.conf

5、        紧接每3个分片实例来强制验证(停机)

(1)   先是个分片 mongo_shard1(在192.168.209.155上操作)

1)        创办分片本地管理员

连接到mongod

# mongo –port 6100

输入以下命令:(这里只是为着便利精通,其实命令行打成①行就能够)

use admin;

db.createUser(

  {

    user: “adminShard1”,

    pwd: “adminbear”,

roles: [

      { role: “clusterAdmin”, db: “admin” },

      { role: “userAdmin”, db: “admin” }

    ]

  }

);

里头,user用户名和pwd密码,可按需退换。

2)        复制密钥文件到钦命目录/mongo_shard1/

# sudo cp /etc/mongo_keyfile /mongo_shard1/

3)        新建1个安插文件

# sudo vim /mongo_shard1/mongo_shard1_tmp.conf

文件中的配置如下:(全数空位都以空格,不是TAB键哦,大小写是严苛区分的)

storage:

 dbPath: “/mongo_shard1/data”

 indexBuildRetry: false

systemLog:

 destination: file

 path: “/mongo_shard1/log/mongo_shard1.log

net:

 port: 6100

sharding:

 clusterRole: shardsvr

security:

 transitionToAuth: true

 keyFile: /mongo_shard1/mongo_keyfile

如下图:

         图片 8

4)        关闭mongod实例

连接到mongod

# mongo –port 6100 –u adminShard1 –p adminbear
–authenticationDatabase admin

use admin;

db.shutdownServer();

exit;

5)        用新的计划文件再度mongod实例

# mongod –fork –config /mongo_shard1/mongo_shard1_tmp.conf

(2)   其次个分片 mongo_shard2(在192.168.209.156上操作)

1)        创办分片本地管理员

连接到mongod

# mongo –port 6100

输入以下命令:(这里只是为了方便理解,其实命令行打成一行就可以)

use admin;

db.createUser(

  {

    user: “adminShard2”,

    pwd: “adminbear”,

roles: [

      { role: “clusterAdmin”, db: “admin” },

      { role: “userAdmin”, db: “admin” }

    ]

  }

);

内部,user用户名和pwd密码,可按需改动。

2)        复制密钥文件到内定目录/mongo_shard2/

# sudo cp /etc/mongo_keyfile /mongo_shard2/

3)        新建贰个布署文件

# sudo vim /mongo_shard2/mongo_shard2_tmp.conf

文本中的配置如下:(全数空位都以空格,不是TAB键哦,大小写是从严差别的)

storage:

 dbPath: “/mongo_shard2/data”

 indexBuildRetry: false

systemLog:

 destination: file

 path: “/mongo_shard2/log/mongo_shard2.log

net:

 port: 6100

sharding:

 clusterRole: shardsvr

security:

 transitionToAuth: true

 keyFile: /mongo_shard2/mongo_keyfile

如下图:       

         图片 9

4)        关闭mongod实例

连接到mongod

# mongo –port 6100 –u adminShard2 –p adminbear
–authenticationDatabase admin

use admin;

db.shutdownServer();

exit;

5)        用新的配备文件再一次mongod实例

# mongod –fork –config /mongo_shard2/mongo_shard2_tmp.conf

6、        强制每三个mongos实例来强制验证(不停机)

(1)   第一个Mongos路由
mongo_router1(在192.168.209.155上操作)

1)        新建四个配置文件

# sudo vim /etc/mongo_router1_secure.conf

文本中的配置如下:(全体空位都以空格,不是TAB键哦,大小写是从严差距的)

net:

 port: 6666

sharding:

 configDB:
mongo_config/192.168.209.155:6000,192.168.209.155:6001,192.168.209.155:6002

security:

keyFile: /etc/mongo_keyfile

如下图:

         图片 10

2)        关闭mongos实例

连接到mongos

# mongo –port 6666 –u admin –p adminbear –authenticationDatabase
admin

use admin;

db.shutdownServer();

exit;

3)        用新的配备文件再一次mongos实例

# mongos –config /etc/mongo_router1_secure.conf &

(2)   第二个Mongos路由
mongo_router2(在192.168.209.156上操作)

1)        新建3个计划文件

# sudo vim /etc/mongo_router2_secure.conf

文件中的配置如下:(全部空位都以空格,不是TAB键哦,大小写是严谨区分的)

net:

 port: 6666

sharding:

 configDB:
mongo_config/192.168.209.155:6000,192.168.209.155:6001,192.168.209.155:6002

security:

 keyFile: /etc/mongo_keyfile

如下图:

         图片 11

2)        关闭mongos实例

连接到mongos

# mongo –port 6666 –u admin –p adminbear –authenticationDatabase
admin

use admin;

db.shutdownServer();

exit;

3)        用新的布局文件再度mongos实例

# mongos –config /etc/mongo_router2_secure.conf &

7、       
强制每3个配备服务器的副本集成员实例来强制验证(不停机)(在1玖二.16八.209.15伍上操作)

此间配置服务器的主节点是mongo_config1

(1)   第三个布局服务器 mongo_config2

1)        新建三个陈设文件

# sudo vim /mongo_config2/mongo_config2_secure.conf

文本中的配置如下:(全数空位都以空格,不是TAB键哦,大小写是严酷不一致的)

storage:

 dbPath: “/mongo_config2/data”

 indexBuildRetry: false

systemLog:

 destination: file

 path: “/mongo_config2/log/mongo_config2.log

net:

 port: 6001

sharding:

 clusterRole: configsvr

replication:

 replSetName: mongo_config

security:

 keyFile: /etc/mongo_keyfile

如下图:

         图片 12

2)        关闭mongod实例

连接到mongod

# mongo –port 6001 –u admin –p adminbear –authenticationDatabase
admin

use admin;

db.shutdownServer();

exit;

3)        用新的布局文件再一次mongod实例

# mongod –fork –config
/mongo_config2/mongo_config2_secure.conf

(2)   其四个布局服务器 mongo_config3

1)        新建二个安插文件

# sudo vim /mongo_config3/mongo_config3_secure.conf

文件中的配置如下:(全数空位都以空格,不是TAB键哦,大小写是严俊区分的)

storage:

 dbPath: “/mongo_config3/data”

 indexBuildRetry: false

systemLog:

 destination: file

 path: “/mongo_config3/log/mongo_config3.log

net:

 port: 6002

sharding:

 clusterRole: configsvr

replication:

 replSetName: mongo_config

security:

 keyFile: /etc/mongo_keyfile

如下图:

         图片 13

2)        关闭mongod实例

连接到mongod

# mongo –port 6002 –u admin –p adminbear –authenticationDatabase
admin

use admin;

db.shutdownServer();

exit;

3)        用新的安顿文件再一次mongod实例

# mongod –fork –config
/mongo_config3/mongo_config3_secure.conf

(3)   第3个布局服务器 mongo_config1

1)        新建一个布置文件

# sudo vim /mongo_config1/mongo_config1_secure.conf

文本中的配置如下:(全部空位都以空格,不是TAB键哦,大小写是严俊差别的)

storage:

 dbPath: “/mongo_config1/data”

 indexBuildRetry: false

systemLog:

 destination: file

 path: “/mongo_config1/log/mongo_config1.log

net:

 port: 6000

sharding:

 clusterRole: configsvr

replication:

 replSetName: mongo_config

security:

 keyFile: /etc/mongo_keyfile

如下图:

         图片 14

2)        降职主节点

连接到mongod

# mongo –port 6000 –u admin –p adminbear –authenticationDatabase
admin

rs.stepDown();

3)        关闭mongod实例

use admin;

db.shutdownServer();

exit;

4)        用新的布局文件再次mongod实例

# mongod –fork –config
/mongo_config1/mongo_config1_secure.conf

8、        强制每八个分片实例来强制验证(停机)

(1)   第2个分片 mongo_shard1(在192.168.209.155上操作)

1)        新建三个布署文件

# sudo vim /mongo_shard1/mongo_shard1_secure.conf

文件中的配置如下:(全数空位都以空格,不是TAB键哦,大小写是严峻区分的)

storage:

 dbPath: “/mongo_shard1/data”

 indexBuildRetry: false

systemLog:

 destination: file

 path: “/mongo_shard1/log/mongo_shard1.log

net:

 port: 6100

sharding:

 clusterRole: shardsvr

security:

 keyFile: /mongo_shard1/mongo_keyfile

如下图:

         图片 15

2)        关闭mongod实例

连接到mongod

# mongo –port 6100 –u adminShard1 –p adminbear
–authenticationDatabase admin

use admin;

db.shutdownServer();

exit;

3)        用新的安顿文件再一次mongod实例

# mongod –fork –config /mongo_shard1/mongo_shard1_secure.conf

(2)   第2个分片 mongo_shard2(在192.168.209.156上操作)

1)        新建一个安排文件

# sudo vim /mongo_shard2/mongo_shard2_secure.conf

文本中的配置如下:(全数空位都以空格,不是TAB键哦,大小写是严苛分化的)

storage:

 dbPath: “/mongo_shard2/data”

 indexBuildRetry: false

systemLog:

 destination: file

 path: “/mongo_shard2/log/mongo_shard2.log

net:

 port: 6100

sharding:

 clusterRole: shardsvr

security:

 keyFile: /mongo_shard2/mongo_keyfile

如下图:       

         图片 16

2)        关闭mongod实例

连接到mongod

# mongo –port 6100 –u adminShard2 –p adminbear
–authenticationDatabase admin

use admin;

db.shutdownServer();

exit;

3)        用新的布局文件再度mongod实例

# mongod –fork –config /mongo_shard2/mongo_shard2_secure.conf

 

** —————————————第一片段  over


 

二、      搭建分片集群和安全部制

(大概的流程与“mongo
3.四分片集群体系之二:搭建分片集群–哈希分片”大约,有分其他本人会用浅橙字体标注)

一、说说分片集群的框架结构

此地要搭建的分片集群框架结构如下:

1个mongos,一个八个分子的别本集配置服务器,3个单实例的分片。图示如下:

图片 17

 

一言以蔽之介绍一下MongoDB分片集群由以下组件组成:

    • mongos:mongos作为查询路由器,提供客户端应用程序和分片集群之间的接口。
    • 铺排服务器:配置服务器存款和储蓄集群的元数据和配备音讯。从MongoDB
      3.4伊始,配置服务器必须安顿为别本集(CS奥德赛S)。
    • 分片:各类分片包蕴分片数据的壹部分。各种分片能够配备为副本集。这里先做单实例,未有做别本集。

二、分片前注意事项

有关分片集群的一些注意点,请参阅:mongo
3.5分片集群类别之1:浅谈分片集群 ,当中第陆点,分片前思念事项。

好啊。慎重思量完分片前怀想事项的话,接下去就进去实施吧~~~

三、搭建哈希分片集群

上面是参照官方网站的 

三.1、搭建前筹划:

物理情形:

自身那边是用四个虚拟机模仿两台服务器的(真实服务器也如约这些主意推行,能够行得通)。

IP分别为1九2.16八.20玖.155和1玖二.16八.20玖.156。当中,那五个IP之间必须互通。即19二.168.20九.155足以ping通1玖2.16捌.20玖.156,1玖二.16八.20玖.15陆也足以ping通1玖二.168.20玖.15伍。

陈设大概如下:(此操作是创制在mongo叁.4版本)

名称

主机

端口

副本集

Data路径

Log路径

Router1

192.168.209.155

6666

 

 

 

Router2

192.168.209.156

6666

 

 

 

Config1

 

192.168.209.155

6000

 

mongo_config

/mongo_config1/data

/mongo_config1/log

Config2

6001

/mongo_config2/data

/mongo_config2/log

Config3

6002

/mongo_config3/data

/mongo_config3/log

Shard1

192.168.209.155

6100

 

/mongo_shard1/data

/mongo_shard1/log

Shard2

192.168.209.156

6100

 

/mongo_shard2/data

/mongo_shard2/log

 

接下去就来搭建哈希分片集群咯~~~

三.二前增进、创制密钥文件,以及修改权限

# cd /etc/

# sudo openssl rand –base64 755 >
mongo_keyfile

# sudo chmod 400 mongo_keyfile

mongo_keyfile是笔者钦点的密钥文件名,能够按需改动;

修改权限,一定要做,不然之后会油不过生众多不盛名的错误。

这里要先将192.16八.20九.155上的mongo_keyfile文件获得1九贰.16八.20九.15陆上

#sudo rsync –arvz –P
bear@192.168.209.155:/etc/mongo_keyfile /etc/

拷贝过来后,注意检查权限是或不是400,如图

     图片 18

3.贰、创立布局服务器别本集

安顿具有四个成员的安排服务器别本集。

(1)   mongo_config1 (在192.168.209.155上操作)

1)         创设数量路线文件夹和日志路径文件夹

# sudo mkdir –p /mongo_config1/data

# sudo mkdir –p /mongo_config1/log

贰)        
复制密钥文件到钦赐目录/mongo_config1

# sudo cp /etc/mongo_keyfile
/mongo_config1/

叁)         创立布局文件

# sudo vim /mongo_config1/**mongo_config1_secure.conf**

文件中的配置如下:(全数空位都以空格,不是TAB键哦,大小写是严厉区分的)

storage:

 dbPath: “/mongo_config1/data”

 indexBuildRetry: false

systemLog:

 destination: file

 path: “/mongo_config1/log/mongo_config1.log

net:

 port: 6000

sharding:

 clusterRole: configsvr

replication:

 replSetName: mongo_config

security:

 keyFile:
/mongo_config1/mongo_keyfile

如下图:

           图片 19

4)         启动mongod实例

# mongod –fork –config /mongo_config1/mongo_config1_secure.conf

–fork 是以线程格局运行mongod服务

–config 指虞升卿插文件路线

(2)   mongo_config2(在192.168.209.155上操作)

1)         创造数量路线文件夹和日志路径文件夹

# sudo mkdir –p /mongo_config2/data

# sudo mkdir –p /mongo_config2/log

二)        
复制密钥文件到钦命目录/mongo_config2

# sudo cp /etc/mongo_keyfile
/mongo_config2/

三)         创造布局文件

# sudo vim /mongo_config2/**mongo_config2_secure.conf**

文本中的配置如下:(全数空位都以空格,不是TAB键哦,大小写是严谨差异的)

storage:

 dbPath: “/mongo_config2/data”

 indexBuildRetry: false

systemLog:

 destination: file

 path: “/mongo_config2/log/mongo_config2.log

net:

 port: 6001

sharding:

 clusterRole: configsvr

replication:

 replSetName: mongo_config

security:

 keyFile:
/mongo_config2/mongo_keyfile

如下图:

           图片 20 

4)         启动mongod实例

# mongod –fork –config /mongo_config2/mongo_config2_secure.conf

–fork 是以线程格局启动mongod服务

–config 内定布署文件路线

(3)   mongo_config3 (在192.168.209.155上操作)

1)         创设数量路径文件夹和日志路线文件夹

# sudo mkdir –p /mongo_config3/data

# sudo mkdir –p /mongo_config3/log

二)        
复制密钥文件到钦命目录/mongo_config3

# sudo cp /etc/mongo_keyfile
/mongo_config3/

三)         成立布局文件

# sudo vim /mongo_config3/**mongo_config3_secure.conf**

文本中的配置如下:(全数空位都是空格,不是TAB键哦,大小写是从严差别的)

storage:

 dbPath: “/mongo_config3/data”

 indexBuildRetry: false

systemLog:

 destination: file

 path: “/mongo_config3/log/mongo_config3.log

net:

 port: 6002

sharding:

 clusterRole: configsvr

replication:

 replSetName: mongo_config

security:

 keyFile:
/mongo_config3/mongo_keyfile

如下图:

         图片 21

4)         启动mongod实例

# mongod –fork –config /mongo_config3/mongo_config3_secure.conf

–fork 是以线程格局运营mongod服务

–config 内定布署文件路线

(4)   伊始化别本集mongo_config(在192.168.209.155上操作)

壹)         连接率性叁个mongod实例

# sudo mongod –port 6000

二)         初叶化别本集

输入以下命令:(这里只是为了方便清楚,其实命令行打成一行就能够)

rs.initiate(

  {

    _id: “mongo_config”,

    configsvr: true,

    members: [

      { _id : 0, host : “192.168.209.155:6000” },

      { _id : 1, host : “192.168.209.155:6001” },

      { _id : 2, host : “192.168.209.155:6002” }

    ]

  }

)

_id:必须协作传递给mongod 的–replSet参数。

members:是贰个数组,每种别本集成员都须求1个文书档案。

configsvr:必须安装true。

3.叁、创立分片

(1)   mongo_shard1 (在192.168.209.155上操作)

一)        
复制密钥文件到钦赐目录/mongo_shard1

# sudo cp /etc/mongo_keyfile
/mongo_shard1/

2)         为mongo_shard一创设布局文件

# sudo vim /mongo_shard1/**mongo_shard1_secure.conf**

文本中的配置如下:(全体空位都以空格,不是TAB键哦,大小写是严格差异的)

storage:

 dbPath: “/mongo_shard1/data”

 indexBuildRetry: false

systemLog:

 destination: file

 path: “/mongo_shard1/log/mongo_shard1.log

net:

 port: 6100

sharding:

 clusterRole: shardsvr

security:

 keyFile:
/mongo_shard1/mongo_keyfile

如下图:

           图片 22

3)         启动mongod实例

# mongod –fork –config /mongo_shard1/mongo_shard1_secure.conf

(2)   mongo_shard2(在192.168.209.156上操作)

一)        
复制密钥文件到钦赐目录/mongo_shard2

# sudo cp /etc/mongo_keyfile
/mongo_shard2/

2)         为mongo_shard二创制布局文件

# sudo vim /mongo_shard2/**mongo_shard2_secure.conf**

文本中的配置如下:(全数空位都以空格,不是TAB键哦,大小写是严俊差异的)

storage:

 dbPath: “/mongo_shard2/data”

 indexBuildRetry: false

systemLog:

 destination: file

 path: “/mongo_shard2/log/mongo_shard2.log

net:

 port: 6101

sharding:

 clusterRole: shardsvr

security:

 keyFile:
/mongo_shard2/mongo_keyfile

如下图:

           图片 23

3)         启动mongod实例

# mongod –fork –config /mongo_shard2/mongo_shard2_secure.conf

三.3、创造路由

(1)   mongo_router1(在192.168.209.155上操作)

1)         为mongo_router一创造布局文件

# sudo vim /etc/**mongo_router1_secure.conf**

文本中的配置如下:(全部空位都以空格,不是TAB键哦,大小写是从严区分的)

net:

 port: 6666

sharding:

 configDB:
mongo_config/192.168.209.155:6000,192.168.209.155:6001,192.168.209.155:6002

security:

 keyFile: /etc/mongo_keyfile

如下图:

图片 24

2)         启动mongos实例

# mongos –config /etc/mongo_router1_secure.conf

(2)   mongo_router2(在192.168.209.156上操作)

1)         为mongo_router2制造布局文件

# sudo vim /etc/**mongo_router2_secure.conf**

文件中的配置如下:(全体空位都以空格,不是TAB键哦,大小写是严酷区分的)

net:

 port: 6666

sharding:

 configDB:
mongo_config/192.168.209.155:6000,192.168.209.155:6001,192.168.209.155:6002

security:

 keyFile: /etc/mongo_keyfile

如下图:

图片 25

2)         启动mongos实例

# mongos –config /etc/mongo_router2_secure.conf

 

———–以上是中间认证,以下是用户访问调控———-

其间认证:是指要参加集群的零件要有钦定密钥文件技巧进入集群;组件包涵mongos路由,配置服务器,分片

用户访问调节:是指应用程序连接集群,要验证的用户和密码

 

三.四、增多分片到集群

(1)  
连年跋扈三个mongos,这里总是mongo_router1(在192.168.209.155上操作)

# mongo –port 6666

(2)   累加分片

壹)         增添第一个分片mongo_shard1

sh.addShard(“192.168.209.155:6100”);

二)         加多首个分片mongo_shard2

sh.addShard(“192.168.209.156:6100”);

三.5前拉长、创建用户

(1)   集群助理馆员用户

mongos和配备服务器的集群众管理理员用户是能够通用的,但是分片要创建本人的地头管理员用户。

壹)        
创制集群管理员用户(直接在三.肆的窗口中运作就可以)

输入以下命令:(这里只是为着便于掌握,其实命令行打成1行就能够)

use admin;

db.createUser(

  {

    user: “admin”,

    pwd: “adminbear”,

roles: [

      { role: “root”, db: “admin”
},

      { role: “clusterAdmin”, db: “admin”
},

      { role: “userAdmin”, db: “admin”
}

    ]

  }

);

内部,user用户名和pwd密码,可按需退换。由于剧中人物分配的时候,分配root最高权力给了admin,所以admin既是集群的万丈管理员用户,又是颇具数据库的参天管理员用户

exit;

脱离当前的进度

二)        
创设第二个分片mongo_shard1管理员用户(在1玖2.168.20玖.15五上操作)

总是到第叁个分片mongo_shard1

# mongo –port 6100

输入以下命令:(这里只是为着便利了解,其实命令行打成壹行即可)

use admin;

db.createUser(

  {

    user: “adminShard1”,

    pwd: “adminbear”,

roles: [

      { role: “clusterAdmin”, db: “admin”
},

      { role: “userAdmin”, db: “admin”
}

    ]

  }

);

内部,user用户名和pwd密码,可按需改动。

exit;

剥离当前的历程

三)        
创制第四个分片mongo_shard贰管理员用户(在1九二.16八.209.15五上操作)

连天到第二个分片mongo_shard2

# mongo –host 192.168.209.156 –port
6100

输入以下命令:(这里只是为着便利精通,其实命令行打成一行就能够)

use admin;

db.createUser(

  {

    user: “adminShard2”,

    pwd: “adminbear”,

roles: [

      { role: “clusterAdmin”, db: “admin”
},

      { role: “userAdmin”, db: “admin”
}

    ]

  }

);

当中,user用户名和pwd密码,可按需改换。

exit;

脱离当前的长河

(2)  
数据库用户(应用程序用户)(在192.168.209.155上操作)

连接到mongos路由 mongo_router1

# mongo –port 6666 –u admin –p adminbear
–authenticationDatabase admin

至上用户已经在事先成立集群众管理理员用户时,同期授予权力了。这里不再述说。

以下是为数据库名DatabaseName,创立数据库用户。

输入以下命令:(这里只是为了便于精通,其实命令行打成一行就能够)

use DatabaseName;

db.createUser(

  {

    user: “bear”,

    pwd: “bear”,

roles: [

      { role: “readWrite”, db:
“DatabaseName” }

    ]

  }

);

里头,user用户名和pwd密码,可按需改换。

3.五、为数据库启用分片(直接跟着以上的窗口中运作就能够)

sh.enableSharding(“databaseName”);

里头databaseName,为要分片的数据库。

叁.陆、使用哈希分片分片群集(直接在三.5的窗口中运作就能够)

此地有二种意况,1种是空集结,另一种是有数量的会集,但对此那三种情景都提出用以下办法。

(1)   对此鲜明作为分片键的字段,创立哈希索引

use databaseName;

db.collectionName.createIndex(Name:”hashed”);

里面,databaseName是三.伍启用的分片数据库名称;collectionName是要分片的聚众;Name是当做分片键的字段。

(2)   哈希分片

sh.shardCollection(“databaseName.collectionName”,{Name:”hashed”})

里头,databaseName是三.五启用的分片数据库名称;collectionName是要分片的集聚;Name是当做分片键的字段。

 

  —————————————次之部分  over

  —————————————  over

 

如上资料,超越1/三是参谋官网的素材,在此表示多谢。

   

 
 

 

相关文章