2012-03-13 34 views
6

Tôi mới làm quen với mongo và đang thử ví dụ mã được đưa ra trong tutorail trên trang Mongo nhưng tôi đang đối mặt với vấn đề bên dưới. Theo hướng dẫn, nó khá đơn giản. Nhưng tôi nhận được lỗi --replSet mặc dù tôi đã cho nó trong khi tạo một máy chủ. Tôi đang phát triển trên một máy tính độc lập với Linux fedora. Cũng có thể một số người cho tôi biết cách đặt lại/xóa máy chủ lưu trữ khi chúng được chỉ định.Chạy nhân rộng trên các vấn đề Mongo DB

[[email protected] data]# mongod --replSet cluster1 --port 27019 --dbpath /data/r2 
Tue Mar 13 18:40:40 
Tue Mar 13 18:40:40 warning: 32-bit servers don't have journaling enabled by default. Please use --journal if you want durability. 
Tue Mar 13 18:40:40 
Tue Mar 13 18:40:40 [initandlisten] MongoDB starting : pid=9849 port=27019 dbpath=/data/r2 32-bit host=localhost.localdomain 
Tue Mar 13 18:40:40 [initandlisten] 
Tue Mar 13 18:40:40 [initandlisten] ** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data 
Tue Mar 13 18:40:40 [initandlisten] **  see http://blog.mongodb.org/post/137788967/32-bit-limitations 
Tue Mar 13 18:40:40 [initandlisten] **  with --journal, the limit is lower 
Tue Mar 13 18:40:40 [initandlisten] 
Tue Mar 13 18:40:40 [initandlisten] db version v2.0.3, pdfile version 4.5 
Tue Mar 13 18:40:40 [initandlisten] git version: 05bb8aa793660af8fce7e36b510ad48c27439697 
Tue Mar 13 18:40:40 [initandlisten] build info: Linux domU-12-31-39-01-70-B4 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_41 
Tue Mar 13 18:40:40 [initandlisten] options: { dbpath: "/data/r2", port: 27019, replSet: "cluster1" } 
Tue Mar 13 18:40:40 [initandlisten] waiting for connections on port 27019 
Tue Mar 13 18:40:40 [websvr] admin web console waiting for connections on port 28019 
Tue Mar 13 18:40:40 [initandlisten] connection accepted from 127.0.0.1:56898 #1 
Tue Mar 13 18:40:40 [rsStart] replSet can't get local.system.replset config from self or any seed (EMPTYCONFIG) 
Tue Mar 13 18:40:40 [rsStart] replSet info you may need to run replSetInitiate -- rs.initiate() in the shell -- if that is not already done 
Tue Mar 13 18:40:50 [rsStart] replSet can't get local.system.replset config from self or any seed (EMPTYCONFIG) 
^CTue Mar 13 18:41:00 [rsStart] replSet can't get local.system.replset config from self or any seed (EMPTYCONFIG) 
Tue Mar 13 18:41:00 got kill or ctrl c or hup signal 2 (Interrupt), will terminate after current cmd ends 
Tue Mar 13 18:41:00 [interruptThread] now exiting 
Tue Mar 13 18:41:00 dbexit: 
Tue Mar 13 18:41:00 [interruptThread] shutdown: going to close listening sockets... 
Tue Mar 13 18:41:00 [interruptThread] closing listening socket: 6 
Tue Mar 13 18:41:00 [interruptThread] closing listening socket: 8 
Tue Mar 13 18:41:00 [interruptThread] closing listening socket: 9 
Tue Mar 13 18:41:00 [interruptThread] removing socket file: /tmp/mongodb-27019.sock 
Tue Mar 13 18:41:00 [interruptThread] shutdown: going to flush diaglog... 
Tue Mar 13 18:41:00 [interruptThread] shutdown: going to close sockets... 
Tue Mar 13 18:41:00 [interruptThread] shutdown: waiting for fs preallocator... 
Tue Mar 13 18:41:00 [interruptThread] shutdown: closing all files... 
Tue Mar 13 18:41:00 [interruptThread] closeAllFiles() finished 
Tue Mar 13 18:41:00 [interruptThread] shutdown: removing fs lock... 
Tue Mar 13 18:41:00 [conn1] end connection 127.0.0.1:56898 
Tue Mar 13 18:41:00 dbexit: really exiting now 
[[email protected] data]# mongo myhost:27017 
MongoDB shell version: 2.0.3 
connecting to: myhost:27017/test 
Tue Mar 13 18:41:13 getaddrinfo("myhost") failed: Name or service not known 
Tue Mar 13 18:41:13 Error shell/mongo.js:86 
exception: connect failed 
[[email protected] data]# mongo localhost:27017 
MongoDB shell version: 2.0.3 
connecting to: localhost:27017/test 
> 
> 
> config = {_id: 'cluster1', members: [ 
...       {_id: 0, host: 'myhost1:27017'}, 
...       {_id: 1, host: 'myhost2:27018'}, 
...       {_id: 2, host: 'myhost3:27019'}] 
... } 
{ 
    "_id" : "cluster1", 
    "members" : [ 
     { 
      "_id" : 0, 
      "host" : "myhost1:27017" 
     }, 
     { 
      "_id" : 1, 
      "host" : "myhost2:27018" 
     }, 
     { 
      "_id" : 2, 
      "host" : "myhost3:27019" 
     } 
    ] 
} 
> rs.initiate(config); 
{ "errmsg" : "server is not running with --replSet", "ok" : 0 } 
> exit 
bye 

Cảm ơn

+0

các bước bạn đã làm cho đến nay là gì. Bạn đã sửa đổi một số tập tin cấu hình? Bạn đã khởi tạo bản sao thông qua ví dụ. "sử dụng quản trị viên" và "rs.initiate ({" _ id ":" cluster1 "," thành viên ": [{" _id ": 1," máy chủ lưu trữ ":" myhost: 27017 "}, {" _id ": 2," host ":" otherhost: 27017 "}]});"? – Dag

Trả lời

2

Khi bắt đầu mongod, bạn phải xác định máy chủ khác, tham gia iny bộ sao chép của chúng tôi, ví dụ. khi bắt đầu myhost1, bạn phải thêm tham số sau:

--replSet cluster1/myhost2:27018,myhost3:27019 

Chỉ cần một cái gì đó tôi nhận thấy, /data là trực thuộc gốc /, cậu kiểm tra quyền phép? Thay đổi tốt hơn thành một cái gì đó như ~/temp/something trong khi thử nghiệm để tránh những cạm bẫy.

+0

Vâng, nhưng từ những gì tôi vừa thử, bạn chỉ có thể đặt '--replSet repl_name' mà không cho bất kỳ máy chủ nào khác. Sau đó bạn có thể thiết lập các máy chủ khi bạn kết nối vào thể hiện mongod. – dalanmiller

2

Trước tiên, bạn sẽ nhận được cảnh báo về máy chủ được định cấu hình trong cấu hình. Bạn có chắc chắn DNS là đúng, nếu không giải quyết chúng trong/etc/hosts

127.0.0.1  myhost1:27017 
    127.0.0.1  myhost2:27018 
    127.0.0.1  myhost3:27019 

Ngoài ra tôi nghĩ rằng bạn đã buộc quá trình mongod khép kín, tiêu diệt tất cả các quá trình đó, sẽ loại bỏ lỗi này Lỗi vỏ/mongo.js : 86 nếu nó không hoạt động. Bạn có thể phải loại bỏ dữ liệu này tập tin/mongodb.lock

0

bạn cần phải liên kết cả hai máy chủ tại/etc/hosts

máy chủ "host1"

  • 127.0.0.1 localhost
  • 0.0 .0.0 host1
  • 1.1.1.1 host2

máy chủ "host2"

  • 127.0.0.1 localhost

  • 1.1.1.1 host2

  • 0.0.0.0 host1

Các vấn đề liên quan