1.https://blog.csdn.net/qq_25268789/article/details/103429096
一、想办法让MongoDB运行起来,使用共享文件等方式
在喜欢的目录下:mkdir mongo
cd mongo
mkdir data conf logs
cd logs
touch mongodb.log
chmod 777 mongodb.log
touch /你的目录/mongo/conf/mongod.conf
vim /你的目录/mongo/conf/mongod.conf
加入以下配置:
# 数据库文件存储位置 dbpath = /data/db/ # log文件存储位置 logpath = /data/log/mongodb.log # 使用追加的方式写日志 logappend = true # 是否以守护进程方式运行 # fork = true # 端口号 port = 27017 # 是否启用认证 auth = true # Replication Options 复制选项 # in replicated mongo databases, specify the replica set name here replSet=rs #设置副本集名 # 设置oplog的大小(MB) oplogSize=2048
启动命令:
docker run -itd --name mongodbtest --restart=always
--privileged -p 27017:27017
-v /home/tianjs/mongodb/data/mongo/data:/data/db
-v /home/tianjs/mongodb/data/mongo/conf:/data/configdb
-v /home/tianjs/mongodb/data/mongo/logs:/data/log/ mongo -config /data/configdb/mongod1.conf --bind_ip_all
二、初始化副本集:https://blog.csdn.net/Micholas_Net/article/details/88941726
1 登陆
2 服务初始化
> show dbs
1
服务重启后,第一次登入,执行其他命令时(例如:show dbs),会提示错误,错误信息如下:
E QUERY [thread1] Error: listDatabases failed:{ “ok” : 0, “errmsg” : “not master and slaveOk=false”, “code” : 13435, “codeName” : “NotMasterNoSlaveOk” }
此时需要执行初始化命令
rs.initiate({ _id: "rs", members: [{_id:0,host:"192.168.64.129:27017"}]}) 未进行此步骤之前插入的数据不会同步。
host:你的ip :你的port
执行完成后提示,代表执行成功:
{ “ok” : 1 }
4-3 初始完后
初始完,副本集中唯一的节点,可能短时间显示为SECONDARY或OTHER。一般而言,稍等一会,就会自然恢复为primary,无需人工干预。
rs:OTHER>
rs:PRIMARY>
rs:PRIMARY>
三配置MongoShake的源地址和目标地址以及同步方式
vim collector.conf
在bin目录下执行:./collector -conf=collector.conf开始同步。