每当我键入:rs.initiate(),我收到以下错误消息:
{
"info2" : "no configuration explicitly specified -- making one",
"me" : "VMHOSTNAME:27017",
"ok" : 0,
"errmsg" : "No host described in new configuration 1 for replica set rs0 maps to this node",
"code" : 93
}
Run Code Online (Sandbox Code Playgroud)
我使用最新的MongoDB在google-cloud-engine下运行.
关于如何解决这个问题的任何建议?
我尝试按照以下指令创建副本集,例如: 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, … 我用ubuntu.
我启动三个mongod副本集如下:
$ mongod --replSet setname --logpath "1.log" --dbpath /data/rs1 --port 27017 --smallfiles --fork
$ mongod --replSet setname --logpath "2.log" --dbpath /data/rs2 --port 27018 --smallfiles --fork
$ mongod --replSet setname --logpath "3.log" --dbpath /data/rs3 --port 27019 --smallfiles --fork
Run Code Online (Sandbox Code Playgroud)
我该如何关闭它们?
我已经使用以下链接安装了最新版本的 mongodb (v4.0.5) https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/ 现在我正在尝试设置使用以下教程中提供的说明进行复制 但是,一旦我在“2.通过发出以下命令在自己的 shell 窗口中启动您的 mongod 实例”处尝试该命令,它就会给我以下错误“未设置会话集合向上;等待下一次会话刷新间隔:尚未配置复制”
我使用的命令:mongod --replSet rs0 --port 27019 --bind_ip localhost,[MY_IP] --dbpath /srv/mongodb/rs0-2 --smallfiles --oplogSize 128
该命令的更详细输出如下:
2018-12-31T15:37:03.618+0530 I CONTROL [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'
2018-12-31T15:37:03.623+0530 I CONTROL [initandlisten] MongoDB starting : pid=xxx port=27017 dbpath=/srv/mongodb/rs0-0 64-bit host=xxx
2018-12-31T15:37:03.623+0530 I CONTROL [initandlisten] db version v4.0.5
2018-12-31T15:37:03.623+0530 I CONTROL [initandlisten] git version: xxx
2018-12-31T15:37:03.623+0530 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.1e-fips 11 Feb 2013
2018-12-31T15:37:03.623+0530 I CONTROL [initandlisten] allocator: …Run Code Online (Sandbox Code Playgroud) [一些背景信息 - 可能可以跳过]
首先,我对数据库管理几乎没有任何了解,对后端领域的猫鼬和节点只有肤浅的经验(一些 udemy 课程)。Udemy 课程让我相信 mongodb 仍然是具有关系属性的数据库的可行选择,因此我开始为类似论坛的网站开发后端。在了解事务之后,我尝试在后端实现它们,因为在执行一组查询时实现回滚功能似乎是完全必要的。然而事实证明,事务只能在副本集上进行——对于启动 MVP 来说,这似乎也需要至少 2. 3 个数据库,这显然被认为是一种矫枉过正。
[问题]
是否可以只用1个数据库来实现事务?如果是这样怎么办?
如果上述不可能,那么如何在实现事务的同时以最小的配置启动 mongodb 数据库,并且考虑到该数据库是用于启动 MVP 的。
(对于任何有在类似场景中实现生产级 mongo 数据库经验的人)如果不考虑使用事务,如何在不使用事务的情况下安全地将编辑/创建多个文档的查询发送到 mongoDB 数据库,同时不喷洒所有代码使用由查询组成的 try-catch 来回滚每个故障点(我认为开销太大)
我的截止日期很紧,并且已经使用 mongoose 完成了大量的基础工作和几条路线,这意味着目前放弃 mongodb 而使用关系数据库将是一个困难的选择。
我想我已经用谷歌搜索了与该主题相关的所有内容,甚至在谷歌搜索的第二页中尝试了博客/文章(包括我自己在内的许多人认为这是暗网)。但我确实认为我可能错过了我正在寻找的内容,并且也欢迎仅包含链接的答案。
感谢您的阅读!
database transactions mongodb replicaset mongodb-replica-set
我每次都收到这条消息rs.initiate():
新配置1中描述的副本集rs0中没有主机映射到此节点
这是我的/ etc/hosts /文件在副本集服务器上的外观.
服务器1和服务器2"托管"文件
127.0.0.1 localhost
aa.bb.cc.dd DataMongo1
ee.ff.gg.hh DataMongo2
服务器1-mongod.conf文件
bind-ip aa.bb.cc.dd
Server 2 -mongod.conf文件
bind-ip ee.ff.gg.hh
将server1主机名更改为DataMongo1,将server2更改为DataMongo2
$ hostname DataMongo1
端口27071在两台服务器上都没有注释
ReplicaSet配置文件:
cfg = { _ id
:"rs0",
members:[{_ id:0,host:"DataMongo1:27071"},{_ id:1,host:"DataMongo2:27071"}]}
请帮我解决这个问题.
我想知道如何使用新的Docker 1.12群模式服务模型启动mongodb副本集.启动服务允许您指定多个容器副本,在最小副本集案例中将为3.但如果Docker运行单个容器本身,则所有参数都将为副本集主要指定参数,所有容器都具有相同的名称服务(用于通过覆盖网络联系容器)?
副本集容器如何以不同的名称相互联系?mongodb1,mongodb2,mongodb3 - 这些必须是不同的服务?
直接运行码头工人'run'命令就这么直接......现在看起来对于满状态容器(副本集成员)来说似乎有些混乱,因为它与无状态容器相对,其中所有容器的服务都是相同的...
任何指针或链接都会有所帮助.
我正在学习 Mongodb 大学 M103 课程,在那里他们简要概述了集群和副本集是什么。根据我的理解,集群是一组服务器或节点。副本集是一组服务器或节点,所有这些服务器或节点都内置了复制机制,用于停机访问和更快的读取操作。
从这点看来,副本集是一种特定类型的集群,但我的困惑来自 MongoDB Atlas。在 mongoDB atlas 中,必须创建一个集群,这也是一个副本集吗?
这些术语在所有情况下都可以互换吗?
错误Invalid "prisma.user.create()". Prisma needs to perform transactions, which requires your MongoDB server to be run as a replica set.
我将 Nx ( nx.dev ) 与 MongoDB/Express 和 Prisma 一起使用。
我们需要释放一些 MongoDB 空间,并且我们确定了可以从集合中安全删除的超过 100Gb 的文档。
因此,我们将它们从具有以下设置的测试环境中删除:
完成后,我们发现磁盘上的空间仍然被使用,需要回收。我们找到了这篇文章,它对我们有帮助:运行完两者后
db.runCommand({repairDatabase: 1})
Run Code Online (Sandbox Code Playgroud)
和
db.runCommand({compact: collection-name })
Run Code Online (Sandbox Code Playgroud)
我们释放了 100Gb 以上。
然后我们继续生产,忘记了设置是不同的,因为我们有 1 个副本节点:
删除文档后,我们运行
db.runCommand({repairDatabase: 1})
Run Code Online (Sandbox Code Playgroud)
并收到OK消息(过了一会儿,10 分钟以上)。我们尝试跑步
db.runCommand({compact: collection-name })
Run Code Online (Sandbox Code Playgroud)
并得到这个错误:
不会在活动副本集主节点上运行紧凑型操作,因为这是一个缓慢的阻塞操作。用力:真实用力
所以我们跑
db.runCommand({compact: collection-name, force: true })
Run Code Online (Sandbox Code Playgroud)
并收到“确定”消息(几乎立即),但空间上的磁盘仍然被使用,它没有被释放。
我们寻找使用副本集运行repairDatabase和compact命令的解决方案,但建议的重点是避免停机,就好像这是唯一的问题一样。但是,我们可以安排停机时间,但我们的问题是命令无法按预期工作,因为空间实际上并未被回收。
我们做错了什么?
mongodb ×10
replicaset ×4
database ×1
docker ×1
docker-swarm ×1
localhost ×1
prisma ×1
transactions ×1
ubuntu ×1
ubuntu-14.04 ×1
wiredtiger ×1