在Ubuntu上搭建MongoDB集群涉及多个步骤,包括安装、配置、启动各个组件以及设置副本集和分片。以下是一个基本的指南:
准备工作- 确保所有参与构建副本集的节点上都安装了MongoDB,并且配置了相同的MongoDB版本。为了安全起见,副本集成员之间需要使用密钥文件进行认证。可以使用OpenSSL命令生成密钥文件,并设置适当的权限。
在Ubuntu系统上安装MongoDB,可以按照以下步骤操作:
- 更新包列表:
sudo apt update
- 安装MongoDB:
sudo apt install -y mongodb-org
- 启动MongoDB服务:
sudo systemctl start mongod
- 设置MongoDB服务开机自启:
sudo systemctl enable mongod
配置MongoDB实例为每个节点创建存放数据、配置文件、日志的目录。
配置config server副本集编辑config server的配置文件:
sudo vim /etc/mongodb/config.conf
内容如下:
systemLog:destination: filelogAppend: truepath: /var/log/mongodb/config.logstorage:dbPath: /data/dbjournal:enabled: trueprocessManagement:fork: truepidFilePath: /var/run/mongodb/mongod.pidnet:port: 21000bindIp: 0.0.0.0
启动config server:
sudo mongod --config /etc/mongodb/config.conf
初始化config server副本集:
mongo --host 10.10.3.134 --port 21000
在mongo shell中执行:
config = {_id : "config",members : [{_id : 0, host : "10.10.3.134:21000" }, {_id : 1, host : "10.10.3.135:21000" }, {_id : 2, host : "10.10.3.136:21000" }]}rs.initiate(config)
配置shard1 server副本集编辑shard1的配置文件:
sudo vim /etc/mongodb/shard1.conf
内容如下:
systemLog:destination: filelogAppend: truepath: /var/log/mongodb/shard1.logstorage:dbPath: /data/dbjournal:enabled: true
启动shard1:
sudo mongod --config /etc/mongodb/shard1.conf
初始化shard1副本集:
mongo --host 10.10.3.134 --port 27018
在mongo shell中执行:
rs.initiate({_id: "shard1",members: [{ _id : 0, host : "10.10.3.134:27018" },{ _id : 1, host : "10.10.3.135:27018" },{ _id : 2, host : "10.10.3.136:27018" }]})
配置mongos路由器编辑mongos的配置文件:
sudo vim /etc/mongodb/mongos.conf
内容如下:
systemLog:destination: filelogAppend: truepath: /var/log/mongodb/mongos.logstorage:dbPath: /data/dbjournal:enabled: truesharding:clusterRole: configsvr
启动mongos:
sudo mongos --configdb 10.10.3.134:21000,10.10.3.135:21000,10.10.3.136:21000 --port 20000
添加shard到集群在mongos shell中添加shard:
mongo --host 10.10.3.134 --port 20000
sh.addShard("10.10.3.134:27001")sh.addShard("10.10.3.135:27002")sh.addShard("10.10.3.136:27003")
验证集群状态使用以下命令验证集群状态:
mongo --host 10.10.3.134 --port 20000sh.status()
通过以上步骤,你应该能够在Ubuntu上成功搭建一个基本的MongoDB分片集群。请根据实际需求调整配置和增加更多的节点。