使用ruby-mongodb-driver修复Mongodb

时间:2012-05-10 13:52:34

标签: mongodb

是否有人知道通过ruby-mongodb-driver来修复mongodb的情况是一个腐败数据库的情况。

查看documentation似乎没有

任何人都可以确认。

或者任何人都可以建议我修复mongod数据库的更好方法。

目前我知道

./mongod --repair options

./mongo

> use [database]
> db.repairDatabase()

我也看到了一个shell选项

 ./mongo --help 

options:
  --shell               run the shell after executing files

如何编写脚本(.js)来修复给定的数据库

1 个答案:

答案 0 :(得分:3)

对于mongo shell,数据库名称可以作为可选参数给出。这是一个shell脚本,应该明确这一点。

repair.sh

#!/bin/sh
if [ $# -lt 1 ]
then    echo "$0 - repair mongodb database"
        echo "usage: $0 database-name"
        exit 1
fi
mongo $1 --eval 'printjson(db.repairDatabase())'

这是红宝石1.9当量。

repair.rb

#!/bin/env ruby
require 'mongo'
if ARGV.length < 1
    puts "$0 - repair mongodb database"
    puts "usage: $0 database-name"
    exit 1
end
db = Mongo::Connection.new[ARGV[0]]
puts db.command({repairDatabase: 1})

数据库的常见问题解答和文档中有更多信息。

http://api.mongodb.org/ruby/current/file.FAQ.html

http://api.mongodb.org/ruby/current/Mongo/DB.html

导航到一些文档并不明显 - 我们会考虑让它变得更好。