Eu tenho um banco de dados mongodb no meu computador. Eu quero fazer o upload para o servidor amazon.com.
O gargalo da garrafa é a conexão com a internet.
Uma maneira é compactar o arquivo e enviá-lo para o servidor. Mas e se depois disso eu quiser sincronizar os dados do servidor com os dados atuais?
Outra é definir o mongo no servidor como escravo dos dados no meu computador. No entanto, meu computador é um computador doméstico que se conecta à Internet via roteador. Então, como o servidor amazon conhece o IP do meu computador? O IP é fe80::6df8:c5f9:bdb5:b9e2%15
Parece que é o IP IPv6. Não conheço o IP IP4.
Então, como faço para transformar um servidor no meu computador em mestre? Como configuro o roteador para passar na conexão?
Depois, há o mongodump. É rápido?
Qual você costuma usar?
Primeiro, deixe-me dizer que eu não recomendaria fazer isso, nunca. Eu recomendaria executar seu banco de dados no EC2 e mantê-lo ativo apenas lá. Tenha um banco de dados de teste em sua máquina local por conveniência, mas manter os dois sincronizados será doloroso, como você verá nas respostas abaixo.
Você precisa adicionar esse servidor baseado em EC2 como secundário, para que ele sincronize com sua máquina doméstica (provavelmente não confiável) e exija que você tenha uma configuração apropriada para rotear o tráfego) ou você precisa reproduzir o oplog manualmente de sua máquina doméstica na máquina EC2 (basicamente como funciona a replicação). Você pode escrever seu próprio programa para fazer isso, ou em 2.2 você tem a opção da ferramenta mongooplog
Pode ser que não consiga rotear para o seu computador, pode ser que você tenha apenas um endereço IPV6, mas duvido. Acesse aqui:
http://www.whatsmyip.org/
Isso informará qual é o seu endereço IP publicamente visível e, em seguida, você poderá tentar se conectar a ele no EC2 para ver se funciona. Pode não ser - os ISPs geralmente bloqueiam as portas de escuta e têm outros firewalls em vigor para evitar isso. Quanto a como passar conexões por meio de um roteador, etc., esse tópico é grande e está além do escopo do site DBA de forma realista. Você deve tentar o SuperUser para obter uma resposta detalhada nessa frente e certifique-se de incluir o modelo do seu roteador ao perguntar.
O Mongodump é basicamente tão rápido quanto o seu banco de dados - ele precisa percorrer um índice (geralmente _id), escrever cada documento que encontra como BSON. Portanto, será limitado pela rapidez com que sua máquina pode fazer isso. Não é provável que seja tão rápido quanto uma simples cópia baseada em arquivo.
Duvido que alguém execute dessa maneira por muito tempo - será muito propenso a falhas. Eu imagino que a maioria fará um dos métodos acima uma vez (ou pelo menos com pouca frequência), para mover seu banco de dados para o EC2 ou outro lugar na nuvem, então apenas use-o lá, em vez de tentar manter os dois em sincronia como parte de um conjunto de réplicas.