Migração de dados usando mongoexport e mongoimport
mongoexport e mongoimport são ferramentas de backup e restauração fornecidas pelo cliente de MongoDB. Você pode instalar um cliente de MongoDB no dispositivo local ou no ECS e usar as ferramentas mongoexport e mongoimport para migrar seus bancos de dados do MongoDB locais ou outros bancos de dados do MongoDB em nuvem para instâncias do DDS.
Antes de migrar dados de um banco de dados do MongoDB para DDS, transfira os dados para o arquivo .json usando a ferramenta mongoexport. Esta seção descreve como importar os dados dos arquivos JSON para o DDS usando a ferramenta mongoimport no ECS ou de alguns outros dispositivos que podem acessar o DDS.
Precauções
- As ferramentas mongoexport e mongoimport suportam apenas migração completa. Para garantir a consistência dos dados, interrompa os serviços no banco de dados de origem e pare de gravar dados no banco de dados de origem antes da migração.
- É aconselhável realizar a migração fora do horário de pico para evitar afetar os serviços.
- Não é possível migrar os bancos de dados de administração e do sistema local.
- Certifique-se de que nenhum conjunto de serviços foi criado nos bancos de dados do sistema admin e local no banco de dados de origem. Se já houver um conjunto de serviços, migre-os para fora dos bancos de dados do sistema admin e local antes da migração.
- Antes de importar dados, verifique se os índices necessários estão lá no banco de dados de origem. Exclua todos os índices desnecessários e crie todos os índices necessários antes da migração.
- Se você optar por migrar um cluster particionado, deverá criar um conjunto de partições no banco de dados de destino e configurar o particionamento. Além disso, os índices devem ser criados antes da migração.
Pré-requisitos
- Um ECS ou um dispositivo que pode acessar o DDS está pronto para uso.
- Para se conectar a uma instância do DDS em uma rede privada a partir de um ECS, crie e efetue logon no ECS. Para obter detalhes, consulte Compra de um ECS e Logon em um ECS.
- Para vincular um EIP a uma instância de BD:
- Vincule um EIP a um nó na instância. Para obter detalhes sobre como vincular um EIP a um nó, consulte "Vinculação de um EIP" em Primeiros passos com o Document Database Service.
- Certifique-se de que seu dispositivo local possa alcançar o EIP que foi vinculado à instância de BD.
- Uma ferramenta de migração foi instalada no ECS preparado.
Para obter detalhes sobre como instalar a ferramenta de migração, consulte Como instalar um cliente de MongoDB?
O cliente de MongoDB fornece as ferramentas mongoexport e mongoimport.
Exportação de dados
- Faça logon no ECS ou no dispositivo que pode acessar o DDS.
- Use a ferramenta mongoexport para transferir dados do banco de dados de origem para um arquivo .json.
A conexão SSL é usada como exemplo. Se você selecionar uma conexão comum, exclua --ssl --sslAllowInvalidCertificates no comando a seguir.
./mongoexport --host <DB_ADDRESS> --port <DB_PORT> --ssl --sslAllowInvalidCertificates --type json --authenticationDatabase <AUTH_DB> -u <DB_USER> --db <DB_NAME> --collection <DB_COLLECTION> --out <DB_PATH>
- DB_ADDRESS é o endereço do banco de dados.
- DB_PORT é a porta do banco de dados.
- AUTH_DB é o banco de dados para armazenar informações de DB_USER. Geralmente, esse valor é admin.
- DB_USER é o usuário do banco de dados.
- DB_NAME é o nome do banco de dados do qual os dados serão exportados.
- DB_COLLECTION é a coleção do banco de dados do qual os dados serão exportados.
- DB_PATH é o caminho onde o arquivo .json está localizado.
Digite a senha do administrador do banco de dados quando solicitado:
Enter password:
O seguinte é um exemplo. Após o comando ser executado, o arquivo exportfile.json será gerado:
./mongoexport --host 192.168.1.21 --port 8635 --ssl --sslAllowInvalidCertificates --type json --authenticationDatabase admin -u rwuser --db test02 --collection Test --out /tmp/mongodb/export/exportfile.json
- Veja os resultados
Se forem exibidas informações semelhantes às seguintes, os dados foram exportados com êxito. x é o número de registros de dados exportados.
exported x records
- Compacte o arquivo .json exportado.
gzip exportfile.json
A compactação do arquivo ajuda a reduzir o tempo necessário para transmitir os dados. O arquivo compactado é exportfile.json.gz.
Importação de dados
- Faça logon no ECS ou em qualquer dispositivo que você usará para acessar o DDS.
- Carregue os dados a serem importados para o ECS ou o dispositivo.
Selecione um método de upload baseado no sistema operacional que você está usando.
- No Linux, por exemplo, você pode usar o protocolo de cópia segura (SCP):
scp <IDENTITY_FILE> <REMOTE_USER>@<REMOTE_ADDRESS>:<REMOTE_DIR>
- IDENTITY_FILE é o diretório onde o arquivo exportfile.json.gz está localizado. A permissão de acesso ao arquivo é 600.
- REMOTE_USER é o usuário do sistema operacional ECS.
- REMOTE_ADDRESS é o endereço do ECS.
- REMOTE_DIR é o diretório do ECS para o qual o arquivo exportfile.json.gz é carregado.
- No Windows, carregue exportfile.json.gz no ECS usando ferramentas de transferência de arquivos.
- No Linux, por exemplo, você pode usar o protocolo de cópia segura (SCP):
- Descompacte o pacote.
gzip -d exportfile.json.gz
- Importe o arquivo JSON para o banco de dados do DDS.
A conexão SSL é usada como exemplo. Se você selecionar uma conexão comum, exclua --ssl --sslAllowInvalidCertificates do comando a seguir.
./mongoimport --host <DB_ADDRESS> --port <DB_PORT> --ssl --sslAllowInvalidCertificates --type json --authenticationDatabase <AUTH_DB> -u <DB_USER> --db <DB_NAME> --collection <DB_COLLECTION> --file <DB_PATH>
- DB_ADDRESS indica o endereço IP da instância de BD.
- DB_PORT indica a porta do banco de dados.
- AUTH_DB indica o banco de dados que autentica o DB_USER. Geralmente, esse valor é admin.
- DB_USER indica o nome da conta do administrador do banco de dados.
- DB_NAME indica o nome do banco de dados para o qual os dados serão importados.
- DB_COLLECTION indica a coleção do banco de dados para o qual os dados serão importados.
- DB_PATH indica o caminho onde o arquivo .json está localizado.
Digite a senha do administrador do banco de dados quando solicitado:
Enter password:
O seguinte é um exemplo:
./mongoimport --host 192.168.1.21 --port 8635 --ssl --sslAllowInvalidCertificates --type json --authenticationDatabase admin -u rwuser --db test02 --collection Test --file /tmp/mongodb/export/exportfile.json
- Veja os resultados.
Se informações semelhantes às seguintes forem exibidas, os dados foram importados com êxito. x é o número de registros de dados importados.
imported x records