Pular para o conteúdo
Documentação

DB Copy

Copie databases inteiros ou collections selecionadas entre clusters em 4 phases: schema (ADD/DROP), índices, dados, resolução per-document. Com typed-confirmation, retry de transients, botão Retry-failed, e envelopes de audit imutáveis.

O que é

Um workspace + engine que roda uma copy multi-phase de um cluster MongoDB source para um target. Phase 1 reconcilia a lista de namespaces (ADD de collections faltantes, DROP de extras com typed confirmation). Phase 2 reconcilia índices (match per-index spec). Phase 3 copia documents (batches paralelos com retry). Phase 3b reconcilia diferenças per-document via samplePairs. Cada phase emite um envelope de audit com plan + hash de result.

Quando usar

Rode durante refresh de dev / staging, migração de cluster (ex.: on-prem para Atlas), migração de região, ou upgrade de cluster. O typed-confirmation previne drops acidentais; o envelope de audit fornece evidência de toda mudança.

Como abrir

  1. No app desktop do NoSqlStudio, abra o menu Tools → Migrate and Diff → Copy DB, ou pressione Ctrl+Alt+P.
  2. Um wizard abre com picker source / target, seleção de namespace, e toggles per-phase.
  3. Escolha as conexões source + target, depois escolha quais databases / collections copiar.

As 4 phases

  1. Phase 1 (ADD/DROP) — reconcilia a lista de namespaces. O wizard mostra quais collections serão criadas e quais serão droppadas no target. Drops requerem typed-confirmation (cole o nome da collection para habilitar o botão).
  2. Phase 2 (índices) — reconcilia todo índice com match de spec completo. Índices com mesmo nome mas spec diferente são droppados e recriados.
  3. Phase 3 (dados) — copia documents em batches paralelos. Falhas transient (blip de rede, reset de conexão) auto-retry; o engine streamea progress incluindo rows / segundo e ETA.
  4. Phase 3b (resolução per-document) — para collections onde um diff per-row importa, o engine faz sample de N keys correspondentes e mostra diffs per-document num viewer side-by-side. Você pode aceitar, override, ou skip cada.
  5. Retry-failed — quando uma phase termina com falhas, o engine surfa um botão Retry-failed que re-roda só os items que falharam. O Audit Log mostra ambas as runs.

Auditoria

Toda phase emite um envelope de audit `copy.finish` / `sync.finish` / `resolve.finish` incluindo snapshot do plan, snapshot do result, e um hash para que um auditor externo possa provar que a run não foi silently re-played.

Sync contínuo (CDC)

O sub-flow CDC do DB Copy mantém o target em sync via change streams. Após a copy bulk inicial, o engine se inscreve em eventos de oplog / change stream e os aplica no target com lag limitado. O workspace Schema Diff conecta no mesmo pipeline para emitir um script de migração per-collection.

Limitações (v1)

  • Resolução sample-based da Phase 3b é best-effort. Para consistência per-row ironclad em collections enormes, siga com um check server-side.
  • CDC requer que ambos clusters exponham change streams — funciona em replica sets e clusters sharded; mongod standalone não é suportado.
  • Drops da Phase 1 são irreversíveis. O typed-confirmation é sua única rede de segurança — leia o diálogo com cuidado antes de colar.