2015-11-25 3 views
0

Я новичок MongoDB, я использовал MongoDB 2.6.5 на некоторое время, моя среда: 3 сервера: первичный, второй, Arb, 1 база данных DB1 (~ 3 ГБ, 3 миллиона элементов), 1 набор репликации : ReplicationSet1Набор репликации Mongodb и база данных

   server1(primary)  server2(second)  server3(Arb) 
DB1     x       x 
ReplicationSet1:PRIMARY> rs.conf() 
{ 
     "_id" : "ReplicationSet1", 
     "version" : 3, 
     "members" : [ 
       { 
         "_id" : 0, 
         "host" : "server1:27017" 
       }, 
       { 
         "_id" : 1, 
         "host" : "server2:27017" 
       }, 
       { 
         "_id" : 2, 
         "host" : "server3:30000", 
         "arbiterOnly" : true 
       } 
     ] 
} 

DB1 является резервное копирование ежедневно: mongodump --host server1 --db DB1 --out $BACKUP_HOME$DATE --oplog Теперь я хочу, чтобы создать новую DB2 базы данных и заставить мое приложение, используя его, DB1 будет использоваться как только для чтения (не изменится/обновление больше), так что я будет резервное копирование DB1 в последний раз, а затем резервное копирование DB2 ежедневно. Как я могу это сделать?

Могу ли я удалить DB1 из ReplicationSet1, так что репликация DB2 только между первичным и вторым?

Можно ли создать новый набор репликации только DB2?

Могу ли я переместить DB1 в другой экземпляр (например, порт 30001) и одновременно запустить 2 экземпляра MongoDB (27017 и 30001)?

Пожалуйста, дайте мне несколько советов и спасибо.

ответ

0

Я предполагаю, что вы хотите создать новую базу данных DB2 и прекратить запись в DB1, если это так, тогда просто запустите и создайте новую базу данных DB2 и настройте приложение только для использования DB2 для дальнейших вставок и читается, это так же просто, как и mongodb может обрабатывать несколько соединений с базой данных одновременно, поэтому, если вы когда-либо захотите прочитать данные из старой базы данных DB1, просто подключитесь к этой базе данных и прочитайте данные, а также, поскольку вы не вставляете какие-либо данные к DB1 не будет никакой репликации, которая будет происходить и в вашей базе данных DB1, и как только вы создадите DB2, она будет автоматически реплицирована, вам не о чем беспокоиться.

надеюсь, что это поможет, и если вы пытаетесь удалить основную машину и добавить новую основную машину, все шаги будут разными, если это то, что вы хотите, дайте мне знать, я дам их вам.

+0

Большое спасибо Aoxi, Я создам больше DB2 в ReplicationSet1, так как DB1 будет использоваться как только для чтения (без изменения/обновления), это не повлияет на трафик репликации. Затем я буду делать резервные копии DB1 в последний раз и резервное копирование DB2 ежедневно mongodump --host ip --db DB2 --out path user36814