Docker搭建MongoDB集群(副本分片)
<h1>1.下载 mongo最新版本</h1><p>docker pull mongo </p>
<h1>2.创建配置服务复制集</h1>
<h2>123.30.194.71:</h2>
<p>docker run -d --name configsvr0 -p 10021:27019 -v /home/mongodb/data/cs/configsvr0:/data/configdb mongo --configsvr --replSet "rs_configsvr" --bind_ip_all</p>
<h2>123.30.194.72:</h2>
<p>docker run -d --name configsvr1 -p 10022:27019 -v /home/mongodb/data/cs/configsvr1:/data/configdb mongo --configsvr --replSet "rs_configsvr" --bind_ip_all</p>
<h2>123.30.194.73:</h2>
<p>docker run -d --name configsvr2 -p 10023:27019 -v /home/mongodb/data/cs/configsvr2:/data/configdb mongo --configsvr --replSet "rs_configsvr" --bind_ip_all</p>
<h2>初始化配置服务复制集:</h2>
<p> </p>
<p style="margin-left: 30px">docker exec -it configsvr0 bash<br>mongo --host 123.30.194.71 --port 10021</p>
<table class="wysiwyg-macro" style="margin-left: 30px" data-macro-name="code" data-macro-schema-version="1" data-macro-body-type="PLAIN_TEXT">
<tbody style="margin-left: 30px">
<tr style="margin-left: 30px">
<td class="wysiwyg-macro-body" style="margin-left: 30px">
<pre>rs.initiate(<br> {<br> _id: "rs_configsvr",<br> configsvr: true,<br> members: [<br> { _id: 0, host : "123.30.194.71:10021" },<br> { _id: 1, host : "123.30.194.72:10022" },<br> { _id: 2, host : "123.30.194.73:10023" }<br> ]<br> }<br>);</pre>
</td>
</tr>
</tbody>
</table>
<h1>3.创建分片复制集</h1>
<h2 style="margin-left: 30px">123.30.194.71:</h2>
<p style="margin-left: 30px">docker run --name shardsvr00 -p 10031:27018 -d -v /home/mongodb/data/sh/shardsvr00:/data/db mongo --shardsvr --replSet "rs_shardsvr0" --bind_ip_all<br>docker run --name shardsvr10 -p 10041:27018 -d -v /home/mongodb/data/sh/shardsvr10:/data/db mongo --shardsvr --replSet "rs_shardsvr1" --bind_ip_all</p>
<h2 style="margin-left: 30px">123.30.194.72:</h2>
<p style="margin-left: 30px">docker run --name shardsvr01 -p 10032:27018 -d -v /home/mongodb/data/sh/shardsvr00:/data/db mongo --shardsvr --replSet "rs_shardsvr0" --bind_ip_all<br>docker run --name shardsvr11 -p 10042:27018 -d -v /home/mongodb/data/sh/shardsvr11:/data/db mongo --shardsvr --replSet "rs_shardsvr1" --bind_ip_all</p>
<h2 style="margin-left: 30px">123.30.194.73:</h2>
<p style="margin-left: 30px">docker run --name shardsvr02 -p 10033:27018 -d -v /home/mongodb/data/sh/shardsvr00:/data/db mongo --shardsvr --replSet "rs_shardsvr0" --bind_ip_all<br>docker run --name shardsvr12 -p 10043:27018 -d -v /home/mongodb/data/sh/shardsvr12:/data/db mongo --shardsvr --replSet "rs_shardsvr1" --bind_ip_all</p>
<h2 style="margin-left: 30px">初始化副本集</h2>
<p> </p>
<p style="margin-left: 30px">docker exec -it shardsvr00 bash<br>mongo --host 123.30.194.71 --port 10031</p>
<table class="wysiwyg-macro" style="margin-left: 30px" data-macro-name="code" data-macro-schema-version="1" data-macro-body-type="PLAIN_TEXT">
<tbody style="margin-left: 30px">
<tr style="margin-left: 30px">
<td class="wysiwyg-macro-body" style="margin-left: 30px">
<pre>rs.initiate(</pre>
<pre> {<br> _id: "rs_shardsvr0",<br> members: [<br> { _id: 0, host : "123.30.194.71:10031" },<br> { _id: 1, host : "123.30.194.72:10032" },<br> { _id: 2, host : "123.30.194.73:10033" }<br> ]<br> }<br>);</pre>
</td>
</tr>
</tbody>
</table>
<p style="margin-left: 30px">docker exec -it shardsvr10 bash<br>mongo --host 123.30.194.71 --port 10041</p>
<table class="wysiwyg-macro" style="margin-left: 30px" data-macro-name="code" data-macro-schema-version="1" data-macro-body-type="PLAIN_TEXT">
<tbody style="margin-left: 30px">
<tr style="margin-left: 30px">
<td class="wysiwyg-macro-body" style="margin-left: 30px">
<pre>rs.initiate(<br> {<br> _id: "rs_shardsvr0",<br> members: [<br> { _id: 0, host : "123.30.194.71:10041" },<br> { _id: 1, host : "123.30.194.72:10042" },<br> { _id: 2, host : "123.30.194.73:10043" }<br> ]<br> }<br>);</pre>
</td>
</tr>
</tbody>
</table>
<h1>4.创建mongos,连接mongos到分片集群</h1>
<h2 style="margin-left: 30px">123.30.194.71:</h2>
<p style="margin-left: 30px">docker run --name mongos0 -d -p 10011:27017 --entrypoint "mongos" mongo --configdb rs_configsvr/123.30.194.71:10021,123.30.194.72:10022,123.30.194.73:10023 --bind_ip_all</p>
<h2 style="margin-left: 30px">123.30.194.72:</h2>
<p style="margin-left: 30px">docker run --name mongos1 -d -p 10012:27017 --entrypoint "mongos" mongo --configdb rs_configsvr/123.30.194.71:10021,123.30.194.72:10022,123.30.194.73:10023 --bind_ip_all</p>
<h2 style="margin-left: 30px">添加分片到集群</h2>
<p style="margin-left: 30px">docker exec -it mongos0 bash<br>mongo --host 123.30.194.71 --port 10011</p>
<p style="margin-left: 30px">sh.addShard("rs_shardsvr0/123.30.194.71:10031,123.30.194.72:10032,123.30.194.73:10033")<br>sh.addShard("rs_shardsvr1/123.30.194.71:10041,123.30.194.72:10042,123.30.194.73:10043")</p>
<h2 style="margin-left: 30px">数据库 启用 分片</h2>
<p style="margin-left: 30px">sh.enableSharding(“test”)</p>
<h2 style="margin-left: 30px">分片集合</h2>
<p style="margin-left: 30px">对 test.order 的 _id 字段进行哈希分片:</p>
<p style="margin-left: 30px">sh.shardCollection(“test.order”, {"_id": “hashed” })</p>
<h2 style="margin-left: 30px">插入数据</h2>
<p style="margin-left: 30px">use test<br>for (i = 1; i <= 1001; i=i+1){<br>db.order.insert({‘price’: 1})<br>}</p>
<p style="margin-left: 30px"> </p>
<h2 style="margin-left: 30px">查看数据分布 </h2>
<p style="margin-left: 30px">db.order.find().count()<br>1001</p>
<p> </p>
</div>
<div id="MySignature" role="contentinfo">
注意:
本人博客只提供参考,可能会有书写不规范情况等问题,不要复制粘贴。可结合其他网站学习<br><br>
来源:https://www.cnblogs.com/mergy/p/12916517.html
頁:
[1]