MongoDB 单机
来源:互联网 发布:视频裁切软件 编辑:程序博客网 时间:2024/05/02 03:09
--mongod --shardsvr --replSet rs_a --dbpath /data/db --fork --logpath /data/db/log/rs_a.log --logappend run
--=====================================================================================================
mkdir /data/db /data/configdb /data/config /data/log /data/mongodbexe
---------------------------------------------------------
-- 启动shards
---------------------------------------------------------
-- Note:
-- shards 是存储实际数据块的地方
-- --shardsvr will default the port to 27018
-- 为了高可用性和性能,可以做成一级 Replica sets
-- In the mongo shell,create the replica set (可以在数据库的命令行中生成集合)
-- 例子:
-- > cfg = {
-- _id : "rs_a",
-- members : [
-- {_id : 0, host : "e1.acme.com:27018", priority : 1},
-- {_id : 1, host : "e2.acme.com:27018", priority : 1},
-- {_id : 2, host : "w1.acme.com:27018", priority : 0}
-- ]
-- }
-- > rs.initiate(cfg)
---------------------------------------------------------
mongod --shardsvr --dbpath /data/db/a --port 10000 run > /data/log2/sharda.log &
cat /data/log2/sharda.log
mongod --shardsvr --dbpath /data/db/b --port 10001 run > /data/log2/shardb.log &
cat /data/log2/shardb.log
---------------------------------------------------------
-- 启动Config Servers
---------------------------------------------------------
-- 用于存储集群的元数据,如分片和块数据信息
-- --configsvr will default the port to 27019
---------------------------------------------------------
mongod --configsvr --dbpath /data/db/config --port 20000 > /data/log2/configdb.log &
cat /data/log2/configdb.log
--mongos --configdb localhost:20000 > /data/log2/mongos.log &
--mongos --configdb localhost:30000 run > /data/log2/mongos.log &
mongos --port 30000 --configdb 127.0.0.1:20000 > /data/log2/mongos2.log &
cat /data/log2/mongos2.log
---------------------------------------------------------
-- 启动Routers 路由
---------------------------------------------------------
-- 用户连接 --> 路由 ---> 依Config Servers的信息 --> 连接实际的服务器(shards server) --> 返回数据到客户端
--configdb 用于指定配置服务器地址,可以多个,用逗号隔开
-- mongos 本身也有端口号, 有时如果不指定port,会启不来
-- --configdb 后面是一串configsvr的ip及端口,用逗号隔开
-- 例子:
-- mongos --configdb c1.acme.com:27019,c2.acme.com:27019,c3.acme.com:27019
---------------------------------------------------------
mongos --port 30000 --configdb 127.0.0.1:20000 //--dbpath /data/configdb
---------------------------------------------------------
--配置
---------------------------------------------------------
--addshard:添加Shard Server, 其它相关命令 listshards 和 removeshard
--enablesharding: 用于设置可以被分布存储的数据库
--shardcollection: 用于设置具体被切块的集合名称,且必须指定Shard Key,系统会自动创建索引
--注: Sharded Collection 只能有一个unique index,且必须是shard key
--例子:
-- mongo
-- use admin --(<serverhostname>[:<port>])
-- db.runCommand({addshard:"127.0.0.1:10000",name:"shard1",maxSize:40000})
-- db.runCommand({addshard:"127.0.0.1:10001",name:"shard2"})
--
-- 也可以如下: --( replicaSetName/<serverhostname>[:port])
-- db.adminCommand( { addShard : "rs_a/e1.acme.com:27018,e2.acme.com:27018,w1.acme.com:27018" } )
-- db.adminCommand( { addShard : "rs_b/e3.acme.com:27018,e4.acme.com:27018,w2.acme.com:27018" } )
-- db.adminCommand( { addShard : "rs_c/e5.acme.com:27018,e6.acme.com:27018,w3.acme.com:27018" } )
---------------------------------------------------------
--mongo
--use admin
--db.runCommand({addshard:"127.0.0.1:10000",name:"shard1",maxSize:40000})
--db.runCommand({addshard:"127.0.0.1:10001",name:"shard2"})
mongos> use admin
switched to db admin
mongos> db.runCommand({addshard:"127.0.0.1:10000",name:"shard1",maxSize:40000})
{ "shardAdded" : "shard1", "ok" : 1 }
mongos> db.runCommand({addshard:"127.0.0.1:10001",name:"shard2"})
{ "shardAdded" : "shard2", "ok" : 1 }
mongos> db.runCommand( { listshards : 1 } );
{
"shards" : [
{
"_id" : "shard1",
"host" : "127.0.0.1:10000",
"maxSize" : NumberLong(40000)
},
{
"_id" : "shard2",
"host" : "127.0.0.1:10001"
}
],
"ok" : 1
}
mongos>
---------------------------------------------------------
--enable sharding for any database
mongos> use admin
switched to db admin
--db.runCommand( { enablesharding : "<dbname>" } );
mongos> db.runCommand( { enablesharding : "test" } )
{ "ok" : 1 }
--enable sharding for any collection
--> db.runCommand( { shardcollection : "<namespace>",
-- key : <shardkeypatternobject> });
mongos> db.runCommand( { shardcollection : "test.people", key : {name : 1} } )
{ "collectionsharded" : "test.people", "ok" : 1 }
mongos>
/*
--http://www.mongodb.org/display/DOCS/Configuring+Sharding
You can use the {unique: true} option to ensure that the underlying index enforces uniqueness so long as the unique index is a prefix of the shard key. (note: prior to version 2.0 this worked only if the collection is empty).
db.runCommand( { shardcollection : "test.users" , key : { email : 1 } , unique : true } );
If the "unique: true" option is not used, the shard key does not have to be unique.
db.runCommand( { shardcollection : "test.products" , key : { category : 1, _id : 1 } } );
You can shard on multiple fields if you are using a compound index.
In the end, picking the right shard key for your needs is extremely important for successful sharding. Choosing a Shard Key.
--http://www.mongodb.org/display/DOCS/Choosing+a+Shard+Key
> db.fs.chunks.ensureIndex({files_id: 1});
> db.runCommand({ shardcollection : "test.fs.chunks", key : { files_id : 1 }})
{ "collectionsharded" : "test.fs.chunks", "ok" : 1 }
*/
--=====================================================================================================
--其它可选参数(Optional Parameters)
--maxSize
-- The addshard command accepts an optional maxSize parameter. This parameter lets you
-- tell the system a maximum amount of disk space in megabytes to use on the specified shard.
-- If unspecified, the system will use the entire disk. maxSize is useful when you have machines
-- with different disk capacities or when you want to prevent storage of too much data on a particular shard.
--例子: 指定最大可用磁盘空间
--> db.runCommand( { addshard : "sf103", maxSize:100000/*MB*/ } );
-- Listing shards
-- To see current set of configured shards, run the listshards command:
-- 例子:
-- db.runCommand( { listshards : 1 } );
--Removing a shard
-- Remove Shards from an Existing Shard Cluster
-- http://docs.mongodb.org/manual/tutorial/remove-shards-from-cluster/
-- Remove Chunks from the Shard
-- 例子:
-- db.runCommand( { removeshard: "mongodb0" } )
--=====================================================================================================
[mongodb@localhost data]$ mongo
MongoDB shell version: 2.0.7
connecting to: test
mongos> db.runCommand( { enablesharding : "test" } )
{ "ok" : 0, "errmsg" : "access denied - use admin db" }
MAIL:xcl_168@aliyun.com
我的CSDN BLOG: http://blog.csdn.net/xcl168
--=====================================================================================================
mkdir /data/db /data/configdb /data/config /data/log /data/mongodbexe
---------------------------------------------------------
-- 启动shards
---------------------------------------------------------
-- Note:
-- shards 是存储实际数据块的地方
-- --shardsvr will default the port to 27018
-- 为了高可用性和性能,可以做成一级 Replica sets
-- In the mongo shell,create the replica set (可以在数据库的命令行中生成集合)
-- 例子:
-- > cfg = {
-- _id : "rs_a",
-- members : [
-- {_id : 0, host : "e1.acme.com:27018", priority : 1},
-- {_id : 1, host : "e2.acme.com:27018", priority : 1},
-- {_id : 2, host : "w1.acme.com:27018", priority : 0}
-- ]
-- }
-- > rs.initiate(cfg)
---------------------------------------------------------
mongod --shardsvr --dbpath /data/db/a --port 10000 run > /data/log2/sharda.log &
cat /data/log2/sharda.log
mongod --shardsvr --dbpath /data/db/b --port 10001 run > /data/log2/shardb.log &
cat /data/log2/shardb.log
---------------------------------------------------------
-- 启动Config Servers
---------------------------------------------------------
-- 用于存储集群的元数据,如分片和块数据信息
-- --configsvr will default the port to 27019
---------------------------------------------------------
mongod --configsvr --dbpath /data/db/config --port 20000 > /data/log2/configdb.log &
cat /data/log2/configdb.log
--mongos --configdb localhost:20000 > /data/log2/mongos.log &
--mongos --configdb localhost:30000 run > /data/log2/mongos.log &
mongos --port 30000 --configdb 127.0.0.1:20000 > /data/log2/mongos2.log &
cat /data/log2/mongos2.log
---------------------------------------------------------
-- 启动Routers 路由
---------------------------------------------------------
-- 用户连接 --> 路由 ---> 依Config Servers的信息 --> 连接实际的服务器(shards server) --> 返回数据到客户端
--configdb 用于指定配置服务器地址,可以多个,用逗号隔开
-- mongos 本身也有端口号, 有时如果不指定port,会启不来
-- --configdb 后面是一串configsvr的ip及端口,用逗号隔开
-- 例子:
-- mongos --configdb c1.acme.com:27019,c2.acme.com:27019,c3.acme.com:27019
---------------------------------------------------------
mongos --port 30000 --configdb 127.0.0.1:20000 //--dbpath /data/configdb
---------------------------------------------------------
--配置
---------------------------------------------------------
--addshard:添加Shard Server, 其它相关命令 listshards 和 removeshard
--enablesharding: 用于设置可以被分布存储的数据库
--shardcollection: 用于设置具体被切块的集合名称,且必须指定Shard Key,系统会自动创建索引
--注: Sharded Collection 只能有一个unique index,且必须是shard key
--例子:
-- mongo
-- use admin --(<serverhostname>[:<port>])
-- db.runCommand({addshard:"127.0.0.1:10000",name:"shard1",maxSize:40000})
-- db.runCommand({addshard:"127.0.0.1:10001",name:"shard2"})
--
-- 也可以如下: --( replicaSetName/<serverhostname>[:port])
-- db.adminCommand( { addShard : "rs_a/e1.acme.com:27018,e2.acme.com:27018,w1.acme.com:27018" } )
-- db.adminCommand( { addShard : "rs_b/e3.acme.com:27018,e4.acme.com:27018,w2.acme.com:27018" } )
-- db.adminCommand( { addShard : "rs_c/e5.acme.com:27018,e6.acme.com:27018,w3.acme.com:27018" } )
---------------------------------------------------------
--mongo
--use admin
--db.runCommand({addshard:"127.0.0.1:10000",name:"shard1",maxSize:40000})
--db.runCommand({addshard:"127.0.0.1:10001",name:"shard2"})
mongos> use admin
switched to db admin
mongos> db.runCommand({addshard:"127.0.0.1:10000",name:"shard1",maxSize:40000})
{ "shardAdded" : "shard1", "ok" : 1 }
mongos> db.runCommand({addshard:"127.0.0.1:10001",name:"shard2"})
{ "shardAdded" : "shard2", "ok" : 1 }
mongos> db.runCommand( { listshards : 1 } );
{
"shards" : [
{
"_id" : "shard1",
"host" : "127.0.0.1:10000",
"maxSize" : NumberLong(40000)
},
{
"_id" : "shard2",
"host" : "127.0.0.1:10001"
}
],
"ok" : 1
}
mongos>
---------------------------------------------------------
--enable sharding for any database
mongos> use admin
switched to db admin
--db.runCommand( { enablesharding : "<dbname>" } );
mongos> db.runCommand( { enablesharding : "test" } )
{ "ok" : 1 }
--enable sharding for any collection
--> db.runCommand( { shardcollection : "<namespace>",
-- key : <shardkeypatternobject> });
mongos> db.runCommand( { shardcollection : "test.people", key : {name : 1} } )
{ "collectionsharded" : "test.people", "ok" : 1 }
mongos>
/*
--http://www.mongodb.org/display/DOCS/Configuring+Sharding
You can use the {unique: true} option to ensure that the underlying index enforces uniqueness so long as the unique index is a prefix of the shard key. (note: prior to version 2.0 this worked only if the collection is empty).
db.runCommand( { shardcollection : "test.users" , key : { email : 1 } , unique : true } );
If the "unique: true" option is not used, the shard key does not have to be unique.
db.runCommand( { shardcollection : "test.products" , key : { category : 1, _id : 1 } } );
You can shard on multiple fields if you are using a compound index.
In the end, picking the right shard key for your needs is extremely important for successful sharding. Choosing a Shard Key.
--http://www.mongodb.org/display/DOCS/Choosing+a+Shard+Key
> db.fs.chunks.ensureIndex({files_id: 1});
> db.runCommand({ shardcollection : "test.fs.chunks", key : { files_id : 1 }})
{ "collectionsharded" : "test.fs.chunks", "ok" : 1 }
*/
--=====================================================================================================
--其它可选参数(Optional Parameters)
--maxSize
-- The addshard command accepts an optional maxSize parameter. This parameter lets you
-- tell the system a maximum amount of disk space in megabytes to use on the specified shard.
-- If unspecified, the system will use the entire disk. maxSize is useful when you have machines
-- with different disk capacities or when you want to prevent storage of too much data on a particular shard.
--例子: 指定最大可用磁盘空间
--> db.runCommand( { addshard : "sf103", maxSize:100000/*MB*/ } );
-- Listing shards
-- To see current set of configured shards, run the listshards command:
-- 例子:
-- db.runCommand( { listshards : 1 } );
--Removing a shard
-- Remove Shards from an Existing Shard Cluster
-- http://docs.mongodb.org/manual/tutorial/remove-shards-from-cluster/
-- Remove Chunks from the Shard
-- 例子:
-- db.runCommand( { removeshard: "mongodb0" } )
--=====================================================================================================
[mongodb@localhost data]$ mongo
MongoDB shell version: 2.0.7
connecting to: test
mongos> db.runCommand( { enablesharding : "test" } )
{ "ok" : 0, "errmsg" : "access denied - use admin db" }
MAIL:xcl_168@aliyun.com
我的CSDN BLOG: http://blog.csdn.net/xcl168
- MongoDB 单机
- 单机mongoDB集群
- MongoDB单机子部署
- mongodb单机搭建
- MongoDB单机, 主从, 分布式部署
- Docker mongoDB 单机安装办法
- ubuntu下单机安装MongoDB并测试
- Ubuntu下单机安装MongoDB并测试
- fluentd+mongodb 单机和复制集配置
- MongoDB的简单QPS测试(单机)
- mongodb单机1亿数据索引测试
- MongoDB的安装(单机,副本集,分片)
- mongodb单机修改为副本集的步骤
- 单机搭建elasticsearch和mongodb river的数据同步
- Mongodb在Ubuntu下的安装配置(单机)
- MongoDB单机版副本集搭建--测试、开发
- 单机环境下MongoDB复制集测试步骤
- hadoop2.7.1+nutch2.3+mongodb+solr5.2.1的单机配置
- JavaScript-2
- 面向对象语言三大特征
- JSP Technology Conspectus And Specialties
- 大公司网易游戏游戏开发工程师面试题之做题问题
- VC++连接SQL Server2005 数据库
- MongoDB 单机
- Android之Inflate()方法用途+setContentView和inflate区别
- Java 正则表达式(二)
- 四件在我步入职业软件开发生涯那天起就该知道的事情
- iOS PDF之旅(一)创建PDF文件
- 关于产品的一些思考——CSDN博客
- 创新式开发探索(四) —— 探索式学习
- (2)啊哈!算法
- 设计模式笔记