0
点赞
收藏
分享

微信扫一扫

mongodb笔记之复制集

ITWYY 2022-02-18 阅读 70


环境准备:

多实例:

多个端口​:28017、28018、28019、28020

多个目录​:

mkdir -p /mongodb/28017/conf /mongodb/28017/data /mongodb/28017/log
mkdir -p /mongodb/28018/conf /mongodb/28018/data /mongodb/28018/log
mkdir -p /mongodb/28019/conf /mongodb/28019/data /mongodb/28019/log
mkdir -p /mongodb/28020/conf /mongodb/28020/data /mongodb/28020/log

多套配置文件

/mongodb/28017/conf/mongod.conf
/mongodb/28018/conf/mongod.conf
/mongodb/28019/conf/mongod.conf
/mongodb/28020/conf/mongod.conf

配置文件内容

vim /mongodb/28017/conf/mongod.conf
systemLog:
destination: file
path: /mongodb/28017/log/mongodb.log
logAppend: true
storage:
journal:
enabled: true
dbPath: /mongodb/28017/data
directoryPerDB: true
#engine: wiredTiger
wiredTiger:
engineConfig:
cacheSizeGB: 1
directoryForIndexes: true
collectionConfig:
blockCompressor: zlib
indexConfig:
prefixCompression: true
processManagement:
fork: true
net:
port: 28017
replication:
oplogSizeMB: 2048
replSetName: my_repl

创建多个

cp  /mongodb/28017/conf/mongod.conf  /mongodb/28018/conf/
cp /mongodb/28017/conf/mongod.conf /mongodb/28019/conf/
cp /mongodb/28017/conf/mongod.conf /mongodb/28020/conf/

sed 's#28017#28018#g' /mongodb/28018/conf/mongod.conf -i
sed 's#28017#28019#g' /mongodb/28019/conf/mongod.conf -i
sed 's#28017#28020#g' /mongodb/28020/conf/mongod.conf -i

启动多个实例备用

mongod -f /mongodb/28017/conf/mongod.conf
mongod -f /mongodb/28018/conf/mongod.conf
mongod -f /mongodb/28019/conf/mongod.conf
mongod -f /mongodb/28020/conf/mongod.conf

检查是否启动

mongodb笔记之复制集_配置文件

配置复制集:

1主2从,从库普通从库

启动一台,

mongo --port 28017 admin

配置

config = {_id: 'my_repl', members: [
{_id: 0, host: '10.0.0.53:28017'},
{_id: 1, host: '10.0.0.53:28018'},
{_id: 2, host: '10.0.0.53:28019'}]
}

​PS:my_repl为之前配置文件中的 replSetName: my_repl 必须一致​

启动

rs.initiate(config)

检查复制集状态rs.status()(截取部分)

mongodb笔记之复制集_配置文件_02​“ts” : Timestamp(1543821466, 1) ----->复制集中,对于复制日志(oplog)每一个操作的唯一号码,在某个时间点运行的第几个操作​

在搭建时添加arbiter节点
1主1从1个arbiter
添加 arbiter节点

连接到主节点

[mongod@db03 ~]$ mongo --port 28018 admin

添加仲裁节点

my_repl:PRIMARY> rs.addArb("10.0.0.53:28020")

查看节点状态

my_repl:PRIMARY> rs.isMaster()
{
"hosts" : [
"10.0.0.53:28017",
"10.0.0.53:28018",
"10.0.0.53:28019"
],
"arbiters" : [
"10.0.0.53:28020"
],

mongodb笔记之复制集_复制集_03

复制集管理操作:

查看复制集状态:
rs.status();    //查看整体复制集状态
rs.isMaster(); // 查看当前是否是主节点
添加删除节点
rs.remove("ip:port"); // 删除一个节点
rs.add("ip:port"); // 新增从节点
rs.addArb("ip:port"); // 新增仲裁节点

rs.remove(“ip:port”); // 删除一个节点

​例子​:

my_repl:PRIMARY> rs.remove("10.0.0.53:28019");
{ "ok" : 1 }

rs.add(“ip:port”); // 新增从节点

​例子​:

my_repl:PRIMARY> rs.add("10.0.0.53:28019")
{ "ok" : 1 }



举报

相关推荐

0 条评论