Migrar um cluster gerenciado local para o MongoDB Atlas
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}
parâmetros de caminho
-
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
-
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
. -
Sinalizador que indica se o corpo da resposta deve estar no formato prettyprint.
O valor padrão é
false
.Prettyprint
corpo, corpo
Obrigatório
Uma migração a ser criada.
-
Documento que descreve o destino da migração.
-
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
. -
Lista de hosts de migração usados para esta migração.
Pelo menos
1
, mas não mais que1
elemento. O comprimento mínimo de cada um é1
. -
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.
-
Documento que descreve a origem da migração.
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> }'
{
"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"
}
}
{
"_id": "32b6e34b3d91647abb20e7b8",
"lagTimeSeconds": 42,
"migrationHosts": [
"vm001.example.com"
],
"readyForCutover": true,
"status": "NEW"
}
{
"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"
}
{
"error": 401,
"detail": "(This is just an example, the exception may not be related to this endpoint)",
"reason": "Unauthorized",
"errorCode": "NOT_ORG_GROUP_CREATOR"
}
{
"error": 403,
"detail": "(This is just an example, the exception may not be related to this endpoint)",
"reason": "Forbidden",
"errorCode": "CANNOT_CHANGE_GROUP_NAME"
}
{
"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"
}
{
"error": 500,
"detail": "(This is just an example, the exception may not be related to this endpoint)",
"reason": "Internal Server Error",
"errorCode": "UNEXPECTED_ERROR"
}