2014-06-27 25 views
0

我試圖從1副本集到另一個mongo中重放oplog。我收到錯誤,爲什麼?mongooplog未通過未經授權的錯誤

mongooplog --from "10.0.0.180:27017" -h "my_rs/10.0.0.88:27017,10.0.0.88:27018,10.0.0.88:27019" -d my_db -u dbuser -p db_pass 
Fri Jun 27 14:24:21 starting new replica set monitor for replica set my_rs with seed of 10.0.0.88:27017,10.0.0.88:27018,10.0.0.88:27019      
Fri Jun 27 14:24:21 successfully connected to seed 10.0.0.88:27017 for replica set my_rs 
Fri Jun 27 14:24:21 changing hosts to { 0: "10.0.0.88:27017", 1: "10.0.0.88:27018" } from my_rs/               
Fri Jun 27 14:24:21 trying to add new host 10.0.0.88:27017 to replica set my_rs 
Fri Jun 27 14:24:21 successfully connected to new host 10.0.0.88:27017 in replica set my_rs 
Fri Jun 27 14:24:21 trying to add new host 10.0.0.88:27018 to replica set my_rs 
Fri Jun 27 14:24:21 successfully connected to new host 10.0.0.88:27018 in replica set my_rs 
Fri Jun 27 14:24:21 successfully connected to seed 10.0.0.88:27019 for replica set my_rs 
Fri Jun 27 14:24:21 Primary for replica set my_rs changed to 10.0.0.88:27017                    
Fri Jun 27 14:24:21 replica set monitor for replica set my_rs started, address is my_rs/10.0.0.88:27017,10.0.0.88:27018         
connected to: my_rs/10.0.0.88:27017,10.0.0.88:27018,10.0.0.88:27019                       
Fri Jun 27 14:24:21 [ReplicaSetMonitorWatcher] starting                          
Fri Jun 27 14:24:21 [oplogreplay] going to connect                           
Fri Jun 27 14:24:21 [oplogreplay] connected                             
Fri Jun 27 14:24:21 [oplogreplay] starting from Jun 26 14:24:21:0                        
Fri Jun 27 14:24:21 [oplogreplay] { assertion: "unauthorized db:admin ns:admin lock type:1 client:10.0.0.88", assertionCode: 10057, errmsg: "db assertion failure", ok: 0.0 }                                    
Fri Jun 27 14:24:21 [oplogreplay] { assertion: "unauthorized db:admin ns:admin lock type:1 client:10.0.0.88", assertionCode: 10057, errmsg: "db assertion failure", ok: 0.0 }                                    
Fri Jun 27 14:24:21 [omongooplog --from "10.0.0.180:27017" -h "my_rs/10.0.0.88:27017,10.0.0.88:27018,10.0.0.88:27019" -d my_db -u dbuser -p db_pass 
Fri Jun 27 14:24:21 starting new replica set monitor for replica set my_rs with seed of 10.0.0.88:27017,10.0.0.88:27018,10.0.0.88:27019      
Fri Jun 27 14:24:21 successfully connected to seed 10.0.0.88:27017 for replica set my_rs 
Fri Jun 27 14:24:21 changing hosts to { 0: "10.0.0.88:27017", 1: "10.0.0.88:27018" } from my_rs/               
Fri Jun 27 14:24:21 trying to add new host 10.0.0.88:27017 to replica set my_rs 
Fri Jun 27 14:24:21 successfully connected to new host 10.0.0.88:27017 in replica set my_rs 
Fri Jun 27 14:24:21 trying to add new host 10.0.0.88:27018 to replica set my_rs 
Fri Jun 27 14:24:21 successfully connected to new host 10.0.0.88:27018 in replica set my_rs 
Fri Jun 27 14:24:21 successfully connected to seed 10.0.0.88:27019 for replica set my_rs 
Fri Jun 27 14:24:21 Primary for replica set my_rs changed to 10.0.0.88:27017                    
Fri Jun 27 14:24:21 replica set monitor for replica set my_rs started, address is my_rs/10.0.0.88:27017,10.0.0.88:27018         
connected to: my_rs/10.0.0.88:27017,10.0.0.88:27018,10.0.0.88:27019                       
Fri Jun 27 14:24:21 [ReplicaSetMonitorWatcher] starting                          
Fri Jun 27 14:24:21 [oplogreplay] going to connect                           
Fri Jun 27 14:24:21 [oplogreplay] connected                             
Fri Jun 27 14:24:21 [oplogreplay] starting from Jun 26 14:24:21:0                        
Fri Jun 27 14:24:21 [oplogreplay] { assertion: "unauthorized db:admin ns:admin lock type:1 client:10.0.0.88", assertionCode: 10057, errmsg: "db assertion failure", ok: 0.0 }                                    
Fri Jun 27 14:24:21 [oplogreplay] { assertion: "unauthorized db:admin ns:admin lock type:1 client:10.0.0.88", assertionCode: 10057, errmsg: "db assertion failure", ok: 0.0 }                                    
Fri Jun 27 14:24:21 [oplogreplay] { assertion: "unauthorized db:admin ns:admin lock type:1 client:10.0.0.88", assertionCode: 10057, errmsg: "db assertion failure", ok: 0.0 }                                    
Fri Jun 27 14:24:21 [oplogreplay] { assertion: "unauthorized db:admin ns:admin lock type:1 client:10.0.0.88", assertionCode: 10057, errmsg: "db assertion failure", ok: 0.0 }                                    
Fri Jun 27 14:24:21 [oplogreplay] { assertion: "unauthorized db:admin ns:admin lock type:1 client:10.0.0.88", assertionCode: 10057, errmsg: "db assertion failure", ok: 0.0 }                                    
Fri Jun 27 14:24:21 [oplogreplay] { assertion: "unauthorized db:admin ns:admin lock type:1 client:10.0.0.88", assertionCode: 10057, errmsg: "db assertion failure", ok: 0.0 }                                    
Fri Jun 27 14:24:21 [oplogreplay] { assertion: "unauthorized db:admin ns:admin lock type:1 client:10.0.0.88", assertionCode: 10057, errmsg: "db assertion failure", ok: 0.0 }                                    
Fri Jun 27 14:24:21 [oplogreplay] { assertion: "unauthorized db:admin ns:admin lock type:1 client:10.0.0.88", assertionCode: 10057, errmsg: "db assertion failure", ok: 0.0 } plogreplay] { assertion: "unauthorized db:admin ns:admin lock type:1 client:10.0.0.88", assertionCode: 10057, errmsg: "db assertion failure", ok: 0.0 }                                    
Fri Jun 27 14:24:21 [oplogreplay] { assertion: "unauthorized db:admin ns:admin lock type:1 client:10.0.0.88", assertionCode: 10057, errmsg: "db assertion failure", ok: 0.0 }                                    
Fri Jun 27 14:24:21 [oplogreplay] { assertion: "unauthorized db:admin ns:admin lock type:1 client:10.0.0.88", assertionCode: 10057, errmsg: "db assertion failure", ok: 0.0 }                                    
Fri Jun 27 14:24:21 [oplogreplay] { assertion: "unauthorized db:admin ns:admin lock type:1 client:10.0.0.88", assertionCode: 10057, errmsg: "db assertion failure", ok: 0.0 }                                    
Fri Jun 27 14:24:21 [oplogreplay] { assertion: "unauthorized db:admin ns:admin lock type:1 client:10.0.0.88", assertionCode: 10057, errmsg: "db assertion failure", ok: 0.0 }                                    
Fri Jun 27 14:24:21 [oplogreplay] { assertion: "unauthorized db:admin ns:admin lock type:1 client:10.0.0.88", assertionCode: 10057, errmsg: "db assertion failure", ok: 0.0 } 

from參數也是一個RS(與noauth=true集),但如果我嘗試使用「my_rs/10.0.0.180:27017」失敗了,看起來並不像from參數可以使用RS地址。

用於88上重播的用戶名和密碼位於管理數據庫以及my_db中。

更新

我已經升級到2.4.10。升級似乎給了更有意義的日誌。在180上,我可以連接到本地數據庫(無需身份驗證)並執行db.oplog.rs.count()並獲取結果(包括本地和遠程連接)。然而,當我用180作爲從運行mongooplog,我還得到一個錯誤(這是從88):

Tue Jul 1 10:16:29.034 [oplogreplay] error getting oplog 
Tue Jul 1 10:16:29.034 [oplogreplay] { $err: "not authorized for query on local.oplog.rs", code: 16550 } 

,我看到180的錯誤日誌類似的錯誤。

回答

1

您需要將驗證數據庫添加到命令行,因爲默認情況下,mongooplog將假定您的用戶名和密碼憑證適用於您正在應用oplog的數據庫。

--authenticationDatabase 2.4版本DBNAME

新建。

指定保存用戶憑證的數據庫。如果您確實沒有指定身份驗證數據庫,則mongooplog假定

指定爲--db選項參數的數據庫保存了 用戶的憑據。

所以在你的情況下,我會添加--authenticationDatabase admin到你的命令行。

+0

所以如果我運行2.2,升級將需要oplog工作? – Brett

+0

也許 - 你可以嘗試將這些憑據添加到my_db數據庫 - 問題是它試圖將您的登錄憑據應用到不同的數據庫。如果你在admin和my_db中擁有相同的憑據,它應該可以工作。注意,儘管我沒有在2.2上試過這個。 –

+0

嗨約翰,看到我原來的帖子更新部分 - 我已經升級了mongo,並嘗試將authenticationDatabase設置爲local,admin和my_db(所有3個數據庫中都存在相同的用戶帳戶)。我仍然收到上面顯示的錯誤。 – Brett