面试题答案
一键面试前期准备
- 云资源准备:
- 在云平台(如AWS、阿里云)上创建所需的计算实例,根据业务需求选择合适的实例规格,确保实例有足够的内存、CPU和存储资源来运行MongoDB。
- 配置网络,确保实例之间可以相互通信。在AWS中可以通过VPC设置安全组规则允许指定端口(如MongoDB默认的27017端口)的流量在实例间互通;阿里云类似,可通过专有网络VPC设置安全组规则。
- 为实例分配弹性IP(如果需要外网访问),方便后续连接管理。
- 软件安装:
- 在每个实例上安装MongoDB。以Ubuntu为例,添加MongoDB官方源,使用命令
sudo apt - get install - y mongodb - org
进行安装。在其他系统上,参考MongoDB官方文档进行安装。
- 在每个实例上安装MongoDB。以Ubuntu为例,添加MongoDB官方源,使用命令
配置文件设置
- 创建配置文件:在每个MongoDB实例上创建配置文件,一般命名为
mongod.conf
。 - 通用配置:
systemLog: destination: file path: /var/log/mongodb/mongod.log logAppend: true storage: dbPath: /var/lib/mongodb journal: enabled: true net: bindIp: 0.0.0.0 port: 27017
- 副本集配置:添加副本集相关配置,例如副本集名称为
rs0
:replication: replSetName: rs0
启动流程
-
启动单个实例:在每个实例上使用命令
sudo systemctl start mongod
启动MongoDB服务。若通过手动方式启动,使用mongod --config /etc/mongod.conf
命令。 -
初始化副本集:登录到其中一个MongoDB实例,例如主节点。使用
mongo
命令进入MongoDB shell,然后执行初始化副本集的命令:rs.initiate({ _id: "rs0", members: [ { _id: 0, host: "instance1_ip:27017" }, { _id: 1, host: "instance2_ip:27017" }, { _id: 2, host: "instance3_ip:27017" } ] });
其中
instance1_ip
等为各个实例的IP地址。 -
验证副本集状态:执行
rs.status()
命令,可查看副本集的状态,确认各个节点是否正常加入副本集,主从关系是否正常等。