如果我想在我的數據庫中調用fsync + lock方法,有沒有辦法在Rails應用中使用Mongoid來做到這一點?是否還有一種方法只指定我想要執行此操作的副本節點?在Mongoid中有Mongo Admin fsync + lock命令嗎?
我正在嘗試創建一個rake任務來使用cron每晚執行備份。
如果我想在我的數據庫中調用fsync + lock方法,有沒有辦法在Rails應用中使用Mongoid來做到這一點?是否還有一種方法只指定我想要執行此操作的副本節點?在Mongoid中有Mongo Admin fsync + lock命令嗎?
我正在嘗試創建一個rake任務來使用cron每晚執行備份。
Mongoid 2使用10gen支持的驅動程序。 Mongoid :: Config.master.connection對應於類Mongo :: MongoClient(是Mongo :: Connection)的連接對象。 這個類有一個實例方法鎖!執行fsyncLock命令,並解鎖!是它的伴侶。
http://api.mongodb.org/ruby/current/Mongo/MongoClient.html#lock!-instance_method
http://api.mongodb.org/ruby/current/Mongo/MongoClient.html#unlock!-instance_method
沒有選項這些方法僅由插座,其基本上在內部使用,以指定部件/ s的副本集, 。 因此,如果您需要fsyncLock特定的副本集成員,我建議您通過明確的連接 (例如,Mongo :: MongoClient.new(主機,端口))明確地連接到它。
client = Mongo::MongoClient.new(host, port)
client.lock!
# ...
client.unlock!
client.close
Mongoid 3使用輕便摩托車而不是10gen驅動程序。 但即使你移動到Mongoid 3,你仍然可以獨立使用10gen驅動程序。
我對你的結果和任何後續問題很感興趣。
你使用的是什麼版本的Mongoid? –
我目前在2.4 – Pam