Migrar um cluster gerenciado local para o MongoDB Atlas

POSTAR /api/atlas/v2/groups/{groupId}/liveMigrations

Migre um cluster que o Cloud ou o Ops Manager gerencia para o MongoDB Atlas.

Não deixe de validar sua migração antes de iniciá-la.

Você pode usar esse endpoint de API apenas para migrações push em tempo real. Sua chave de API deve ter a função "Proprietário da organização" para chamar esse recurso com êxito.

NOTA: a migração de coleções de séries temporais ainda não é compatível com o MongoDB 6.0 ou superior. As migrações no MongoDB 6.0 ou superior ignorarão todas as coleções de séries temporais no cluster de origem. Versões obsoletas: v2-{2023-01-01}

Validar migração

parâmetros de caminho

  • groupId string Obrigatório

    Sequência única de 24dígitos hexadecimais que identifica seu projeto. Use o endpoint /groups para extrair todos os projetos aos quais o usuário autenticado tem acesso.

    AVISO: grupos e projetos são termos sinônimos. O ID do seu grupo é igual ao ID do seu projeto. Para grupos existentes, o ID do grupo/projeto permanece o mesmo. O recurso e os endpoints correspondentes usam o termo grupos.

    O formato deve corresponder ao seguinte padrão: ^([a-f0-9]{24})$.

parâmetros de query

  • envelope booleano

    Sinalizador que indica se o aplicativo empacota a resposta em um objeto JSON envelope. Alguns clientes de API não podem acessar os cabeçalhos de resposta HTTP ou o código de status. Para corrigir isso, defina envelope=true na consulta. Os endpoints que retornam uma lista de resultados usam o objeto de resultados como um envelope. O aplicativo adiciona o parâmetro de status ao corpo da resposta.

    O valor padrão é false.

  • pretty booleano

    Sinalizador que indica se o corpo da resposta deve estar no formato prettyprint.

    O valor padrão é false.

    Prettyprint
application/vnd.atlas.2024-05-30+json

corpo, corpo Obrigatório

Uma migração a ser criada.

  • destination objeto Obrigatório

    Documento que descreve o destino da migração.

    Ocultar atributos de destino Mostrar atributos de destino objeto
    • clusterName string Obrigatório

      Etiqueta que identifica o cluster de destino.

      O comprimento mínimo é 1.

    • groupId string Obrigatório

      String única de 24dígitos hexadecimais que identifica o projeto de destino.

      O formato deve corresponder ao seguinte padrão: ^([a-f0-9]{24})$.

    • hostnameSchemaType string Obrigatório

      O tipo de rede a ser usado entre o host de migração e o cluster de destino.

      O comprimento mínimo é 1. Os valores são PUBLIC, PRIVATE_LINK ou VPC_PEERING.

    • privateLinkId string

      Representa o endpoint a ser usado quando o tipo de esquema de host é PRIVATE_LINK.

  • dropDestinationData booleano

    Sinalizador que indica se o processo de migração descarta todas as collections do cluster de destino antes de iniciar a migração.

    O valor padrão é false.

  • migrationHosts array[string]

    Lista de hosts de migração usados para esta migração.

    Pelo menos 1, mas não mais que 1 elemento. O comprimento mínimo de cada um é 1.

  • Fragmentação objeto

    Documento que configura a fragmentação no cluster de destino ao migrar de uma origem de conjunto de réplicas para um destino de cluster fragmentado no MongoDB 6.0 ou posterior. Se você não quiser fragmentar nenhuma coleção no cluster de destino, deixe em branco.

    Ocultar atributos de fragmentação Mostrar atributos de fragmentação objeto
    • createSupportingIndexes booleano Obrigatório

      Sinalizador que permite que a migração crie índices de suporte para as chaves de shard, se não existirem, pois o cluster de destino também precisa de índices compatíveis para as chaves de shard especificadas.

    • shardingEntries array[objeto]

      Lista de configurações de shard para collections de destino de shard. O Atlas fragmenta apenas as coleções que você inclui na matriz de entradas de fragmentação.

      Configuração de fragmentação de uma collection a ser fragmentada no cluster de destino.

      Ocultar atributos shardingEntries Mostrar atributos shardingEntries objeto
      • collection string Obrigatório

        Rótulo legível por humanos que identifica a collection a ser fragmentada no cluster de destino.

      • database string Obrigatório

        Rótulo legível por humanos que identifica o banco de dados que contém a collection a ser fragmentada no cluster de destino.

      • sharedCollection objeto Obrigatório

        Documento que configura a chave de shard no cluster de destino.

        Ocultar atributo shardCollection Mostrar atributo shardCollection objeto
        • chave array[objeto]

          Lista de campos a serem usados para a chave de fragmento.

          Ocultar atributo chave Mostrar atributo chave objeto
          • * objeto Propriedades adicionais
  • Fonte objeto Obrigatório

    Documento que descreve a origem da migração.

    Ocultar atributos de origem Mostrar atributos de origem objeto
    • caCertificatePath string

      Caminho para o certificado da CA que os certificados SSL assinados usam para se autenticar no cluster de origem.

    • clusterName string Obrigatório

      Etiqueta que identifica o nome do cluster de origem .

      O comprimento mínimo é 1.

    • groupId string Obrigatório

      String única de 24 dígitos hexadecimais que identifica o projeto de origem.

      O formato deve corresponder ao seguinte padrão: ^([a-f0-9]{24})$.

    • managedAuthentication booleano Obrigatório

      Sinalizador que indica se a automação do MongoDB gerencia a autenticação no cluster de origem. Se verdadeiro, não forneça valores para nome de usuário e senha.

    • Senha string

      Senha que autentica o nome de usuário no cluster de origem.

    • ssl booleano Obrigatório

      Sinalizador que indica se você tem o SSL habilitado.

    • nome de usuário string

      Etiqueta que identifica o utilizador SCRAM-SHA que se liga ao cluster de origem.

Respostas

  • 201 application/vnd.atlas.2024-05-30+json

    Criado

    Ocultar atributos de resposta Mostrar atributos de resposta objeto
    • _id string

      String única de 24dígitos hexadecimais que identifica a tarefa de migração.

      O formato deve corresponder ao seguinte padrão: ^([a-f0-9]{24})$.

    • lagTimeSeconds inteiro(int64) | zero

      Atraso de replicação entre os clusters de origem e destino. O Atlas retorna essa configuração somente durante uma migração ativa, antes da fase de transição.

    • migrationHosts array[string]

      Lista de hosts que executam MongoDB Agents. Esses agentes podem transferir seus dados do MongoDB entre uma origem e um cluster de destino.

      O formato de cada um deve corresponder ao seguinte padrão: ^([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]+)?$.

    • readForCutover booleano

      Sinalizador que indica que o cluster migrado pode ser transferido para o MongoDB Atlas.

    • Status string

      Progresso feito na migração de um cluster para o MongoDB Atlas.

      NEW: alguém agendou uma migração de cluster local para o MongoDB Atlas.

      FAILED: A migração de cluster para o MongoDB Atlas falhou.

      COMPLETE: A migração do cluster para o MongoDB Atlas foi bem-sucedida.

      EXPIRED: O MongoDB Atlas se prepara para iniciar a transferência do cluster migratório quando os clusters de origem e destino estiverem quase sincronizados. Se "readyForCutover" : true, esta sincronização iniciará um temporizador de 120 horas. Você pode estender esse temporizador. Se o temporizador expirar, o MongoDB Atlas retornará este status.

      WORKING: A migração do cluster para o MongoDB Atlas está executando uma das seguintes tarefas:

      • Preparar conexões com clusters de origem e destino.
      • Replicação de dados da origem para o destino.
      • Verificando as configurações de conexão do MongoDB Atlas .
      • Interrompendo a replicação após o cut over.

      Os valores são NEW, WORKING, FAILED, COMPLETE ou EXPIRED.

  • 400 aplicação/json

    Solicitação inválida.

    Ocultar atributos de resposta Mostrar atributos de resposta objeto
    • badRequestDetail objeto

      Detalhes da solicitação inválida.

      Ocultar atributo ruimRequestDetail Mostrar atributo ruimRequestDetail objeto
      • Campos array[objeto]

        Descreve todas as violações em uma solicitação do cliente .

        Ocultar atributos de campos Mostrar atributos dos campos objeto
        • Descrição string Obrigatório

          Uma descrição do motivo pelo qual o elemento de solicitação é incorreto.

        • Campo string Obrigatório

          Um caminho que leva a um campo no corpo da solicitação.

    • detalhe string

      Descreve as condições ou os motivos específicos que causam cada tipo de erro.

    • Erro integer(int32) Obrigatório

      O código de status HTTP retornado com este erro.

      Documentação externa
    • Código de erro string Obrigatório

      Código de erro do aplicativo retornado com esse erro.

    • Parâmetros array[objeto]

      Parâmetros usados para fornecer mais informações sobre o erro.

    • Razão string

      Mensagens de erro de aplicativo retornadas com este erro.

  • 401 aplicação/json

    Não autorizado.

    Ocultar atributos de resposta Mostrar atributos de resposta objeto
    • badRequestDetail objeto

      Detalhes da solicitação inválida.

      Ocultar atributo ruimRequestDetail Mostrar atributo ruimRequestDetail objeto
      • Campos array[objeto]

        Descreve todas as violações em uma solicitação do cliente .

        Ocultar atributos de campos Mostrar atributos dos campos objeto
        • Descrição string Obrigatório

          Uma descrição do motivo pelo qual o elemento de solicitação é incorreto.

        • Campo string Obrigatório

          Um caminho que leva a um campo no corpo da solicitação.

    • detalhe string

      Descreve as condições ou os motivos específicos que causam cada tipo de erro.

    • Erro integer(int32) Obrigatório

      O código de status HTTP retornado com este erro.

      Documentação externa
    • Código de erro string Obrigatório

      Código de erro do aplicativo retornado com esse erro.

    • Parâmetros array[objeto]

      Parâmetros usados para fornecer mais informações sobre o erro.

    • Razão string

      Mensagens de erro de aplicativo retornadas com este erro.

  • 403 aplicação/json

    Forbidden.

    Ocultar atributos de resposta Mostrar atributos de resposta objeto
    • badRequestDetail objeto

      Detalhes da solicitação inválida.

      Ocultar atributo ruimRequestDetail Mostrar atributo ruimRequestDetail objeto
      • Campos array[objeto]

        Descreve todas as violações em uma solicitação do cliente .

        Ocultar atributos de campos Mostrar atributos dos campos objeto
        • Descrição string Obrigatório

          Uma descrição do motivo pelo qual o elemento de solicitação é incorreto.

        • Campo string Obrigatório

          Um caminho que leva a um campo no corpo da solicitação.

    • detalhe string

      Descreve as condições ou os motivos específicos que causam cada tipo de erro.

    • Erro integer(int32) Obrigatório

      O código de status HTTP retornado com este erro.

      Documentação externa
    • Código de erro string Obrigatório

      Código de erro do aplicativo retornado com esse erro.

    • Parâmetros array[objeto]

      Parâmetros usados para fornecer mais informações sobre o erro.

    • Razão string

      Mensagens de erro de aplicativo retornadas com este erro.

  • 404 aplicação/json

    Não encontrado.

    Ocultar atributos de resposta Mostrar atributos de resposta objeto
    • badRequestDetail objeto

      Detalhes da solicitação inválida.

      Ocultar atributo ruimRequestDetail Mostrar atributo ruimRequestDetail objeto
      • Campos array[objeto]

        Descreve todas as violações em uma solicitação do cliente .

        Ocultar atributos de campos Mostrar atributos dos campos objeto
        • Descrição string Obrigatório

          Uma descrição do motivo pelo qual o elemento de solicitação é incorreto.

        • Campo string Obrigatório

          Um caminho que leva a um campo no corpo da solicitação.

    • detalhe string

      Descreve as condições ou os motivos específicos que causam cada tipo de erro.

    • Erro integer(int32) Obrigatório

      O código de status HTTP retornado com este erro.

      Documentação externa
    • Código de erro string Obrigatório

      Código de erro do aplicativo retornado com esse erro.

    • Parâmetros array[objeto]

      Parâmetros usados para fornecer mais informações sobre o erro.

    • Razão string

      Mensagens de erro de aplicativo retornadas com este erro.

  • 500 aplicação/json

    Erro interno do servidor.

    Ocultar atributos de resposta Mostrar atributos de resposta objeto
    • badRequestDetail objeto

      Detalhes da solicitação inválida.

      Ocultar atributo ruimRequestDetail Mostrar atributo ruimRequestDetail objeto
      • Campos array[objeto]

        Descreve todas as violações em uma solicitação do cliente .

        Ocultar atributos de campos Mostrar atributos dos campos objeto
        • Descrição string Obrigatório

          Uma descrição do motivo pelo qual o elemento de solicitação é incorreto.

        • Campo string Obrigatório

          Um caminho que leva a um campo no corpo da solicitação.

    • detalhe string

      Descreve as condições ou os motivos específicos que causam cada tipo de erro.

    • Erro integer(int32) Obrigatório

      O código de status HTTP retornado com este erro.

      Documentação externa
    • Código de erro string Obrigatório

      Código de erro do aplicativo retornado com esse erro.

    • Parâmetros array[objeto]

      Parâmetros usados para fornecer mais informações sobre o erro.

    • Razão string

      Mensagens de erro de aplicativo retornadas com este erro.

POST /api/atlas/v2/groups/{groupId}/liveMigrations
atlas api cloudMigrationService createGroupLiveMigration --help
import (
	"os"
	"context"
	"log"
	sdk "go.mongodb.org/atlas-sdk/v20250312001/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.2025-03-12+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.2025-03-12+json" \
  --header "Content-Type: application/json" \
  -X POST "https://cloud.mongodb.com/api/atlas/v2/groups/{groupId}/liveMigrations" \
  -d '{ <Payload> }'
Exemplos de solicitação
{
  "destination": {
    "clusterName": "string",
    "groupId": "32b6e34b3d91647abb20e7b8",
    "hostnameSchemaType": "PUBLIC",
    "privateLinkId": "string"
  },
  "dropDestinationData": false,
  "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"
  }
}
Exemplos de resposta (201)
{
  "_id": "32b6e34b3d91647abb20e7b8",
  "lagTimeSeconds": 42,
  "migrationHosts": [
    "vm001.example.com"
  ],
  "readyForCutover": true,
  "status": "NEW"
}
Exemplos de resposta (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"
}
Exemplos de resposta (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"
}
Exemplos de resposta (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"
}
Exemplos de resposta (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"
}
Exemplos de resposta (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"
}