������������������������ MongoDB ������\���\��\���\�ޏ��¼\·\���\��я�����»����·�����������Ώ����ď���������\���\�����¡����я��������������������¹�����������������������𡭏������ޏ��������¹��¡�\���\��\���\�ޏ��¼\·\���\��я�����»����¹�����ď�������¡�mongod ������ master �����Џ�¡�slave �����Џ��������½���������¾���������폢����¾������²���������·�����������Ï���

������������ master �����Џ�����\µ���¼\Ð�����ҏ��폢����¾������²���������¹��¡�𡯏�������������¡�
�� host, port ������»������������·�����������������������������ď�������¡�localhost ��������¡�port ������ 27017 ����»������������������������¹��¡�

mongod --master --dbpath /var/tmp/master

���½������������ slave �����Џ�����\µ���¼\Ð�����ҏ��폢����¾������²���������¹��¡��½��������������������¡����³������������½��쏢�������������쏢��

mongod --slave --port 27018 --source localhost --dbpath /var/tmp/slave

slave ������������ --source \���\��\·\���\��я��������о������������������� master \µ���¼\Ð������ domain or ip ������ port ������»������������·���������¹����[domain or ip]:[port] ������·���¼�돢����¡�port ������»������������·������������¾���¹�����¡�\���\���\���\���\��������� 27017 ����»������������������������¹��¡�

���������·������������ --source \���\��\·\���\��я�����»������������¹������������������������������ slave �����Ï��������¾������ master ������¾��Ï����я����ҏ�����½������·������������������k���������¹��¡��³������¾���¹��������� sources \³\���\���\·\���\��� (mysql ������������������\������¼\���\���) ������������²������·���������¹��¡򏪴��ď�ԏ�����²������¹���������³��������������¡񏪴��ď�ԏ����� master ���«������\���\��\���\�ޏ��¼\·\���\��я��µ���»���������³������������½Ð���������������¹��¡�

$ bin/mongo --port 27018 // ������ slave �����������䏪�³
> use local
> db.sources.insert({host: "localhost:27017"})
> db.sources.insert({host: "192.168.xxx.xxx:27017"}) // �����ď�ԏ�����²���������²������½

�����������������Ώ�������¡��³������ mongo \µ���¼\Ð���� slave �������������«�����������Ï��«��¡����������� master �����ҏ��«�������������������������«���폢���������������� sources �����ҏ��«���������Ð���������«���������������¹��¡�mysql ������������������ show slave status; �����Ώ����ď������������������������������¹��¡�

$ bin/mongo --port 27018 // ������ slave �����������䏪�³
> use local
> db.sources.find({}, {host: 1})
// { "_id" : ObjectId("4bc030a343a4b90b52718a75"), "host" : "localhost"}

�����������쏢¡���²��я������돫�������������\µ���¼\Ð�����������ď�ԏ����� mongod �����ҏ��폢����¾������²�����������������������ď�������¡�slave ������������ master �������������돫������� port, dbpath ������»������������·���������������¹��¡������������� slave �����Ï��������̏��·���̏��·\���\��\���\�ޏ��¼\·\���\��я��µ���������������������쏢��

\���\��\���\�ޏ��¼\·\���\���¼«�������������¹���롭�돪�»���¹����������slave ������������ď������ master ����������ޏ��������������������������������¹�������·��¡��������������������������������ޏ��������¹��������¡��³���������������������²���������·���¹��¡�

�����������������Ώ����� MongoDB1.3.3 �돪�¾���������������\���\������¼\���\���\��\������¼���Ð��돫ӏ��������·������ slave �����Ï�����������\���\��\���\�ޏ��¼\·\���\��я����ҏ�����������������������������»���������³������������½Ð�����������������Ώ����ď��������������¹��¡�--slavedelay \���\��\·\���\��я����� master ���«������ slave �����������㏢�������»������»��С���ӏ����ҏ�����������»������������¹���������³����������½Ð�����������������Ώ����ď�������¡�

��돪���������������¡�

\������¼\��ď������̏��½�����я����������������ď��������������ޏ��������в��ď����������������������������������я��������¹���̏�¡�\���\��\���\�ޏ��¼\·\���\��я��̏��������������������㏢����������¾���¹���������������\���\��\���\�ޏ��¼\·\���\��я��̏��������������µ���������������������·���������������¹��¡�돫������ slave �����ҏ������������·��������¡��³�����я���������������������500������·���������\������¼\��ď����� master ��������돫����������ď���������돩������� slave ���폢����¾������²�����������Ώ�������������¡�¡�¡�

# master ������\������¼\��ď�����돫����� (���³������������500������·���������\������¼\��ď��̏�돫�����µ���������������¹)
$ bin/mongo // ������ master �����������䏪�³
> i = 0; while(i < 5000000) {
... db.hoge.save({num: i})
... i++;
... }

�����ď��·���«������ halted replication ������������������\���\��\���\���\»���¼\������̏��½¼�����µ��������������¡�»��Ώ�������������������������¡�¡�\���\��\���\�ޏ��¼\·\���\��я��̏��������������µ�����������ď����Ώ����ď��������������¹��¡��³���������������я������������������������³��������������¡�

MongoDB - Master Slave
A slave may become out of sync with a master if it falls far behind the data updates available from that master, or if the slave is terminated and then restarted some time later when relevant updates are no longer available from the master. If a slave becomes out of sync, replication will terminate and operator intervention is required by default if replication is to be restarted. An operator may restart replication using the {resync:1} command. Alternatively, the command line option --autoresync causes a slave to restart replication automatically (after ten second pause) if it becomes out of sync. If the --autoresync option is specified, the slave will not attempt an automatic resync more than once in a ten minute periond.

\���\��\���\�ޏ��¼\·\���\��я��̏��������������µ�����������������������������ď�������¡�{resync: 1} ������������¼�������쏢��������돢�«���·�����������²���������Ð�����������������������Ï��������¹��¡��½���·�����ď��������­�����������я�����\���\��\���\�ޏ��¼\·\���\��я���³«»������µ���������������·�����ď�¡�

$ bin/mongo --port 27018 // ������ slave �����������䏪�³
> use admin
> db.runCommand({resync: 1})

¼�����돪�����������\»\­\���\���\���\�򏪩��쏢�������������«��������¡�\���\��\���\�ޏ��¼\·\���\��я����������Џ�����\������¼\�������ҏ�돫����������ď��������·�����ď������̏��������������������¹���̏�¡� ����������������𡯏�����\���\��\���\�ޏ��¼\·\���\���½Ð���������������·�����ď�¡򡭏������ޏ����������я��������������������������¹��������¡�(����Ž��Ρ��Ž���)������
³\\\\¼ҏ\\\\¼\²