Ir al contenido
Documentación

DB Copy

Copie databases enteros o collections seleccionadas entre clusters en 4 phases: schema (ADD/DROP), índices, datos, resolución per-document. Con typed-confirmation, retry de transients, botón Retry-failed, y envelopes de audit inmutables.

Qué es

Un workspace + engine que corre una copy multi-phase de un cluster MongoDB source a un target. Phase 1 reconcilia la lista de namespaces (ADD de collections faltantes, DROP de extras con typed confirmation). Phase 2 reconcilia índices (match per-index spec). Phase 3 copia documents (batches paralelos con retry). Phase 3b reconcilia diferencias per-document vía samplePairs. Cada phase emite un envelope de audit con plan + hash de result.

Cuándo usar

Corra durante refresh de dev / staging, migración de cluster (ej.: on-prem a Atlas), migración de región, o upgrade de cluster. El typed-confirmation previene drops accidentales; el envelope de audit provee evidencia de cada cambio.

Cómo abrirlo

  1. En el app desktop del NoSqlStudio, abra el menú Tools → Migrate and Diff → Copy DB, o presione Ctrl+Alt+P.
  2. Un wizard abre con picker source / target, selección de namespace, y toggles per-phase.
  3. Elija las conexiones source + target, luego elija cuáles databases / collections copiar.

Las 4 phases

  1. Phase 1 (ADD/DROP) — reconcilia la lista de namespaces. El wizard muestra cuáles collections serán creadas y cuáles serán dropadas en el target. Drops requieren typed-confirmation (pegue el nombre de la collection para habilitar el botón).
  2. Phase 2 (índices) — reconcilia cada índice con match de spec completo. Índices con mismo nombre pero spec diferente son dropados y recreados.
  3. Phase 3 (datos) — copia documents en batches paralelos. Fallos transient (blip de red, reset de conexión) auto-retry; el engine streamea progress incluyendo rows / segundo y ETA.
  4. Phase 3b (resolución per-document) — para collections donde un diff per-row importa, el engine samplea N keys correspondientes y muestra diffs per-document en un viewer side-by-side. Puede aceptar, override, o skip cada.
  5. Retry-failed — cuando una phase termina con fallos, el engine surfa un botón Retry-failed que re-corre solo los items que fallaron. El Audit Log muestra ambas runs.

Auditoría

Cada phase emite un envelope de audit `copy.finish` / `sync.finish` / `resolve.finish` incluyendo snapshot del plan, snapshot del result, y un hash para que un auditor externo pueda probar que la run no fue silently re-played.

Sync continuo (CDC)

El sub-flow CDC del DB Copy mantiene el target en sync vía change streams. Después de la copy bulk inicial, el engine se suscribe a eventos de oplog / change stream y los aplica al target con lag limitado. El workspace Schema Diff conecta al mismo pipeline para emitir un script de migración per-collection.

Limitaciones (v1)

  • Resolución sample-based de la Phase 3b es best-effort. Para consistencia per-row ironclad en collections enormes, siga con un check server-side.
  • CDC requiere que ambos clusters expongan change streams — funciona en replica sets y clusters sharded; mongod standalone no es soportado.
  • Drops de la Phase 1 son irreversibles. El typed-confirmation es su única red de seguridad — lea el diálogo con cuidado antes de pegar.