Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Central de ajuda/ Document Database Service/ Guia de usuário/ Migração de dados/ Migração de dados usando mongodump e mongorestore
Atualizado em 2025-08-07 GMT+08:00

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

  1. 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:
      1. 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 .
      2. Certifique-se de que seu dispositivo local possa alcançar o EIP que foi vinculado à instância de BD.
  2. 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

  1. Faça logon no ECS ou no dispositivo que pode acessar o DDS.
  2. 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

  1. Faça logon no ECS ou em qualquer dispositivo que você usará para acessar o DDS.
  2. 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>

      Tabela 2 Descrição do parâmetro

      Parâmetro

      Descrição

      <IDENTITY_DIR>

      Diretório onde a pasta de backup está localizada.

      <REMOTE_USER>

      Usuário do SO do ECS em 1

      <REMOTE_ADDRESS>

      Endereço IP do ECS em 1

      <REMOTE_DIR>

      Diretório do ECS a ser importado

    • No Windows, carregue o diretório de backup para o ECS usando uma ferramenta de transferência de arquivos.

  3. 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.

  • Motivo

    O usuário rwuser tem permissões limitadas nos bancos de dados admin e config da instância. Como resultado, a verificação de permissão falha.

  • Solução

    Conceda permissões em determinados bancos de dados e tabelas ao usuário.