Todos os produtos
Search
Central de documentação

ApsaraDB RDS:Migração de SQL Server para a nuvem no nível de instância

Última atualização: Sep 06, 2026

O ApsaraDB RDS for SQL Server oferece migração para a cloud no nível de instância de todo o conjunto de dados de um ou mais bancos de dados em um SQL Server autogerenciado. Para migrar, faça backup de todos os bancos de dados do SQL Server autogerenciado, carregue os arquivos de backup em uma única pasta dentro de um bucket do OSS e execute o script de migração para a cloud.

Nota

Para migrar um único banco de dados, consulte Migrate data from a full backup e Migrate data from an incremental backup.

Pré-requisitos

  • A source deve ser um banco de dados SQL Server autogerenciado.

  • The destination ApsaraDB RDS for SQL Server instance deve atender aos seguintes requisitos:

    • O espaço de armazenamento disponível na instância deve ser maior que o tamanho dos arquivos de dados a serem migrados. Se o espaço for insuficiente, upgrade the instance specifications.

    • Para o SQL Server 2008 R2, crie um database na instância de destino com o mesmo nome do banco de dados de source. Esse requisito não se aplica a outras versões.

  • Se você fizer login como usuário RAM, atenda aos seguintes requisitos:

    • O usuário RAM deve ter as permissões AliyunOSSFullAccess e AliyunRDSFullAccess. Para obter mais informações sobre como conceder permissões a um usuário RAM, consulte Manage OSS permissions by using RAM e Manage ApsaraDB RDS permissions by using RAM.

    • Sua conta Alibaba Cloud (conta primária) deve ter autorizado a conta de serviço oficial do ApsaraDB RDS a acessar seus recursos do OSS.

      Clique em para visualizar o método de autorização

      1. Acesse a página Restoration da instância ApsaraDB RDS e clique em Restore Backup Data from OSS.

      2. Na página Import Guide, clique em Next duas vezes para avançar até a etapa 3. Import Data.

        Se a mensagem You have authorized the ApsaraDB RDS official service account to access your OSS resources aparecer no canto inferior esquerdo da página, a autorização estará concluída. Caso contrário, clique em Authorization URL na página para conceder a autorização.

        Na página 3. Data Import, configure os seguintes parâmetros:

        • Database Name: Insira o nome do banco de dados de destino.

        • OSS Bucket: Selecione na lista suspensa o bucket que armazena o arquivo de backup carregado.

        • OSS File List: Insira um prefixo de nome de arquivo para pesquisar o arquivo de backup e selecione-o.

        • Migration Method: Selecione Open Database (Only One Full Backup File) ou Do Not Open Database (Differential Backup or Log Files Available).

        • Consistency Check Method: Selecione Synchronous DBCC ou Asynchronous DBCC.

    • Crie manualmente uma create a permission policy na sua conta Alibaba Cloud (conta primária) e anexe a política ao usuário RAM.

      Clique em para visualizar o conteúdo da política

      {
          "Version": "1",
          "Statement": [
              {
                  "Action": [
                      "ram:GetRole"
                  ],
                  "Resource": "acs:ram:*:*:role/AliyunRDSImportRole",
                  "Effect": "Allow"
              }
          ]
      }

Limitações

Esta solução suporta apenas migração completa; a migração incremental não é suportada atualmente.

Faturamento

Ao utilizar o método descrito neste tópico para migrar dados, há cobrança apenas pelo uso de buckets do OSS.

image

Cenário

Regra de faturamento

Carregar arquivos de backup em um bucket do OSS

Gratuito.

Armazenar arquivos de backup em um bucket do OSS

Há cobrança de taxas de armazenamento. Para mais informações, visite a página Pricing do OSS.

Migrar arquivos de backup de um bucket do OSS para sua instância RDS

  • Não há cobrança de taxas ao migrar arquivos de backup de um bucket do OSS para sua instância RDS pela rede interna.

  • Ao migrar arquivos de backup pela Internet, há cobrança pelo bucket do OSS com base no tráfego de saída da Internet. Para mais informações, visite a página Pricing do OSS.

Pré-requisitos

1. Instalar Python 3

Acesse o site oficial do Python para baixe e instale o pacote apropriado para seu sistema operacional. Selecione a versão 3,12 ou posterior.

  • Windows: Durante a instalação, marque a caixa de seleção Add python.exe to PATH para evitar a configuração manual da variável de ambiente.

  • macOS/Linux: Instale pelo instalador oficial ou por um gerenciador de pacotes como Homebrew, apt ou dnf. Consulte o site oficial para obter orientações.

2. Verificar a instalação e versão do Python

O nome do executável pode variar conforme o sistema operacional e o método de instalação (por exemplo, python, python3 ou py). Execute os comandos em ordem e verifique a saída para confirme a instalação.

Windows (Prompt de Comando ou PowerShell)

python --version
python3 --version
py --version
  • Se a saída exibir Python 3.12.x ou uma versão superior, o Python está instalado corretamente e pronto para uso.

  • Caso receba uma mensagem de erro como ...is not recognized as an internal or external command..., adicione manualmente o caminho de instalação do Python à variável de ambiente PATH.

macOS/Linux (terminal)

python --version
python3 --version

Em alguns sistemas, o comando python ainda pode apontar para uma versão mais antiga. Utilize primeiro o comando python3. Verifique a saída para confirme se você tem o Python 3,12 ou uma versão posterior instalada.

3. Instalar dependências do SDK

pip install alibabacloud_rds20140815
pip install alibabacloud-oss-v2
pip install alibabacloud_tea_openapi
pip install alibabacloud_tea_util

1. Fazer backup de bancos de dados SQL Server autogerenciados

Importante
  • Para garantir a consistência dos dados, não grave novos dados durante o backup completo. Agende essa operação com antecedência para evitar interrupções nos seus services.

  • Caso não utilize o script de backup, nomeie os arquivos de backup no formatodatabase_name_backup_type_backup_time.bak, por exemplo, Testdb_FULL_20180518153544.bak. Caso contrário, o backup falhará.

  1. Baixe o script de backup.

  2. Clique em duas vezes no script de backup para abri-lo no Microsoft SQL Server Management Studio (SSMS). Para instruções sobre como conectar-se usando o SSMS, consulte a documentação oficial.

  3. Modifique os seguintes parâmetros conforme necessário.

    Clique em para expandir o exemplo

    SELECT
        /**
        * The list of databases to back up. Use a semicolon (;) or a comma (,) as the delimiter.
        * An empty value ('') or null backs up all databases except for system databases.
        * example: '[testdb]: TestDR, Test, readonly'
        **/
        @backup_databases_list = N'[dtstestdata],[testdb]'
        @backup_type = N'FULL',                    -- The backup type. Valid values: FULL (full backup), DIFF (differential backup), LOG (log backup).
        @backup_folder = N'C:\BACKUP'              -- The folder to store the backup files.
        @is_run = 1                                -- Specifies whether to run the backup. 1: Runs the backup. 0: Performs a check only.

    Parâmetro

    Descrição

    @backup_databases_list

    Os bancos de dados a serem copiados. Use ponto e vírgula (;) ou vírgula (,) para separar vários nomes de bancos de dados.

    @backup_type

    O tipo de backup. Valores válidos:

    • FULL: backup completo.

    • DIFF: backup diferencial.

    • LOG: backup de log.

    Importante

    Para este procedimento, defina este parâmetro como FULL.

    @backup_folder

    O diretório local para armazenar os arquivos de backup. Este diretório é criado automaticamente se não existir.

    @is_run

    Especifica se o backup deve ser executado. Valores válidos:

    • 1: Executa o backup.

    • 0: Realiza apenas uma verificação.

  4. Execute o script de backup para copiar os bancos de dados para o diretório especificado.

    Após a conclusão do backup, arquivos de backup .bak serão gerados no diretório C:\backup, por exemplo, dtstestdata_FULL_20200408154821.bak e testdb_FULL_20200408154821.bak. Esses arquivos indicam que o script de backup foi executado com sucesso.

2. Carregar arquivos de backup no OSS

  1. Antes de carregar arquivos de backup no OSS, crie um bucket no OSS.

    • Se já existir um bucket no OSS, certifique-se de que ele atenda aos seguintes requisitos:

      • A storage class do bucket é Standard. As classes de armazenamento IA, Archive, Cold Archive e Deep Cold Archive não são suportadas.

      • Server-side encryption não está ativado para o bucket.

    • Se não houver nenhum bucket no OSS, crie um bucket primeiro. (Certifique-se de que o OSS esteja activated.)

      1. Faça login no console do OSS, clique em Buckets e depois em Create bucket.

      2. Configure os seguintes parâmetros principais e mantenha os valores padrão para os demais.

        Importante
        • Este bucket serve exclusivamente para esta migração de dados , portanto, basta configure os parâmetros essenciais. Após terminar a migração, exclua o bucket prontamente para evitar vazamentos de dados e custos adicionais.

        • Não ative server-side encryption ao crie o bucket.

        Parâmetro

        Descrição

        Exemplo

        Bucket Name

        Nome do bucket. Deve ser globalmente único e não pode ser alterado após a crie do bucket.

        Regras de nomenclatura:

        • O nome pode conter apenas letras minúsculas, dígitos e hifens (-).

        • Deve começar e terminar com uma letra minúscula ou dígito.

        • O comprimento deve estar entre 3 e 63 caracteres.

        migratetest

        Region

        Região onde o bucket reside. Ao carregar dados no bucket a partir de uma instância ECS via rede interna e restaurar os dados na instância ApsaraDB RDS também pela rede interna, garanta que a instância ECS, o bucket e a instância ApsaraDB RDS estejam na mesma região.

        China (Hangzhou)

        Storage Type

        Selecione Standard. A operação de migração descrita neste tópico não suporta buckets de outras classes de armazenamento.

        Standard

  2. Carregue o arquivo de backup no OSS.

    Após concluir o backup do banco de dados autogerenciado, carregue o arquivo de backup em um bucket do OSS localizado na mesma região da sua instância ApsaraDB RDS. Quando o bucket e a instância ApsaraDB RDS residem na mesma região, a comunicação ocorre via rede interna. Nesse cenário, não há cobrança de tráfego de Internet e o upload de dados é mais rápido. Escolha um dos métodos abaixo:

    Carregar arquivos usando ossbrowser (recomendado)

    1. Baixe ossbrowser.

    2. Neste exemplo, utiliza-se Windows x64. Descompacte o pacote baixado oss-browser-win32-x64.zip e clique em duas vezes no aplicativo oss-browser.exe.

    3. Selecione AK como método de login, configure os parâmetros Access Key ID e Access Key Secret, mantenha os valores padrão para os demais parâmetros e clique em Log On.

      Nota

      Um AccessKey é utilizado para autenticação de identidade visando garantir a segurança dos dados. Mantenha seu AccessKey confidencial.

    4. Clique em no bucket de destino para acessá-lo.

    5. Clique em Upload icon, selecione o arquivo de backup desejado e clique em Abrir. O arquivo local será carregado no OSS.

    Carregar arquivos usando o console do OSS

    Nota

    Se o arquivo de backup tiver menos de 5 GB, carregue-o diretamente pelo console do OSS.

    1. Faça login no console do OSS.

    2. Clique em Buckets e selecione o nome do bucket de destino.

    3. Na seção Files, clique em Upload File.

    4. Arraste o arquivo de backup para a área Files to Upload ou clique em Select Files e escolha o arquivo de backup a ser carregado.

    5. Clique em Upload File na parte inferior da página. O arquivo de backup local será enviado ao OSS.

    Carregar arquivos usando a API do OSS (exemplo de projeto Python 3)

    Nota

    Para arquivos de backup maiores que 5 GB, chame operações da API do OSS para realizar o upload multipart.

    # -*- coding: utf-8 -*-
    """
    Alibaba Cloud OSS Python SDK v2
    Dependency: pip install alibabacloud-oss-v2
    """
    
    import os
    import sys
    from pathlib import Path
    import alibabacloud_oss_v2 as oss
    from alibabacloud_oss_v2 import exceptions as oss_ex
    
    def get_client_from_env(region: str, endpoint: str | None = None) -> oss.Client:
        """
        Create a v2 client from environment variables.
        - Prioritize using Region (recommended), but also support custom Endpoints (optional).
        - Compatible with both AK and STS:
            * AK: Requires OSS_ACCESS_KEY_ID / OSS_ACCESS_KEY_SECRET
            * STS: Also requires OSS_SESSION_TOKEN (compatible with the old variable OSS_SECURITY_TOKEN)
        """
        # Compatibility: If the user uses the old variable OSS_SECURITY_TOKEN, map it to the v2 expected OSS_SESSION_TOKEN
        sec_token_legacy = os.getenv("OSS_SECURITY_TOKEN")
        if sec_token_legacy and not os.getenv("OSS_SESSION_TOKEN"):
            os.environ["OSS_SESSION_TOKEN"] = sec_token_legacy
    
        ak = os.getenv("OSS_ACCESS_KEY_ID")
        sk = os.getenv("OSS_ACCESS_KEY_SECRET")
        st = os.getenv("OSS_SESSION_TOKEN")  # STS Token (optional)
    
        if not (ak and sk):
            raise ValueError("No valid AK found. Set the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables. "
                             "If using STS, also set OSS_SESSION_TOKEN (or the old name OSS_SECURITY_TOKEN).")
    
        # Indicate the type of credential used
        if st:
            print("STS Token (OSS_SESSION_TOKEN) detected. Using STS credentials.")
        else:
            print("No STS Token detected. Using AccessKey (AK) credentials.")
    
        credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
        cfg = oss.config.load_default()
        cfg.credentials_provider = credentials_provider
    
        # Basic network configuration
        cfg.region = region  # Example: 'cn-hangzhou'
        if endpoint:
            # Optional: Custom Endpoint (e.g., internal network, accelerated, dedicated domain)
            cfg.endpoint = endpoint
    
        # You can also add other configurations here, such as: cfg.use_accelerate_endpoint = True
        return oss.Client(cfg)
    
    def resumable_upload_file_v2(
        client: oss.Client,
        bucket_name: str,
        object_key: str,
        file_path: str,
        part_size: int = 1 * 1024 * 1024,
        parallel_num: int = 4,
        checkpoint_dir: str | None = None,
    ):
        """
        Implement concurrent multipart upload with resumable upload.
    
        :param client: Initialized oss.Client
        :param bucket_name: Destination bucket name
        :param object_key: Destination object key (without bucket name)
        :param file_path: Full path of the local file
        :param part_size: Part size in bytes, default is 1 MB
        :param parallel_num: Number of concurrent upload threads, default is 4
        :param checkpoint_dir: Directory to store breakpoint information; if None, resumable upload is disabled
        """
        file_path = str(file_path)
        if not Path(file_path).exists():
            raise FileNotFoundError(f"Error: Local file not found. Check the file_path configuration: {file_path}")
    
        # Construct the Uploader; enable resumable upload based on whether checkpoint_dir is provided
        if checkpoint_dir:
            uploader = client.uploader(
                enable_checkpoint=True,
                checkpoint_dir=checkpoint_dir,
                part_size=part_size,
                parallel_num=parallel_num,
            )
        else:
            uploader = client.uploader(
                part_size=part_size,
                parallel_num=parallel_num,
            )
    
        print(f"Starting to upload file: {file_path}")
        print(f"Destination Bucket: {bucket_name}")
        print(f"Destination Object: {object_key}")
        print(f"Part size: {part_size} bytes, Concurrency: {parallel_num}")
        if checkpoint_dir:
            print(f"Resumable upload: Enabled (checkpoint_dir={checkpoint_dir})")
        else:
            print("Resumable upload: Disabled (set checkpoint_dir to enable)")
    
        # Execute the upload (Uploader automatically chooses between multi/single part concurrent upload based on size)
        result = uploader.upload_file(
            oss.PutObjectRequest(bucket=bucket_name, key=object_key),
            filepath=file_path,
        )
    
        print("-" * 30)
        print("File uploaded successfully!")
        print(f"HTTP Status: {result.status_code}")
        print(f"ETag: {result.etag}")
        print(f"Request ID: {result.request_id}")
        # CRC-64 checksum; v2 enables data validation by default
        print(f"CRC64: {result.hash_crc64}")
        print("-" * 30)
    
    def main():
        # Before running the code example, make sure you have set the corresponding environment variables.
        # macOS/Linux:
        #   AK method:
        #     export OSS_ACCESS_KEY_ID=YOUR_AK_ID
        #     export OSS_ACCESS_KEY_SECRET=YOUR_AK_SECRET
        #   STS method:
        #     export OSS_ACCESS_KEY_ID=YOUR_STS_ID
        #     export OSS_ACCESS_KEY_SECRET=YOUR_STS_SECRET
        #     export OSS_SECURITY_TOKEN=YOUR_STS_TOKEN
        #
        # Windows:
        #   Powershell: $env:OSS_ACCESS_KEY_ID="YOUR_AK_ID"
        #   cmd: set OSS_ACCESS_KEY_ID=YOUR_AK_ID
    
        # ===================== Parameters (modify as needed) =====================
        # Region example: 'cn-hangzhou'; we recommend using Region first
        region = "cn-hangzhou"
    
        # Optional: Custom Endpoint (for internal network, dedicated domain, accelerated domain name, etc.)
        # Example: 'https://oss-cn-hangzhou.aliyuncs.com'
        endpoint = 'https://oss-cn-hangzhou.aliyuncs.com'
    
        # Bucket and Object
        bucket_name = "examplebucket"
        object_key = "test.bak"
    
        # Full path of the local file to upload.
        # Windows example: r'D:\localpath\examplefile.txt'  (note the r at the beginning)
        # macOS/Linux example: '/Users/test/examplefile.txt'
        file_path = r"D:\oss\test.bak"
    
        # Sharding and concurrency
        part_size = 1 * 1024 * 1024  # Default is 1 MB; OSS requires a minimum part size of 100 KB
        parallel_num = 4
    
        # Resumable upload directory (pass None to disable; we recommend specifying a writable directory)
        checkpoint_dir = str(Path.cwd() / ".oss_checkpoints")
        # =================== End of parameters ===================
    
        print("Script execution starts...")
        try:
            client = get_client_from_env(region=region, endpoint=endpoint)
            # If resumable upload is enabled, make sure the directory exists
            if checkpoint_dir:
                Path(checkpoint_dir).mkdir(parents=True, exist_ok=True)
    
            resumable_upload_file_v2(
                client=client,
                bucket_name=bucket_name,
                object_key=object_key,
                file_path=file_path,
                part_size=part_size,
                parallel_num=parallel_num,
                checkpoint_dir=checkpoint_dir,
            )
        except FileNotFoundError as e:
            print(e)
        except oss_ex.ServiceError as e:
            # Error returned by the OSS server
            print("\nAn OSS server-side error occurred.")
            print(f"HTTP Status: {getattr(e, 'status_code', 'N/A')}")
            print(f"Error Code: {getattr(e, 'code', 'N/A')}")
            print(f"Message: {getattr(e, 'message', 'N/A')}")
            print(f"Request ID: {getattr(e, 'request_id', 'N/A')}")
            print(f"Endpoint: {getattr(e, 'request_target', 'N/A')}")
        except oss_ex.BaseError as e:
            # SDK local/serialization/deserialization/credential errors
            print("\nAn OSS SDK client-side error occurred.")
            print(str(e))
        except Exception as e:
            print(f"\nAn unknown error occurred: {e}")
    
    if __name__ == "__main__":
        main()

3. Executar o script de migração

  1. Baixe o script de migração do SQL Server.

  2. Após extrair o pacote, execute o comando abaixo para visualize os parâmetros do script.

    python ~/Downloads/RDSSQLCreateMigrateTasksBatchly.py -h

    O comando retorna a seguinte saída:

    RDSSQLCreateMigrateTasksBatchly.py -k <access_key_id> -s <access_key_secret> -i <rds_instance_id> -e <oss_endpoint> -b <oss_bucket> -d <directory>

    A tabela a seguir descreve os parâmetros.

    Parâmetro

    Descrição

    access_key_id

    O AccessKey ID da sua conta Alibaba Cloud.

    access_key_secret

    O AccessKey Secret da sua conta Alibaba Cloud.

    rds_instance_id

    O ID da instância RDS de destino.

    oss_endpoint

    A endpoint da região do OSS onde seu bucket está localizado.

    oss_bucket

    Nome do bucket que contém os arquivos de backup.

    directory

    Diretório no bucket do OSS para os arquivos de backup. Para o diretório raiz, insira /.

  3. Execute o script de migração para concluir o processo.

    Este tópico apresenta um exemplo de migração completa de todos os arquivos de backup que atendem a condições específicas do diretório Migrationdata em um bucket do OSS chamado testdatabucket para uma instância ApsaraDB RDS for SQL Server com o ID rm-2zesz5774ud8s****.

    python ~/Downloads/RDSSQLCreateMigrateTasksBatchly.py -k yourAccessKeyID -s yourAccessKeySecret -i rm-2zesz5774ud8s**** -e oss-cn-beijing.aliyuncs.com -b testdatabucket -d Migrationdata

4. Visualizar o progresso da tarefa de migração

Siga as instruções correspondentes à versão do SQL Server da sua instância ApsaraDB RDS.

SQL Server 2012 e posteriores

No painel de navegação à esquerda da sua instância ApsaraDB RDS, acesse a página Backup and Restoration. Na aba Cloud Migration Records of Backup Data, visualize os registros de migração para a cloud, incluindo status da tarefa, hora de início e término. Por padrão, são exibidos os registros da última semana. Ajuste o intervalo de tempo conforme necessário.

Nota

Se o Task Status for Failed, verifique a Task Description ou clique em View File Details ao lado da tarefa de migração alvo para identificar a causa da falha. Após corrigir o problema, execute a tarefa de migração novamente.

SQL Server 2008 R2

No painel de navegação à esquerda da sua instância ApsaraDB RDS, acesse a página Data Migration To Cloud. Em seguida, localize a tarefa de migração desejada para acompanhar seu progresso.

Nota

Se o Task Status for Failed, verifique a Task Description ou clique em View File Details ao lado da tarefa de migração alvo para identificar a causa da falha. Após corrigir o problema, execute a tarefa de migração novamente.

Erros comuns

Mensagem de erro

Causa

Solução

HTTP Status: 404 Error:InvalidAccessKeyId.NotFound Specified access key is not found. RequestID: XXXXXXXXXXXXXXXXX

O AccessKey ID usado na chamada da OpenAPI está incorreto.

Forneça o AccessKey ID and AccessKey Secret correto.

HTTP Status: 400 Error:IncompleteSignature The request signature does not conform to Aliyun standards. server string to sign is:......

O AccessKey Secret usado na chamada da OpenAPI está incorreto.

RDS engine doesn't support, this is only for RDS SQL Server engine.

Esta solução suporta apenas ApsaraDB RDS for SQL Server. Outros mecanismos de banco de dados não são compatíveis.

Utilize uma instância ApsaraDB RDS for SQL Server como destino da migração.

Couldn't find specify RDS [XXX].

O ID da instância RDS especificado não existe.

Verifique se o ID da instância RDS fornecido está correto.

{'status': -2, 'request-id': '', 'details': "RequestError: HTTPConnectionPool(host='xxxxxxxxxxxxxxxxx', port=80): Max retries exceeded with url: /?bucketInfo= (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x10e996490>: Failed to establish a new connection: [Errno 8] nodename nor servname provided, or not known',))"}

Falha na conexão devido a um endpoint incorreto.

Verifique se a endpoint fornecida está correta.

{'status': 404,'-id': 'xxxxxxxxx', 'details': {'HostId': 'xxxxxxxxx', 'Message': 'The specified bucket does not exist.', 'Code': 'NoSuchBucket', 'RequestId': 'xxxxxxxx', 'BucketName': 'aaaatp-test-on-ecs'}}

O bucket do OSS especificado não existe.

Verifique se o nome do bucket do OSS fornecido está correto.

There is no backup file on OSS Bucket [xxxxxx] under [xxxxxxxxx] folder, check please.

A pasta especificada não existe no bucket do OSS ou não contém arquivos de backup de banco de dados válidos.

Confirme se a pasta existe no bucket do OSS e se ela contém arquivos de backup de banco de dados válidos.

Warning!!!!!, [autotest_2005_ent_broken_full_dbcc_failed.bak] is not backup file, filtered.

O nome do arquivo de backup não segue a convenção de nomenclatura exigida.

Caso não utilize o script de backup, nomeie o arquivo no formato DatabaseName_BackupType_BackupTime.bak. Exemplo: Testdb_FULL_20180518153544.bak.

HTTP Status: 403 Error:Forbidden.RAM The user is not authorized to operate the specified resource, or this operation does not support RAM. RequestID: xxxxx{'status': 403, 'request-id': 'xxxx', 'details': {'HostId': 'atp-test-on-ecs.oss-cn-beijing.aliyuncs.com', 'Message': 'The bucket you visit is not belong to you.', 'Code': 'AccessDenied', 'RequestId': 'xxxx'}}

O usuário RAM possui permissões insuficientes.

É necessário grant the RAM user permissions to access OSS and RDS. Isso requer as políticas AliyunOSSFullAccess e AliyunRDSFullAccess.

OPENAPI Response Error !!!!! : HTTP Status: <Http Status Code> Error:<Error> <Description>. RequestID: 32BB6886-775E-4BB7-A054-635664****

A chamada da OpenAPI retornou um erro.

Analise a causa raiz com base no error code and error message retornado.

Códigos de erro da OpenAPI

Código de status HTTP

Erro

Mensagem

Descrição

403

InvalidDBName

O nome do banco de dados especificado não é permitido.

Nome de banco de dados inválido. Não é possível usar nomes de bancos de dados do sistema.

403

IncorrectDBInstanceState

O estado atual da instância não permite esta operação.

A instância RDS encontra-se em um estado inválido. Por exemplo, a instância está no estado Creating.

400

IncorrectDBInstanceType

O tipo atual da instância não suporta esta operação.

O mecanismo da instância não é suportado. Este recurso está disponível apenas para ApsaraDB RDS for SQL Server.

400

IncorrectDBInstanceLockMode

O modo de bloqueio atual da instância não suporta esta operação.

O banco de dados está em um estado de bloqueio inválido.

400

InvalidDBName.NotFound

Um ou mais nomes de banco de dados especificados não existem ou seu status não permite a operação.

O banco de dados não existe.

  • Para ApsaraDB RDS for SQL Server 2008 R2, crie primeiro um banco de dados com o mesmo nome na instância de destino.

  • Para ApsaraDB RDS for SQL Server 2012 e posteriores, não deve existir um banco de dados com o mesmo nome na instância de destino.

400

IncorrectDBType

O tipo de banco de dados não suporta esta operação.

400

IncorrectDBState

O estado atual do banco de dados não permite esta operação.

O banco de dados está em um estado inválido, por exemplo, sendo criado ou com uma migração em andamento.

400

UploadLimitExceeded

A cota diária de migração para o banco de dados foi excedida.

São permitidas no máximo 20 migrações por banco de dados em cada instância por dia.

400

ConcurrentTaskExceeded

A cota diária de migração para a instância foi excedida.

Uma instância tem limite máximo de 500 migrações por dia.

400

IncorrectFileExtension

A extensão do arquivo não é suportada.

O arquivo de backup possui uma extensão inválida.

400

InvalidOssUrl

A URL do OSS especificada é inválida.

A URL de download do OSS fornecida está indisponível.

400

BakFileSizeExceeded

O arquivo de backup excede o limite de tamanho permitido.

O tamanho do arquivo de backup não pode ultrapassar 3 TB.

400

FileSizeExceeded

O arquivo é muito grande para a instância de destino.

A restauração do arquivo de backup excederia a capacidade de armazenamento da instância de destino.

Operações de API relacionadas

API

Descrição

CreateMigrateTask

Restaura arquivos de backup do OSS para uma instância ApsaraDB RDS for SQL Server e cria uma tarefa de migração de dados.

CreateOnlineDatabaseTask

Abre o banco de dados de uma tarefa de migração de dados de backup em uma instância ApsaraDB RDS for SQL Server.

DescribeMigrateTasks

Consulta a lista de tarefas de migração de dados de backup em uma instância ApsaraDB RDS for SQL Server.

DescribeOssDownloads

Consulta os detalhes dos arquivos de backup de uma tarefa de migração de dados de backup em uma instância ApsaraDB RDS for SQL Server.