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.
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.
-
Crie manualmente uma create a permission policy na sua conta Alibaba Cloud (conta primária) e anexe a política ao usuário RAM.
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.
|
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 |
|
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 PATHpara 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.
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
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á.
Baixe o script de backup.
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.
-
Modifique os seguintes parâmetros conforme necessário.
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.
ImportantePara 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.
-
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
.bakserão gerados no diretórioC:\backup, por exemplo,dtstestdata_FULL_20200408154821.baketestdb_FULL_20200408154821.bak. Esses arquivos indicam que o script de backup foi executado com sucesso.
2. Carregar arquivos de backup no OSS
-
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.)
Faça login no console do OSS, clique em Buckets e depois em Create bucket.
-
Configure os seguintes parâmetros principais e mantenha os valores padrão para os demais.
ImportanteEste 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
-
-
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:
3. Executar o script de migração
Baixe o script de migração do SQL Server.
-
Após extrair o pacote, execute o comando abaixo para visualize os parâmetros do script.
python ~/Downloads/RDSSQLCreateMigrateTasksBatchly.py -hO 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
/. -
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
Migrationdataem um bucket do OSS chamadotestdatabucketpara 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.
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.
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 |
| O AccessKey ID usado na chamada da OpenAPI está incorreto. | Forneça o AccessKey ID and AccessKey Secret correto. |
| O AccessKey Secret usado na chamada da OpenAPI está incorreto. | |
| 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. |
| O ID da instância RDS especificado não existe. | Verifique se o ID da instância RDS fornecido está correto. |
| Falha na conexão devido a um endpoint incorreto. | Verifique se a endpoint fornecida está correta. |
| O bucket do OSS especificado não existe. | Verifique se o nome do bucket do OSS fornecido está correto. |
| 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. |
| 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 |
| 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. |
| 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.
|
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 |
|
Restaura arquivos de backup do OSS para uma instância ApsaraDB RDS for SQL Server e cria uma tarefa de migração de dados. |
|
|
Abre o banco de dados de uma tarefa de migração de dados de backup em uma instância ApsaraDB RDS for SQL Server. |
|
|
Consulta a lista de tarefas de migração de dados de backup em uma instância ApsaraDB RDS for SQL Server. |
|
|
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. |
, selecione o arquivo de backup desejado e clique em Abrir. O arquivo local será carregado no OSS.