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.
Atualizado em 2025-08-07 GMT+08:00

Migração de dados usando o DRS

Pré-requisitos

Para melhorar a estabilidade e a segurança de sua migração, certifique-se de que suas instâncias atendam aos requisitos de migração descritos em Preparativos para a migração.

Tipos de migração

  • Migração completa

    Esse tipo de migração é adequado para cenários em que algumas interrupções de serviço são aceitáveis. Todos os objetos e dados em bancos de dados não pertencentes ao sistema são migrados para o banco de dados de destino em um único lote. Os objetos incluem tabelas, exibições e procedimentos armazenados. Se você executar uma migração completa, interromper as operações no banco de dados de origem ou os dados gerados no banco de dados de origem durante a migração resultarão em inconsistências com o banco de dados de destino.

  • Migração completa e incremental

    Esse tipo de migração permite migrar dados sem interromper os serviços. Depois que uma migração completa inicializa o banco de dados de destino, uma migração incremental inicia e analisa os logs para garantir a consistência dos dados entre os bancos de dados de origem e de destino. Se você selecionar o tipo de migração Full+Incremental, os dados gerados durante a migração completa serão sincronizados com o banco de dados de destino sem tempo de inatividade, garantindo que os bancos de dados de origem e de destino permaneçam acessíveis durante todo o processo.

Bancos de dados de origem e de destino suportados

Tabela 1 Bancos de dados suportados

BD de origem

BD de destino

  • Mongo local (versões 3.2, 3.4 e 4.0)
  • MongoDB autoconstruído em ECSs (versões 3.2, 3.4 e 4.0)
  • MongoDB 3.2, 3.4 e 4.0 em outras nuvens (Tencent Cloud MongoDB 3.2 não é suportado.)
  • Instâncias de BD do DDS (versões 3.4 e 4.0)
  • Instâncias de BD do DDS (versões 3.4, 4.0 e 4.2)
    NOTA:

    A versão do banco de dados de destino deve ser igual ou posterior à versão do banco de dados de origem.

Objetos de migração suportados

Diferentes tipos de tarefas de migração oferecem suporte a diferentes objetos de migração. Para mais detalhes, consulte Tabela 2. O DRS verificará automaticamente os objetos selecionados antes da migração.

Tabela 2 Objetos de migração

Tipo

Precauções

Objetos de migração

  • Nível do objeto: nível da tabela, nível do banco de dados ou nível da instância (migração completa).
  • Objetos de migração suportados:
    • Objetos associados devem ser migrados ao mesmo tempo para evitar falhas de migração causadas por objetos vinculados ausentes. Associações comuns: coleções referenciadas por visualizações e visualizações referenciadas por visualizações
    • Conjunto de réplicas: somente coleções (incluindo validador e coleções limitadas), índices e visualizações podem ser migradas.
    • Cluster: somente coleções (incluindo validadoras e coleções limitadas), chaves de fragmentos, índices e visualizações podem ser migradas.
    • Nó único: somente coleções (incluindo validador e coleções limitadas), índices e visualizações podem ser migradas.
    • Somente os dados do usuário e as informações da conta do banco de dados de origem podem ser migrados. Os bancos de dados do sistema (por exemplo, local, admin e config) e a coleção do sistema não podem ser migrados. Se os dados de serviço estiverem armazenados em um banco de dados do sistema, execute o comando renameCollection para mover os dados de serviço para o banco de dados do usuário.
    • A instrução para criar uma visualização não pode conter uma expressão regular.
    • As coleções que contêm o campo _id sem índices não são suportadas.
    • O primeiro parâmetro de BinData() não pode ser 2.
    • Se a fragmentação variada for usada, maxKey não poderá ser usado como chave primária.
    NOTA:

    Os objetos que podem ser migrados têm as seguintes restrições:

    • O nome do banco de dados de origem não pode conter /\."$ nem espaços. O nome da coleção e o nome da exibição não podem começar com system. ou conter o sinal de dólar ($).

Requisitos de permissão de conta de banco de dados

Para iniciar uma tarefa de migração, os usuários do banco de dados de origem e destino devem ter permissões listadas na tabela a seguir. Diferentes tipos de tarefas de migração exigem permissões diferentes. Para mais detalhes, consulte Tabela 3. O DRS verifica automaticamente as permissões da conta do banco de dados na fase de pré-verificação e fornece sugestões de manipulação.

  • É aconselhável criar uma conta de banco de dados independente para conexão de tarefa do DRS para evitar falhas de tarefa causadas pela modificação da senha da conta do banco de dados.
  • Depois de alterar as senhas de conta para os bancos de dados de origem e destino, modifique as informações de conexão na tarefa do DRS o mais rápido possível para evitar a repetição automática após uma falha na tarefa. A repetição automática bloqueará as contas do banco de dados.
Tabela 3 Permissão de conta de banco de dados

Tipo

Migração completa

Migração completa e incremental

Usuário do banco de dados de origem

  • Conjunto de réplicas: o usuário do banco de dados de origem deve ter a permissão readAnyDatabase para o banco de dados admin.
  • Nó único: o usuário do banco de dados de origem deve ter a permissão readAnyDatabase para o banco de dados admin.
  • Cluster: o usuário do banco de dados de origem deve ter a permissão readAnyDatabase para o banco de dados admin e a permissão read para o banco de dados config.
  • Para migrar contas e funções do banco de dados de origem, os usuários do banco de dados de origem e destino devem ter a permissão read para as tabelas do system.users e system.roles do banco de dados admin.
  • Conjunto de réplicas: o usuário do banco de dados de origem deve ter a permissão readAnyDatabase para o banco de dados admin e a permissão read para o banco de dados local.
  • Nó único: o usuário do banco de dados de origem deve ter a permissão readAnyDatabase para o banco de dados admin e a permissão read para o banco de dados local.
  • Cluster: o usuário do nó dds mongos de origem deve ter a permissão readAnyDatabase para o banco de dados admin e a permissão de leitura para o banco de dados config. O usuário do nó shard de origem deve ter a permissão readAnyDatabase para o banco de dados admin e a permissão read para o banco de dados local.
  • Para migrar contas e funções do banco de dados de origem, os usuários do banco de dados de origem e destino devem ter a permissão read para as tabelas do system.users e system.roles do banco de dados admin.

Usuário do banco de dados de destino

O usuário do banco de dados de destino deve ter a permissão dbAdminAnyDatabase para o banco de dados admin e a permissão readWrite para o banco de dados de destino.

Se o banco de dados de destino for uma instância de cluster, o usuário do banco de dados deverá ter a permissão clusterManager para o banco de dados admin.

Por exemplo, o usuário do banco de dados de origem deve ter a permissão readAnyDatabase para o banco de dados admin e a permissão read para o banco de dados config.

db.grantRolesToUser("Username",[{role:"readAnyDatabase",db:"admin"}, {role:"read",db:"config"}])

Operações de migração

Para obter detalhes, consulte Migração de banco de dados do MongoDB em Melhores práticas do Data Replication Service.