Mac*_*cab 19 mongodb replicaset mongodb-replica-set
我尝试按照以下指令创建副本集,例如: https: //hevodata.com/learn/mongodb-replica-set-3-easy-methods/
\n可悲的是,我在第一步遇到了问题:
\n问题
\n命令 :
\n\nmongod --port 27017 --dbpath "C:\\Program Files\\MongoDB\\Server\\5.0\\data" --replSet replicaSet1\n\n
日志档案
\n“创建,cache_size = 3525M,session_max = 33000,驱逐=(threads_min = 4,threads_max = 4),config_base = false,统计=(快速),log =(启用= true,archive = true,path = Journal,compressor = snappy),builtin_extension_config=(zstd=(compression_level=6)),file_manager=(close_idle_time=600,close_scan_interval=10,close_handle_minimum=250),statistics_log=(wait=0),verbose=[recovery_progress,checkpoint_progress,compact_progress]," }}\n{"t":{"$date":"2021-11-23T13:24:05.330+01:00"},"s":"I", "c":"存储", "id ":22430, "ctx":"initandlisten","msg":"WiredTiger 消息","attr":{"message":"[1637670245:330481][2852:140718885658272], txn-recover: [WT_VERB_RECOVERY_PROGRESS] 正在恢复记录 55 到 56"}}\n{"t":{"$date":"2021-11-23T13:24:05.406+01:00"},"s":"I", "c":"存储”,“id”:22430,“ctx”:“initandlisten”,“msg”:“WiredTiger消息”,“attr”:{“消息”:“[1637670245:405280][2852:140718885658272],txn恢复: [WT_VERB_RECOVERY_PROGRESS] 正在恢复日志 56 到 56"}}\n{"t":{"$date":"2021-11-23T13:24:05.500+01:00"},"s":"I", “c”:“存储”,“id”:22430,“ctx”:“initandlisten”,“msg”:“WiredTiger消息”,“attr”:{“消息”:“[1637670245:500025][2852:140718885658272” ],txn-recover:[WT_VERB_RECOVERY | WT_VERB_RECOVERY_PROGRESS] 主恢复循环:从 55/55552 开始到 56/256"}}\n{"t":{"$date":"2021-11-23T13:24:05.656+01:00"},"s ":"I", "c":"STORAGE", "id":22430, "ctx":"initandlisten","msg":"WiredTiger 消息","attr":{"message":"[1637670245: 656606][2852:140718885658272],txn-recover:[WT_VERB_RECOVERY_PROGRESS] 正在恢复日志 55 到 56"}}\n{"t":{"$date":"2021-11-23T13:24:05.749+01:00 "},"s":"I", "c":"STORAGE", "id":22430, "ctx":"initandlisten","msg":"WiredTiger 消息","attr":{"消息" :"[1637670245:748359][2852:140718885658272], txn-recover: [WT_VERB_RECOVERY_PROGRESS] 正在恢复日志 56 到 56"}}\n{"t":{"$date":"2021-11-23T13:24: 05.821+01:00"},"s":"I", "c":"存储", "id":22430, "ctx":"initandlisten","msg":"WiredTiger 消息","attr" :{“消息”:“[1637670245:821165][2852:140718885658272],txn恢复:[WT_VERB_RECOVERY | WT_VERB_RECOVERY_PROGRESS] 设置全局恢复时间戳: (0, 0)"}}\n{"t":{"$date":"2021-11-23T13:24:05.821+01:00"},"s":" I", "c":"STORAGE", "id":22430, "ctx":"initandlisten","msg":"WiredTiger 消息","attr":{"message":"[1637670245:821165][ 2852:140718885658272],txn-恢复:[WT_VERB_RECOVERY | WT_VERB_RECOVERY_PROGRESS] 设置全局最旧时间戳: (0, 0)"}}\n{"t":{"$date":"2021-11-23T13:24:05.826+01:00"},"s":" I", "c":"STORAGE", "id":22430, "ctx":"initandlisten","msg":"WiredTiger 消息","attr":{"message":"[1637670245:826155][ 2852:140718885658272], WT_SESSION.checkpoint: [WT_VERB_CHECKPOINT_PROGRESS] 保存检查点快照最小值: 1, 快照最大值: 1 快照计数: 0, 最旧时间戳: (0, 0) , 元检查点时间戳: (0, 0) 基本写入生成: 68329"}}\n{"t":{"$date":"2021-11-23T13:24:05.840+01:00"},"s":"I", "c":"存储", "id":4795906, "ctx":"initandlisten","msg":"WiredTiger 打开","attr":{"durationMillis":542}}\n{"t":{"$date":"2021 -11-23T13:24:05.841+01:00"},"s":"I","c":"恢复","id":23987,"ctx":"initandlisten","msg":" WiredTiger recoveryTimestamp","attr":{"recoveryTimestamp":{"$timestamp":{"t":0,"i":0}}}}\n{"t":{"$date":"2021 -11-23T13:24:05.854+01:00"},"s":"我","c":"存储","id":4366408,"ctx":"initandlisten","msg":"现有 WiredTiger 表无需修改表日志记录设置","attr":{"loggingEnabled":false}}\n{"t":{"$date":"2021-11-23T13:24:05.858+01 :00"},"s":"I", "c":"STORAGE", "id":22262, "ctx":"initandlisten","msg":"时间戳监视器启动"}\n{"t ":{"$date":"2021-11-23T13:24:05.865+01:00"},"s":"W", "c":"CONTROL", "id":22120, "ctx" :"initandlisten","msg":"数据库未启用访问控制。对数据和配置的读写访问不受限制","tags":["startupWarnings"]}\n{"t":{"$date":"2021-11-23T13:24:05.866+01:00" },“s”:“W”,“c”:“控制”,“id”:22140,\n我认为问题出在这句话上:
\n\n“NotYetInitialized:在副本集完成初始化之前无法使用非本地读关注”\n\n
关于在这里做什么有什么想法吗?我在 Windows 10 上。
\n更多信息
\n\n# mongod.conf\n\n# 有关所有选项的文档,请参阅:\n# http://docs.mongodb.org/manual/reference/configuration-options/\n\n# 存储位置和方式数据。\ns存储:\n dbPath: C:\\Program Files\\MongoDB\\Server\\5.0\\data\n 日志:\n 启用: true\n# 引擎:\n#wiredTiger:\n\n # 写入日志数据的位置。\nsystemLog:\n 目标: 文件\n logAppend: true\n 路径: C:\\Program Files\\MongoDB\\Server\\5.0\\log\\mongod.log\n\ n# 网络接口\nnet:\n 端口: 27017\n bindIp: 127.0.0.1\n\n\n#processManagement:\n\n#security:\n\n#operationProfiling:\n\n#replication:\ n\n#sharding:\n\n## 仅限企业选项:\n\n#auditLog:\n\n#snmp:\n\n\n
Mat*_*ser 12
您需要初始化replicaSet
$ mongo --port 27017
> rs.initiate()
Run Code Online (Sandbox Code Playgroud)
然后部署更多成员
$ mongod --port 27018 --dbpath "C:\Program Files\MongoDB\Server\5.0\data2" --replSet replicaSet1
Run Code Online (Sandbox Code Playgroud)
确保每个新节点的port&dbpath都不同。
从 shell 将每个新节点添加到副本集
$ mongo --port 27017
PRIMARY> rs.add("localhost:27018")
Run Code Online (Sandbox Code Playgroud)
小智 9
我遇到了同样的问题,但正在使用 docker-compose。
解决了:
这是我的docker-compose.yaml文件:
version: "3"
services:
mongo1:
hostname: mongo1
container_name: localmongo1
image: mongo
expose:
- 27017
restart: always
entrypoint: [ "/usr/bin/mongod", "--bind_ip_all", "--replSet", "rs0" ]
mongo2:
hostname: mongo2
container_name: localmongo2
image: mongo
expose:
- 27017
restart: always
entrypoint: [ "/usr/bin/mongod", "--bind_ip_all", "--replSet", "rs0" ]
mongo3:
hostname: mongo3
container_name: localmongo3
image: mongo
expose:
- 27017
restart: always
entrypoint: [ "/usr/bin/mongod", "--bind_ip_all", "--replSet", "rs0" ]
mongosetup:
image: mongo
depends_on:
- mongo1
- mongo2
- mongo3
volumes:
- .:/scripts
restart: "no"
entrypoint: [ "bash", "/scripts/mongo_setup.sh"]Run Code Online (Sandbox Code Playgroud)
这是副本集初始化的配置文件(mongo_setup.sh 文件名):
#!/bin/bash
echo "sleeping for 10 seconds"
sleep 10
echo mongo_setup.sh time now: `date +"%T" `
mongosh --host mongo1:27017 <<EOF
var cfg = {
"_id": "rs0",
"version": 1,
"members": [
{
"_id": 0,
"host": "mongo1:27017",
"priority": 2
},
{
"_id": 1,
"host": "mongo2:27017",
"priority": 0
},
{
"_id": 2,
"host": "mongo3:27017",
"priority": 0
}
]
};
rs.initiate(cfg);
EOFRun Code Online (Sandbox Code Playgroud)