Migração de dados usando mongodump e mongorestore
mongodump e mongorestore 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 mongodump e mongorestore para migrar seus bancos de dados do MongoDB locais ou outros bancos de dados do MongoDB em nuvem para instâncias do DDS.
Precauções
- As ferramentas mongodump e mongorestore suportam apenas a 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.
- O arquivo exportado pelo mongodump é um arquivo binário BSON. O mongorestore usa esse arquivo de backup binário para restaurar dados para uma instância de BD.
- 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 fragmentado, deverá criar um conjunto de fragmentos no banco de dados de destino e configurar a fragmentação. Além disso, os índices devem ser criados antes da migração.
- Se o backup usando a ferramenta mongodump falhar (por exemplo, um erro é relatado quando o progresso do backup atinge 97%), é aconselhável aumentar o espaço de armazenamento da VM que falhar no backup e reservar algum espaço redundante antes de executar o backup novamente.
- O usuário rwuser só pode operar tabelas de banco de dados de serviço. É aconselhável especificar bancos de dados e tabelas para importar e exportar apenas dados de serviço. Caso contrário, o problema de permissão insuficiente pode ocorrer durante a importação e exportação completas.
- Para obter detalhes sobre como restaurar dados de backup em um banco de dados local, consulte Restauração de dados para um banco de dados local.
Pré-requisitos
- Prepare um ECS ou um dispositivo que possa acessar o DDS.
- 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 de BD. Para obter detalhes sobre como vincular um EIP a um nó, consulte "Vinculação de um EIP" nos 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?
- As ferramentas mongodump e mongorestore fazem parte do pacote de instalação do cliente de MongoDB.
- A versão do cliente do MongoDB deve corresponder à versão da instância. Caso contrário, podem ocorrer problemas de compatibilidade.
Exportação de dados
- Faça logon no ECS ou no dispositivo que pode acessar o DDS.
- Faça backup dos dados do banco de dados de origem usando a ferramenta mongodump.
Uma conexão SSL é usada neste exemplo. Se você selecionar uma conexão não criptografada, exclua --ssl --sslCAFile <FILE_PATH> --sslAllowInvalidCertificates do seguinte comando.
./mongodump --host <DB_HOST> --port <DB_PORT> --authenticationDatabase <AUTH_DB> -u <DB_USER> --ssl --sslCAFile <FILE_PATH> --sslAllowInvalidCertificates --db <DB_NAME> --collection <DB_COLLECTION> --gzip --archive=<Name of the backup file that contains the file path>
Tabela 1 Descrição do parâmetro Parâmetro
Descrição
<DB_HOST>
Endereço do banco de dados
<DB_PORT>
Porta do banco de dados
<DB_USER>
Nome de usuário do banco de dados
<AUTH_DB>
Banco de dados que armazena informações de <DB_USER>. Geralmente, o valor é admin.
<FILE_PATH>
Caminho para armazenar o certificado raiz.
<DB_NAME>
O nome do banco de dados a ser migrado.
<DB_COLLECTION>
Coleta no banco de dados a ser migrado
Digite a senha do administrador do banco de dados quando solicitado:
Enter password:
Depois que o comando é executado, o arquivo especificado por archive é o arquivo de backup final. O comando a seguir usa backup.tar.gz como um exemplo.
./mongodump --host 192.168.xx.xx --port 8635 --authenticationDatabase admin -u rwuser --ssl --sslCAFile /tmp/ca.crt --sslAllowInvalidCertificates --db test --collection usertable --gzip --archive=backup.tar.gz
2019-03-04T18:42:10.687+0800 writing admin.system.users to 2019-03-04T18:42:10.688+0800 done dumping admin.system.users (1 document) 2019-03-04T18:42:10.688+0800 writing admin.system.roles to 2019-03-04T18:42:10.690+0800 done dumping admin.system.roles (0 documents) 2019-03-04T18:42:10.690+0800 writing admin.system.version to 2019-03-04T18:42:10.691+0800 done dumping admin.system.version (2 documents) 2019-03-04T18:42:10.691+0800 writing test.test_collection to 2019-03-04T18:42:10.691+0800 writing admin.system.profile to 2019-03-04T18:42:10.692+0800 done dumping admin.system.profile (4 documents) 2019-03-04T18:42:10.695+0800 done dumping test.test_collection (198 documents)
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 -r <IDENTITY_DIR> <REMOTE_USER>@<REMOTE_ADDRESS>:<REMOTE_DIR>
- No Windows, carregue o diretório de backup para o ECS usando uma ferramenta de transferência de arquivos.
- No Linux, por exemplo, você pode usar o protocolo de cópia segura (SCP):
- Importe os dados de backup para o DDS.
Uma conexão SSL é usada neste exemplo. Se você usar uma conexão não criptografada, exclua --ssl --sslCAFile <FILE_PATH> --sslAllowInvalidCertificates do seguinte comando.
./mongorestore --host <DB_HOST> --port <DB_PORT> --authenticationDatabase <AUTH_DB> -u<DB_USER> --ssl --sslCAFile <FILE_PATH> --sslAllowInvalidCertificates --db <DB_NAME> --collection <DB_COLLECTION> --gzip --archive=<Name of the backup file that contains the file path>
Tabela 3 Descrição do parâmetro Parâmetro
Descrição
<DB_HOST>
Endereço do banco de dados do DDS
<DB_PORT>
Porta do banco de dados
<AUTH_DB>
O banco de dados que autentica DB_USER. Geralmente, o valor é admin.
<DB_USER>
Nome da conta do administrador do banco de dados. O valor padrão é rwuser.
<FILE_PATH>
Caminho para armazenar o certificado raiz.
<DB_NAME>
O nome do banco de dados a ser migrado.
<DB_COLLECTION>
Coleta no banco de dados a ser migrado
Digite a senha do administrador do banco de dados quando solicitado:
Enter password:
O seguinte é um exemplo:
./mongorestore --host 192.168.xx.xx --port 8635 --authenticationDatabase admin -u rwuser --ssl --sslCAFile /tmp/ca.crt --sslAllowInvalidCertificates --db test --collection usertable --gzip --archive=backup.tar.gz
2019-03-05T14:19:43.240+0800 preparing collections to restore from 2019-03-05T14:19:43.243+0800 reading metadata for test.test_collection from dump/test/test_collection.metadata.json 2019-03-05T14:19:43.263+0800 restoring test.test_collection from dump/test/test_collection.bson 2019-03-05T14:19:43.271+0800 restoring indexes for collection test.test_collection from metadata 2019-03-05T14:19:43.273+0800 finished restoring test.test_collection (198 documents) 2019-03-05T14:19:43.273+0800 restoring users from dump/admin/system.users.bson 2019-03-05T14:19:43.305+0800 roles file 'dump/admin/system.roles.bson' is empty; skipping roles restoration 2019-03-05T14:19:43.305+0800 restoring roles from dump/admin/system.roles.bson 2019-03-05T14:19:43.333+0800 done
Problemas relacionados
Quando você faz backup de toda a instância usando mongodump e mongorestore, a verificação de permissão falha.