首页主机资讯CentOS下MongoDB如何进行数据分片

CentOS下MongoDB如何进行数据分片

时间2025-10-09 15:19:03发布访客分类主机资讯浏览887
导读:在CentOS下进行MongoDB数据分片,需要遵循以下步骤: 准备环境: 确保你已经安装了MongoDB,并且所有分片服务器、配置服务器和mongos路由器都已正确配置和运行。 启动配置服务器: 配置服务器存储集群的元数据。在每个...

在CentOS下进行MongoDB数据分片,需要遵循以下步骤:

  1. 准备环境: 确保你已经安装了MongoDB,并且所有分片服务器、配置服务器和mongos路由器都已正确配置和运行。

  2. 启动配置服务器: 配置服务器存储集群的元数据。在每个配置服务器上运行以下命令:

mongod --configsvr --replSet <
    configReplSetName>
     --dbpath <
    configDbPath>
     --port <
    configPort>
    

< configReplSetName> 替换为配置服务器副本集名称,< configDbPath> 替换为配置服务器数据存储路径,< configPort> 替换为配置服务器端口(默认为27019)。

  1. 初始化配置服务器副本集: 连接到任意一个配置服务器,运行以下命令:
mongo --port <
    configPort>

在mongo shell中输入以下命令:

rs.initiate({
    
  _id: "<
    configReplSetName>
",
  configsvr: true,
  members: [
    {
     _id: 0, host: "<
    configServer1>
    :<
    configPort>
" }
,
    {
     _id: 1, host: "<
    configServer2>
    :<
    configPort>
" }
,
    {
     _id: 2, host: "<
    configServer3>
    :<
    configPort>
" }

  ]
}
    )

< configServer1> < configServer2> < configServer3> 替换为配置服务器的主机名或IP地址。

  1. 启动分片服务器: 在每个分片服务器上运行以下命令:
mongod --shardsvr --replSet <
    shardReplSetName>
     --dbpath <
    shardDbPath>
     --port <
    shardPort>
    

< shardReplSetName> 替换为分片服务器副本集名称,< shardDbPath> 替换为分片服务器数据存储路径,< shardPort> 替换为分片服务器端口(默认为27018)。

  1. 初始化分片服务器副本集: 连接到任意一个分片服务器,运行以下命令:
mongo --port <
    shardPort>

在mongo shell中输入以下命令:

rs.initiate({
    
  _id: "<
    shardReplSetName>
",
  shard: true,
  members: [
    {
     _id: 0, host: "<
    shardServer1>
    :<
    shardPort>
" }
,
    {
     _id: 1, host: "<
    shardServer2>
    :<
    shardPort>
" }
,
    {
     _id: 2, host: "<
    shardServer3>
    :<
    shardPort>
" }

  ]
}
    )

< shardServer1> < shardServer2> < shardServer3> 替换为分片服务器的主机名或IP地址。

  1. 启动mongos路由器: 运行以下命令启动mongos路由器:
mongos --configdb <
    configReplSetName>
    /<
    configServer1>
    :<
    configPort>
    ,<
    configServer2>
    :<
    configPort>
    ,<
    configServer3>
    :<
    configPort>
     --port <
    mongosPort>
    

< configReplSetName> 替换为配置服务器副本集名称,< configServer1> < configServer2> < configServer3> 替换为配置服务器的主机名或IP地址,< mongosPort> 替换为mongos路由器端口(默认为27017)。

  1. 添加分片: 连接到mongos路由器,运行以下命令添加分片:
sh.addShard("<
    shardReplSetName>
    /<
    shardServer1>
    :<
    shardPort>
    ,<
    shardServer2>
    :<
    shardPort>
    ,<
    shardServer3>
    :<
    shardPort>
    ")

< shardReplSetName> 替换为分片服务器副本集名称,< shardServer1> < shardServer2> < shardServer3> 替换为分片服务器的主机名或IP地址。

  1. 启用数据库分片: 连接到mongos路由器,运行以下命令启用数据库分片:
sh.enableSharding("<
    database>
    ")

< database> 替换为要分片的数据库名称。

  1. 对集合进行分片: 连接到mongos路由器,运行以下命令对集合进行分片:
sh.shardCollection("<
    database>
    .<
    collection>
", {
    "<
    shardKey>
": 1}
    )

< database> 替换为数据库名称,< collection> 替换为要分片的集合名称,< shardKey> 替换为分片键。

完成以上步骤后,MongoDB数据分片将在CentOS环境下成功设置。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: CentOS下MongoDB如何进行数据分片
本文地址: https://pptw.com/jishu/721424.html
CentOS下MongoDB如何进行故障排查 MongoDB在CentOS上如何配置副本集

游客 回复需填写必要信息