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
    • 最新
    • 标签
主页 / server / 问题 / 439658
Accepted
tunnuz
tunnuz
Asked: 2012-10-18 23:54:58 +0800 CST2012-10-18 23:54:58 +0800 CST 2012-10-18 23:54:58 +0800 CST

是否可以从 .ns 和 .0、.1、. ... 文件?

  • 772

我在 Ubuntu 12.10 上安装了 MongoDB 2.0.4。最近我在从外部连接到数据库时遇到了一些问题,并发现有一些东西阻止了 MongoDB 正确启动。根据多个来源的建议(请参阅 StackOverflow),我删除/var/lib/mongodb/mongodb.lock并运行了mongod --repair. 这并没有解决问题,MongoDB 无法运行并不断创建锁定文件,之后它没有注意删除这些文件。通过查看日志,我意识到它无法访问某个名为 的文件夹$tmpSomething,所以(因为名称暗示了一个临时文件夹)我删除了它,然后一切正常......除了我只有一个我以前的数据库在眼前,而其他的还在那里,因为我的/var/lib/mongodb/文件夹仍然充满了.ns .0 .1 .n很重的文件。有没有办法将它们恢复到数据库中?(我试过 mongorestore,但正如我所料,它不处理这些文件)。

谢谢

ubuntu
  • 1 1 个回答
  • 15367 Views

1 个回答

  • Voted
  1. Best Answer
    Adam C
    2012-10-19T09:35:29+08:002012-10-19T09:35:29+08:00

    .ns .0 .1等文件本身就是数据文件。如果您启动一个mongod带有指向该文件夹的参数的实例--dbpath,或者如果您将内容移动到其他地方并使用选项指向那里,mongod 将尝试正常读取它们。

    由于您的问题表明损坏和/或其他一些问题开始mongod(您应该真正发布启动消息日志文件,也许在一个单独的问题中以解决该问题),那么还有其他选择。作为参考,最常见的问题与权限相关,尤其是当人们尝试手动(以他们自己的身份)或使用 sudo(以 root 身份)启动 mongod 并在各种目录中创建有问题的权限时。

    你是正确的,mongorestore不能直接使用这些数据文件,但mongodump可以读取它们并将数据从它们转储到mongorestore期望的 BSON 文件中。

    您在此处需要的选项是dbpath。你提到你的路径是/var/lib/mongo,所以你可以运行这样的东西:

    mongodump --dbpath /var/lib/mongo -d <database name> -o /path/to/put/files
    

    您也可以选择--repair在这里使用来修复损坏以及极端情况下的查询选项,以绕过损坏的部分(很少,如果有的话)。页面上描述了各种选项mongodump:

    http://docs.mongodb.org/manual/reference/mongodump/

    转储文件后,您可以使用mongorestore它们将它们重新导入到另一个mongod实例中。

    • 19

相关问题

  • 无法通过 Ubuntu VPN 访问外部网络

  • ubuntu apt-get upgrade - 如何在 shell 中单击确定?

  • VirtualBox 上 Ubuntu 的访客优化技巧 [关闭]

  • 外部硬盘上的 virtualbox 虚拟硬盘驱动器(Vista 主机上的 ubuntu 客户机)

  • 如何在 Ubuntu 上挂载 LVM 分区?

Sidebar

Stats

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

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve