AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题 / 203152
Accepted
Vinicius Deschamps
Vinicius Deschamps
Asked: 2018-04-06 07:23:07 +0800 CST2018-04-06 07:23:07 +0800 CST 2018-04-06 07:23:07 +0800 CST

由于“索引中已有 84 个键/值”,MongoDB 副本集成员无法启动

  • 772

我有一个包含 3 个成员(1 个主要成员和 2 个辅助成员)的副本集,其中一个辅助成员工作正常并抛出以下错误

> 2018-03-12T11:03:54.868-0400 E REPL [repl writer worker 13] writer
> worker caught exception: :: caused by :: 84 key/value already in index
> on: { ts: Timestamp 1520867034000|8, h: 287037468373256260, v: 2, op:
> "u", ns: "Sitecore_analytics_PROD.Interactions", o2:
> 
> { _id: BinData(3, EFC3DD1A15B75442986344FDE9CC71EB) } , o: { $set:
> 
> { ContactVisitIndex: 2 } } } 2018-03-12T11:03:54.868-0400 I - [repl
> writer worker 13] Fatal Assertion 16360 2018-03-12T11:03:54.868-0400 I
> - [repl writer worker 13] 
> ***aborting after fassert() failure

之后MongoDB就无法启动了,一直报同样的错误!

我怎样才能确定它的根本原因?有办法预防吗?如何解决?

mongodb replication
  • 2 2 个回答
  • 446 Views

2 个回答

  • Voted
  1. Best Answer
    JJussi
    2018-04-06T09:27:24+08:002018-04-06T09:27:24+08:00

    为该有问题的辅助节点执行初始同步。只需从 dbpath 中删除文件并启动 mongod。节点将自动进行初始同步。其他更快的方法(如果可以的话)是复制现有节点(可以是主节点或辅助节点)的 dbpath 的快照并启动 mongod。

    这里的问题是唯一索引处已经有条目,系统尝试应用 opLog 行并因该错误而崩溃。

    • 1
  2. Md Haidar Ali Khan
    2018-04-08T06:41:19+08:002018-04-08T06:41:19+08:00

    正如我能够从您的日志文件中看到的那样,您收到了类似***aborting after fassert() failure. 作为年轻的 DBA,请访问此处的博客或此处、此处和此处的MongoDB Jira 。如果没有更多信息,则很难确定问题的确切来源。

    正如@alernerdev在这里描述的那样, 我希望你有数据备份?关闭有故障的辅助设备,删除其中一个上的数据,然后将其备份(仅一个)——这将启动初始重新同步过程。如果一切顺利,此时您将拥有 1 个主要的和 1 个次要的。在执行此操作之前,请验证您的 oplog 窗口的大小是否足够大以完成初始同步过程。一旦这一切恢复正常,对您的第二个次级执行相同的操作。

    在这里和这里供您进一步参考

    • 1

相关问题

  • 关于操作/管理 MongoDB 的良好资源

  • 在同一台物理服务器上运行复制是不明智的吗?

  • 有没有办法以小于 1 秒的分辨率测量 MySQL 中的复制滞后?

  • 运行时间偏移延迟复制的最佳实践

  • PostgreSQL 9.0 Replication 和 Slony-I 有什么区别?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve