Crear una migración para un clúster administrado localmente a MongoDB Atlas Obsoleto

PUBLICAR /api/atlas/v2/grupos/{ID de grupo}/liveMigrations

Migre un clúster que Cloud u Ops Manager administra a MongoDB Atlas.

Asegúrese de validar su migración antes de iniciarla.

Puedes utilizar este endpoint de API solo para migraciones en vivo por push. Tu clave API debe tener el rol de Propietario de Organización para poder llamar correctamente a este recurso.

NOTA: La migración de colecciones de series temporales aún no es compatible con MongoDB 6.0 o versiones posteriores. Las migraciones a MongoDB 6.0 o versiones posteriores omitirán las colecciones de series temporales del clúster de origen.

Validar la migración

Parámetros de ruta

  • ID de grupo string Requerido

    Cadena 24hexadecimal única que identifica su proyecto. Utilice el punto de conexión /groups para recuperar todos los proyectos a los que el usuario autenticado tiene acceso.

    NOTA: Grupos y proyectos son términos sinónimos. El ID de tu grupo es el mismo que el de tu proyecto. Para los grupos existentes, el ID de tu grupo/proyecto permanece igual. El recurso y los puntos finales correspondientes usan el término "grupos".

    El formato debe coincidir con el siguiente patrón: ^([a-f0-9]{24})$.

Parámetros de consulta

  • envolvente booleano

    Indicador que indica si la aplicación encapsula la respuesta en un objeto JSON envelope. Algunos clientes de la API no pueden acceder a los encabezados de respuesta HTTP ni al código de estado. Para solucionar esto, configure envelope=true en la consulta. Los endpoints que devuelven una lista de resultados utilizan el objeto de resultados como encapsulado. La aplicación añade el parámetro de estado al cuerpo de la respuesta.

    El valor predeterminado es false.

  • bonita booleano

    Bandera que indica si el cuerpo de la respuesta debe estar en formato prettyprint.

    El valor predeterminado es false.

    Impresión bonita
application/vnd.atlas.2023-01-01+json

Cuerpo Requerido

Se creará una migración.

  • destino Objeto Requerido

    Documento que describe el destino de la migración.

    Ocultar atributos de destino Mostrar atributos de destino Objeto
    • nombre del clúster string Requerido

      Etiqueta que identifica el cluster de destino.

      La longitud mínima es 1.

    • ID de grupo string Requerido

      Cadena de dígitos hexadecimales 24única que identifica el proyecto de destino.

      El formato debe coincidir con el siguiente patrón: ^([a-f0-9]{24})$.

    • nombre de hostSchemaType string Requerido

      El tipo de red que se utilizará entre el host de migración y el clúster de destino.

      La longitud mínima es 1. Los valores son PUBLIC, PRIVATE_LINK o VPC_PEERING.

    • privateLinkId string

      Representa el punto final a utilizar cuando el tipo de esquema de host es PRIVATE_LINK.

  • dropEnabled booleano Requerido

    Bandera que indica si el proceso de migración elimina todas las colecciones del clúster de destino antes de que comience la migración.

  • MigraciónHosts array[string]

    Lista de hosts de migración utilizados para esta migración.

    Al menos 1 pero no más de 1 elemento.

  • fragmentación Objeto

    Documento que configura la fragmentación en el clúster de destino al migrar desde un origen de conjunto de réplicas a un destino de clúster fragmentado en MongoDB 6.0 o superior. Si no desea fragmentar ninguna colección en el clúster de destino, deje este campo vacío.

    Ocultar atributos de fragmentación Mostrar atributos de fragmentación Objeto
    • crear índices de apoyo booleano Requerido

      Bandera que permite que la migración cree índices de soporte para las claves de fragmento, si no existe ninguna, ya que el clúster de destino también necesita índices compatibles para las claves de fragmento especificadas.

    • Entradas de fragmentación matriz[objeto]

      Lista de configuraciones de fragmentación para fragmentar colecciones de destino. Atlas fragmenta únicamente las colecciones incluidas en la matriz de entradas de fragmentación.

      Configuración de fragmentación para que una colección se fragmente en el clúster de destino.

      Ocultar atributos de shardingEntries Mostrar atributos de shardingEntries Objeto
      • Colección string Requerido

        Etiqueta legible por humanos que identifica la colección que va a particionarse en el clúster de destino.

      • database string Requerido

        Etiqueta legible por humanos que identifica la base de datos que contiene la colección que se fragmentará en el clúster de destino.

      • shardCollection Objeto Requerido

        Documento que configura la clave de fragmento en el clúster de destino.

        Ocultar el atributo shardCollection Mostrar el atributo shardCollection Objeto
        • clave matriz[objeto]

          Lista de campos a utilizar para la clave de fragmento.

          Ocultar atributo clave Mostrar atributo clave Objeto
          • * Objeto Propiedades adicionales
  • fuente Objeto Requerido

    Documento que describe el origen de la migración.

    Ocultar atributos de origen Mostrar atributos de origen Objeto
    • caCertificatePath string

      Ruta al certificado CA que los certificados SSL firmados utilizan para autenticarse en el clúster de origen.

    • nombre del clúster string Requerido

      Etiqueta que identifica el nombre del clúster de origen.

      La longitud mínima es 1.

    • ID de grupo string Requerido

      Cadena de dígitos hexadecimales 24única que identifica el proyecto de origen.

      El formato debe coincidir con el siguiente patrón: ^([a-f0-9]{24})$.

    • Autenticación administrada booleano Requerido

      Marca que indica si MongoDB Automation gestiona la autenticación en el clúster de origen. Si es verdadero, no se proporcionan valores para el nombre de usuario ni la contraseña.

    • contraseña string

      Contraseña que autentica el nombre de usuario en el clúster de origen.

    • ssl booleano Requerido

      Bandera que indica si tienes SSL habilitado.

    • Nombre de usuario string

      Etiqueta que identifica al usuario SCRAM-SHA que se conecta al clúster de origen.

Respuestas

  • 201 application/vnd.atlas.2023-01-01+json

    Creado.

    Ocultar atributos de respuesta Mostrar los atributos de respuesta Objeto
    • _id string

      Cadena de dígitos hexadecimales 24única que identifica el trabajo de migración.

      El formato debe coincidir con el siguiente patrón: ^([a-f0-9]{24})$.

    • lagTimeSeconds entero(int64) | nulo

      Retraso de replicación entre los clústeres de origen y destino. Atlas devuelve esta configuración solo durante una migración activa, antes de la fase de transición.

    • MigraciónHosts array[string]

      Lista de hosts que ejecutan agentes de MongoDB. Estos agentes pueden transferir sus datos de MongoDB entre un clúster de origen y uno de destino.

      El formato de cada uno debe coincidir con el siguiente patrón: ^([0-9]{1,3}\.){3}[0-9]{1,3}|([0-9a-f]{1,4}:){7}([0-9a-f]{1,4})|(([a-z0-9]+\.){1,10}[a-z]+)?$.

    • listo para la transición booleano

      Bandera que indica que el clúster migrado se puede transferir a MongoDB Atlas.

    • Estado string

      Progreso logrado en la migración de un clúster a MongoDB Atlas.

      NEW:Alguien programó una migración de clúster local a MongoDB Atlas.

      FAILED:La migración del clúster a MongoDB Atlas falló.

      COMPLETE:La migración del clúster a MongoDB Atlas se realizó correctamente.

      EXPIREDMongoDB Atlas se prepara para iniciar la migración del clúster cuando los clústeres de origen y destino estén prácticamente sincronizados. Si es "readyForCutover" : true, esta sincronización inicia un temporizador de 120 horas. Puede extender este temporizador. Si el temporizador expira, MongoDB Atlas devuelve este estado.

      WORKING:La migración del clúster a MongoDB Atlas está realizando una de las siguientes tareas:

      • Preparación de conexiones a clústeres de origen y destino.
      • Replicar datos desde el origen al destino.
      • Verificar la configuración de conexión de MongoDB Atlas.
      • Detener la replicación después del corte.

      Los valores son NEW, WORKING, FAILED, COMPLETE o EXPIRED.

  • 400 aplicación/json

    Solicitud incorrecta.

    Ocultar atributos de respuesta Mostrar los atributos de respuesta Objeto
    • badRequestDetail Objeto

      Detalle de solicitud incorrecto.

      Ocultar el atributo badRequestDetail Mostrar el atributo badRequestDetail Objeto
      • campos matriz[objeto]

        Describe todas las violaciones en una solicitud de cliente.

        Ocultar atributos de campos Mostrar atributos de campos Objeto
        • Descripción string Requerido

          Una descripción de por qué el elemento de solicitud es incorrecto.

        • Campo string Requerido

          Una ruta que conduce a un campo en el cuerpo de la solicitud.

    • detalle string

      Describe las condiciones o razones específicas que causan cada tipo de error.

    • Error integer(int32) Requerido

      Código de estado HTTP devuelto con este error.

      Documentación externa
    • errorCode string Requerido

      Código de error de aplicación devuelto con este error.

    • Parámetros matriz[objeto]

      Parámetros utilizados para dar más información sobre el error.

    • razón string

      Se devolvió un mensaje de error de aplicación con este error.

  • 401 aplicación/json

    No autorizado.

    Ocultar atributos de respuesta Mostrar los atributos de respuesta Objeto
    • badRequestDetail Objeto

      Detalle de solicitud incorrecto.

      Ocultar el atributo badRequestDetail Mostrar el atributo badRequestDetail Objeto
      • campos matriz[objeto]

        Describe todas las violaciones en una solicitud de cliente.

        Ocultar atributos de campos Mostrar atributos de campos Objeto
        • Descripción string Requerido

          Una descripción de por qué el elemento de solicitud es incorrecto.

        • Campo string Requerido

          Una ruta que conduce a un campo en el cuerpo de la solicitud.

    • detalle string

      Describe las condiciones o razones específicas que causan cada tipo de error.

    • Error integer(int32) Requerido

      Código de estado HTTP devuelto con este error.

      Documentación externa
    • errorCode string Requerido

      Código de error de aplicación devuelto con este error.

    • Parámetros matriz[objeto]

      Parámetros utilizados para dar más información sobre el error.

    • razón string

      Se devolvió un mensaje de error de aplicación con este error.

  • 403 aplicación/json

    Forbidden.

    Ocultar atributos de respuesta Mostrar los atributos de respuesta Objeto
    • badRequestDetail Objeto

      Detalle de solicitud incorrecto.

      Ocultar el atributo badRequestDetail Mostrar el atributo badRequestDetail Objeto
      • campos matriz[objeto]

        Describe todas las violaciones en una solicitud de cliente.

        Ocultar atributos de campos Mostrar atributos de campos Objeto
        • Descripción string Requerido

          Una descripción de por qué el elemento de solicitud es incorrecto.

        • Campo string Requerido

          Una ruta que conduce a un campo en el cuerpo de la solicitud.

    • detalle string

      Describe las condiciones o razones específicas que causan cada tipo de error.

    • Error integer(int32) Requerido

      Código de estado HTTP devuelto con este error.

      Documentación externa
    • errorCode string Requerido

      Código de error de aplicación devuelto con este error.

    • Parámetros matriz[objeto]

      Parámetros utilizados para dar más información sobre el error.

    • razón string

      Se devolvió un mensaje de error de aplicación con este error.

  • 404 aplicación/json

    No se encontró.

    Ocultar atributos de respuesta Mostrar los atributos de respuesta Objeto
    • badRequestDetail Objeto

      Detalle de solicitud incorrecto.

      Ocultar el atributo badRequestDetail Mostrar el atributo badRequestDetail Objeto
      • campos matriz[objeto]

        Describe todas las violaciones en una solicitud de cliente.

        Ocultar atributos de campos Mostrar atributos de campos Objeto
        • Descripción string Requerido

          Una descripción de por qué el elemento de solicitud es incorrecto.

        • Campo string Requerido

          Una ruta que conduce a un campo en el cuerpo de la solicitud.

    • detalle string

      Describe las condiciones o razones específicas que causan cada tipo de error.

    • Error integer(int32) Requerido

      Código de estado HTTP devuelto con este error.

      Documentación externa
    • errorCode string Requerido

      Código de error de aplicación devuelto con este error.

    • Parámetros matriz[objeto]

      Parámetros utilizados para dar más información sobre el error.

    • razón string

      Se devolvió un mensaje de error de aplicación con este error.

  • 500 aplicación/json

    Error Interno del Servidor.

    Ocultar atributos de respuesta Mostrar los atributos de respuesta Objeto
    • badRequestDetail Objeto

      Detalle de solicitud incorrecto.

      Ocultar el atributo badRequestDetail Mostrar el atributo badRequestDetail Objeto
      • campos matriz[objeto]

        Describe todas las violaciones en una solicitud de cliente.

        Ocultar atributos de campos Mostrar atributos de campos Objeto
        • Descripción string Requerido

          Una descripción de por qué el elemento de solicitud es incorrecto.

        • Campo string Requerido

          Una ruta que conduce a un campo en el cuerpo de la solicitud.

    • detalle string

      Describe las condiciones o razones específicas que causan cada tipo de error.

    • Error integer(int32) Requerido

      Código de estado HTTP devuelto con este error.

      Documentación externa
    • errorCode string Requerido

      Código de error de aplicación devuelto con este error.

    • Parámetros matriz[objeto]

      Parámetros utilizados para dar más información sobre el error.

    • razón string

      Se devolvió un mensaje de error de aplicación con este error.

PUBLICAR /api/atlas/v2/grupos/{ID de grupo}/liveMigrations
atlas api cloudMigrationService createGroupLiveMigration --help
import (
	"os"
	"context"
	"log"
	sdk "go.mongodb.org/atlas-sdk/v20231001001/admin"
)

func main() {
	ctx := context.Background()
	clientID := os.Getenv("MONGODB_ATLAS_CLIENT_ID")
	clientSecret := os.Getenv("MONGODB_ATLAS_CLIENT_SECRET")

	// See https://dochub.mongodb.org/core/atlas-go-sdk-oauth
	client, err := sdk.NewClient(sdk.UseOAuthAuth(clientID, clientSecret))

	if err != nil {
		log.Fatalf("Error: %v", err)
	}

	params = &sdk.CreateGroupLiveMigrationApiParams{}
	sdkResp, httpResp, err := client.CloudMigrationServiceApi.
		CreateGroupLiveMigrationWithParams(ctx, params).
		Execute()
}
curl --include --header "Authorization: Bearer ${ACCESS_TOKEN}" \
  --header "Accept: application/vnd.atlas.2023-10-01+json" \
  --header "Content-Type: application/json" \
  -X POST "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/liveMigrations" \
  -d '{ <Payload> }'
curl --user "${PUBLIC_KEY}:${PRIVATE_KEY}" \
  --digest --include \
  --header "Accept: application/vnd.atlas.2023-10-01+json" \
  --header "Content-Type: application/json" \
  -X POST "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/liveMigrations" \
  -d '{ <Payload> }'
Solicitar ejemplos
{
  "destination": {
    "clusterName": "string",
    "groupId": "32b6e34b3d91647abb20e7b8",
    "hostnameSchemaType": "PUBLIC",
    "privateLinkId": "string"
  },
  "dropEnabled": true,
  "migrationHosts": [
    "vm001.example.com"
  ],
  "sharding": {
    "createSupportingIndexes": true,
    "shardingEntries": [
      {
        "collection": "string",
        "database": "string",
        "shardCollection": {
          "key": [
            {
              "additionalProperty1": {},
              "additionalProperty2": {}
            }
          ]
        }
      }
    ]
  },
  "source": {
    "caCertificatePath": "string",
    "clusterName": "string",
    "groupId": "32b6e34b3d91647abb20e7b8",
    "managedAuthentication": true,
    "password": "string",
    "ssl": true,
    "username": "string"
  }
}
Ejemplos de respuestas (201)
{
  "_id": "32b6e34b3d91647abb20e7b8",
  "lagTimeSeconds": 42,
  "migrationHosts": [
    "vm001.example.com"
  ],
  "readyForCutover": true,
  "status": "NEW"
}
Ejemplos de respuestas (400)
{
  "error": 400,
  "detail": "(This is just an example, the exception may not be related to this endpoint) No provider AWS exists.",
  "reason": "Bad Request",
  "errorCode": "VALIDATION_ERROR"
}
Ejemplos de respuestas (401)
{
  "error": 401,
  "detail": "(This is just an example, the exception may not be related to this endpoint)",
  "reason": "Unauthorized",
  "errorCode": "NOT_ORG_GROUP_CREATOR"
}
Ejemplos de respuestas (403)
{
  "error": 403,
  "detail": "(This is just an example, the exception may not be related to this endpoint)",
  "reason": "Forbidden",
  "errorCode": "CANNOT_CHANGE_GROUP_NAME"
}
Ejemplos de respuestas (404)
{
  "error": 404,
  "detail": "(This is just an example, the exception may not be related to this endpoint) Cannot find resource AWS",
  "reason": "Not Found",
  "errorCode": "RESOURCE_NOT_FOUND"
}
Ejemplos de respuestas (500)
{
  "error": 500,
  "detail": "(This is just an example, the exception may not be related to this endpoint)",
  "reason": "Internal Server Error",
  "errorCode": "UNEXPECTED_ERROR"
}