O Data Transmission Service (DTS) permite migrar dados de um banco de dados SQL Server para uma instância ApsaraDB RDS for PostgreSQL. Este tópico utiliza um banco de dados SQL Server auto-gerenciado com acesso público habilitado como banco de origem e descreve as etapas necessárias.
Atualmente, esse recurso é suportado apenas nas regiões China (Qingdao), China (Beijing) e China (Hong Kong).
Pré-requisitos
Adicione os blocos CIDR dos servidores DTS às configurações de segurança (como regras de grupo de segurança, regras de firewall ou listas de permissões) do banco de dados SQL Server auto-gerenciado para permitir o acesso dos servidores DTS.
-
Crie uma instância de destino ApsaraDB RDS for PostgreSQL cujo espaço de armazenamento seja maior que o espaço utilizado pelo banco de dados SQL Server de origem. Para obter informações sobre como criar uma instância, consulte Quickly create an ApsaraDB RDS for PostgreSQL instance.
NotaPara verificar as versões suportadas pelos bancos de dados de origem e de destino, consulte Migration scenarios.
Crie um banco de dados na instância de destino ApsaraDB RDS for PostgreSQL para receber os dados. Para obter informações sobre como criar um banco de dados, consulte Create a database.
-
Se a instância de origem apresentar qualquer uma das condições a seguir, recomendamos dividir a migração em várias tarefas:
Os dados a serem migrados pertencem a múltiplos schemas.
Backups de log são realizados mais de uma vez por hora para um único banco de dados.
Mais de 100 operações de Linguagem de Definição de Dados (DDL) são executadas por hora em um único banco de dados.
A taxa de geração de logs para um único banco de dados excede 20 MB/s.
É necessário habilitar o Change Data Capture (CDC) em mais de 1.000 tabelas.
Observações de uso
O DTS migra chaves estrangeiras durante a migração de schema.
Durante a migração de dados completa e incremental, o DTS desativa temporariamente as verificações de restrições e cascatas de chave estrangeira no nível da sessão. Atualizações ou exclusões em cascata no banco de dados de origem enquanto a tarefa está em execução podem causar inconsistência de dados.
O DTS não suporta a realização de migração completa em múltiplas etapas; a migração completa deve ser concluída em uma única operação. Caso precise migrar dados em lotes, configure várias tarefas de migração.
|
Tipo |
Descrição |
|
Limites do banco de dados de origem |
|
|
Outros limites |
|
|
Casos especiais |
Se a origem for uma instância ApsaraDB RDS for SQL Server, o DTS cria uma conta de sistema chamada |
Faturamento
Tipo de migração | Taxa de configuração de link | Taxa de tráfego de internet |
Migração de schema e migração completa de dados | Gratuito. | Gratuito neste exemplo. Nota Você será cobrado quando o Access Method da instância do banco de dados de destino for Public IP Address. Para mais informações, consulte Billing overview. |
Migração incremental de dados | Cobrado. Para mais informações, consulte Billing overview. |
Operações SQL que suportam migração incremental
Tipo de operação | Instruções SQL |
DML | INSERT, UPDATE, DELETE Nota Instruções UPDATE que atualizam apenas campos grandes não são suportadas. |
Permissões necessárias para contas de banco de dados
|
Banco de dados |
Permissões necessárias |
Métodos de criação e autorização de conta |
|
SQL Server auto-gerenciado de origem |
Permissão sysadmin. |
|
|
Instância de destino ApsaraDB RDS for PostgreSQL |
Permissão de proprietário (conta de autorização) do banco de dados de destino. |
Pré-requisitos
Para realizar uma migração incremental, configure as definições de log e crie índices clusterizados no seu banco de dados SQL Server auto-gerenciado antes de configurar a tarefa de migração de dados.
Se precisar migrar vários bancos de dados, repita as etapas 1 a 3 para cada banco de dados. A falta dessa ação pode resultar em inconsistência de dados.
-
Execute o seguinte comando no seu banco de dados SQL Server auto-gerenciado para alterar o modelo de recuperação do banco de dados de origem para o modelo de recuperação completa.
use master; GO ALTER DATABASE <database_name> SET RECOVERY FULL WITH ROLLBACK IMMEDIATE; GOParâmetros:
<database_name>: O nome do banco de dados de origem.
Exemplo:
use master; GO ALTER DATABASE mytestdata SET RECOVERY FULL WITH ROLLBACK IMMEDIATE; GO -
Execute o seguinte comando para criar um backup lógico do banco de dados de origem. Pule esta etapa se já existir um backup lógico.
BACKUP DATABASE <database_name> TO DISK='<physical_backup_device_name>'; GOParâmetros:
<database_name>: O nome do banco de dados de origem.
<physical_backup_device_name>: O caminho e o nome do arquivo para o arquivo de backup.
Exemplo:
BACKUP DATABASE mytestdata TO DISK='D:\backup\dbdata.bak'; GO -
Execute o seguinte comando para fazer backup do log de transações do banco de dados de origem.
BACKUP LOG <database_name> to DISK='<physical_backup_device_name>' WITH init; GOParâmetros:
<database_name>: O nome do banco de dados de origem.
<physical_backup_device_name>: O caminho e o nome do arquivo para o arquivo de backup.
Exemplo:
BACKUP LOG mytestdata TO DISK='D:\backup\dblog.bak' WITH init; GO
Procedimento
-
Acesse a página da lista de tarefas de migração para a região de destino usando um dos seguintes métodos.
Pelo console do DTS
Faça login no console do Data Transmission Service (DTS).
No painel de navegação à esquerda, clique em Data Migration.
No canto superior esquerdo da página, selecione a região onde a instância de migração está localizada.
Pelo console do DMS
NotaAs operações reais podem variar com base no modo e layout do console DMS. Para mais informações, consulte Simple mode console e Customize the layout and style of the DMS console.
Faça login no console do Data Management (DMS).
Na barra de menu superior, escolha .
À direita de Data Migration Tasks, selecione a região onde a instância de migração está localizada.
Clique em Create Task para acessar a página de configuração da tarefa.
-
Configure os bancos de dados de origem e de destino.
Categoria
Parâmetro
Descrição
Nenhum
Task Name
O DTS gera automaticamente um nome para a tarefa. Recomendamos especificar um nome descritivo para facilitar a identificação. O nome não precisa ser único.
Source Database
Select Existing Connection
Para usar uma instância de banco de dados que foi added to the system (criada ou salva), selecione a instância desejada na lista suspensa. As informações do banco de dados abaixo serão configuradas automaticamente.
NotaNo console DMS, este parâmetro é chamado Select a DMS database instance..
Se você não registrou a instância de banco de dados no sistema, ou não precisa usar uma instância registrada, configure manualmente as informações do banco de dados abaixo.
Database Type
Selecione SQL Server.
Access Method
Selecione com base no local de implantação do banco de dados de origem. Neste exemplo, selecione Public IP Address.
NotaSe selecionar um método de acesso diferente para um banco de dados auto-gerenciado, você deve concluir os preparativos correspondentes. Para mais informações, consulte Preparation overview.
Instance Region
Selecione a região à qual o banco de dados SQL Server de origem pertence.
Domain Name or IP
Insira o endereço de acesso do banco de dados SQL Server de origem.
Port Number
Insira a porta de service do banco de dados SQL Server de origem. A porta padrão é 1433.
Database Account
Insira a conta do banco de dados SQL Server de origem. Para informações sobre as permissões necessárias, consulte Permissions required for database accounts.
Database Password
Insira a senha da conta do banco de dados.
Encryption
Selecione Non-encrypted ou SSL-encrypted com base nos requisitos do seu negócio.
-
Se a criptografia SSL estiver desativada para o banco de dados de origem, selecione Non-encrypted.
-
Se a criptografia SSL estiver ativada para o banco de dados de origem, selecione SSL-encrypted. Por padrão, o DTS confia no certificado do servidor.
Destination Database
Select Existing Connection
Para usar uma instância de banco de dados que foi added to the system (criada ou salva), selecione a instância desejada na lista suspensa. As informações do banco de dados abaixo serão configuradas automaticamente.
NotaNo console DMS, este parâmetro é chamado Select a DMS database instance..
Se você não registrou a instância de banco de dados no sistema, ou não precisa usar uma instância registrada, configure manualmente as informações do banco de dados abaixo.
Database Type
Selecione PostgreSQL.
Access Method
Selecione Alibaba Cloud Instance.
Instance Region
Selecione a região da instância de destino ApsaraDB RDS for PostgreSQL.
Instance ID
Selecione o ID da instância de destino ApsaraDB RDS for PostgreSQL.
Database Name
Insira o nome do banco de dados usado para receber dados na instância de destino ApsaraDB RDS for PostgreSQL.
Database Account
Insira a conta do banco de dados da instância de destino ApsaraDB RDS for PostgreSQL. Para informações sobre as permissões necessárias, consulte Permissions required for database accounts.
Database Password
Insira a senha da conta do banco de dados.
Encryption
Especifica se deve criptografar a conexão com o banco de dados de origem. Configure este parâmetro com base nos requisitos do seu negócio. Neste exemplo, Non-encrypted está selecionado.
Se desejar estabelecer uma conexão criptografada por SSL com o banco de dados de origem, execute as seguintes etapas: Selecione SSL-encrypted, faça upload do CA Certificate, Client Certificate e Private Key of Client Certificate conforme necessário, e então especifique a Private Key Password of Client Certificate.
Nota-
Se definir Encryption como SSL-encrypted para um banco de dados PostgreSQL auto-gerenciado, você deve fazer upload do CA Certificate.
-
Se quiser usar o certificado de cliente, você deve fazer upload do Client Certificate e da Private Key of Client Certificate e especificar a Private Key Password of Client Certificate.
-
Para obter informações sobre como configurar a criptografia SSL para uma instância ApsaraDB RDS for PostgreSQL, consulte SSL encryption.
-
Após concluir a configuração, clique em Test Connectivity and Proceed na parte inferior da página. Na caixa de diálogo CIDR Blocks of DTS Servers que aparece, clique em Test Connectivity.
NotaGaranta que os segmentos de endereço IP do service DTS sejam adicionados automática ou manualmente às configurações de segurança dos bancos de dados de origem e de destino para permitir o acesso dos servidores DTS. Para mais informações, consulte Add DTS server IP addresses to a whitelist.
-
Configure os objetos da tarefa.
-
Na página Configure Objects, configure os objetos que deseja migrar.
Parâmetro
Descrição
Migration Types
Se precisar realizar apenas uma migração completa, selecione tanto Schema Migration quanto Full Data Migration.
Para realizar uma migração sem tempo de inatividade, selecione Schema Migration, Full Data Migration e Incremental Data Migration.
NotaSe não selecionar Schema Migration, garanta que exista um banco de dados e tabelas para receber os dados no banco de dados de destino. Também é possível usar o recurso de mapeamento de nomes de objetos na caixa Selected Objects conforme necessário.
Se não selecionar Incremental Data Migration, não grave novos dados na instância de origem durante a migração de dados para garantir a consistência dos dados.
SQL Server Incremental Synchronization Mode
Log-based Parsing for Non-heap Tables and CDC-based Incremental Synchronization for Heap Tables (Hybrid Log-based Parsing):
Vantagens:
Suporta cenários que envolvem tabelas heap de origem, tabelas sem chaves primárias, tabelas compactadas ou tabelas com colunas computadas.
Oferece alta estabilidade de link. Este modo pode obter instruções DDL completas e suporta uma ampla gama de cenários DDL.
Desvantagens:
O DTS cria o gatilho
dts_cdc_sync_ddl, a tabela de heartbeatdts_sync_progresse a tabela de armazenamento DDLdts_cdc_ddl_historyno banco de dados de origem. Ele também habilita o CDC no nível do banco de dados e o CDC para algumas tabelas.Não é possível executar instruções
SELECT INTO,TRUNCATEouRENAME COLUMNem tabelas com CDC habilitado no banco de dados de origem. Não é possível excluir manualmente gatilhos criados pelo DTS no banco de dados de origem.
Incremental Synchronization Based on Logs of Source Database (Heap tables are not supported):
Vantagem:
Este modo não é intrusivo para o banco de dados de origem.
Desvantagem:
Este modo não suporta cenários que envolvem tabelas heap de origem, tabelas sem chaves primárias, tabelas compactadas ou tabelas com colunas computadas.
Polling and querying CDC instances for incremental synchronization:
Vantagens:
Suporta migração completa e incremental quando o banco de dados de origem é Amazon RDS for SQL Server, Azure SQL Database, Azure SQL Managed Instance, Azure SQL Server on Virtual Machine ou Google Cloud SQL for SQL Server.
Este modo usa o componente CDC nativo do SQL Server para obter dados incrementais, o que melhora a estabilidade da migração incremental e reduz o uso de largura de banda de rede.
Desvantagens:
A conta do banco de dados de origem usada pela instância DTS deve ter permissões para habilitar o CDC. A migração incremental de dados tem uma latência de cerca de 10 segundos.
Ao migrar várias tabelas em vários bancos de dados, você pode encontrar problemas de estabilidade e desempenho.
NotaEste parâmetro está disponível apenas quando a seleção para Migration Types inclui Incremental Data Migration.
The maximum number of tables for which CDC is enabled that DTS supports.
Defina um limite para o número de tabelas com CDC habilitado para a instância de migração atual com base nos requisitos do seu negócio. O valor padrão é 1.000.
NotaEste parâmetro não está disponível se você definir SQL Server Incremental Synchronization Mode como Incremental Synchronization Based on Logs of Source Database (Heap tables are not supported).
Processing Mode of Conflicting Tables
Precheck and Report Errors: Verifica se existem tabelas com os mesmos nomes no banco de dados de destino. Se não existirem tabelas com os mesmos nomes, a pré-verificação é aprovada. Se existirem tabelas com os mesmos nomes, um erro é relatado durante a pré-verificação e a tarefa de migração de dados não inicia.
NotaSe uma tabela no banco de dados de destino tiver o mesmo nome, mas não puder ser facilmente excluída ou renomeada, altere o nome da tabela no banco de dados de destino. Para mais informações, consulte Object name mapping.
Ignore Errors and Proceed: Ignora a verificação de tabelas com os mesmos nomes.
AvisoSelecionar Ignore Errors and Proceed pode causar inconsistência de dados e riscos aos negócios. Por exemplo:
Se os schemas das tabelas forem consistentes e um registro no banco de dados de destino tiver o mesmo valor de chave primária que um registro no banco de dados de origem:
Durante a migração completa, o DTS mantém o registro no banco de dados de destino. O registro do banco de dados de origem não é migrado.
Durante a migração incremental, o DTS não mantém o registro no banco de dados de destino. O registro do banco de dados de origem sobrescreve o registro no banco de dados de destino.
Se os schemas das tabelas forem inconsistentes, apenas algumas colunas de dados poderão ser migradas, ou a migração poderá falhar. Prossiga com cautela.
Capitalization of Object Names in Destination Instance
Configure a política de diferenciação de maiúsculas e minúsculas para os nomes dos objetos migrados, como bancos de dados, tabelas e colunas, na instância de destino. Por padrão, DTS default policy está selecionado. Também é possível optar por manter a diferenciação de maiúsculas e minúsculas consistente com a política padrão do banco de dados de origem ou de destino. Para mais informações, consulte Case sensitivity of object names in the destination database.
Source Objects
No painel Source Objects, clique nas tabelas que deseja migrar e clique em
para movê-las para o painel Selected Objects.ImportanteA granularidade dos objetos que podem ser selecionados para migração é tabelas, e todas as tabelas a serem migradas devem pertencer ao mesmo schema. Caso contrário, pode ocorrer inconsistência de dados ou falha na tarefa.
Selected Objects
Por padrão, o nome do schema de origem é usado como nome do schema de destino, e o nome da tabela de origem é usado como nome da tabela de destino.
Se quiser modificar o nome do schema que recebe dados na instância de destino ApsaraDB RDS for PostgreSQL, no painel Selected Objects, clique com o botão direito no schema da tabela a ser migrada. Na caixa de diálogo Edit Schema que aparece, modifique o Schema Name.
NotaTambém é possível clicar com o botão direito na tabela a ser migrada no painel Selected Objects para modificar o nome da tabela de destino ou os nomes das colunas, ou definir uma cláusula WHERE para filtrar dados. Para mais informações, consulte Filter task data with an SQL condition e Object name mapping.
Para selecionar operações SQL para migração incremental, clique com o botão direito no objeto a ser migrado no painel Selected Objects e selecione as operações SQL necessárias na caixa de diálogo que aparece.
Para remover um objeto de migração já selecionado, no painel Selected Objects, clique no objeto a ser migrado e clique em
para movê-lo para o painel Source Objects.
-
Clique em Next: Advanced Settings para configurar parâmetros avançados.
Parâmetro
Descrição
Dedicated Cluster for Task Scheduling
Por padrão, o DTS agenda tarefas em um cluster compartilhado. Não é necessário selecionar um. Se desejar tarefas mais estáveis, adquira um dedicated cluster para executar tarefas de migração do DTS.
Retry Time for Failed Connections
Após o início da tarefa de migração, se a conexão com o banco de dados de origem ou de destino falhar, o DTS relatará um erro e iniciará imediatamente uma nova tentativa de conexão. A duração padrão de nova tentativa é de 720 minutos. Personalize o tempo de nova tentativa para um valor entre 10 e 1440 minutos. Recomendamos definir a duração para mais de 30 minutos. Se o DTS reconectar aos bancos de dados de origem e de destino dentro da duração especificada, a tarefa de migração será retomada automaticamente. Caso contrário, a tarefa falhará.
NotaPara várias instâncias DTS que compartilham a mesma origem ou destino, o tempo de nova tentativa de rede é determinado pela configuração da última tarefa criada.
Como você é cobrado pela tarefa durante o período de nova tentativa de conexão, recomendamos personalizar o tempo de nova tentativa com base nas necessidades do seu negócio, ou liberar a instância DTS o mais rápido possível após a liberação das instâncias de banco de dados de origem e de destino.
Retry Time for Other Issues
Após o início da tarefa de migração, se ocorrer um problema que não seja de conectividade, como uma exceção de execução DDL ou DML, no banco de dados de origem ou de destino, o DTS relatará um erro e iniciará imediatamente uma nova tentativa da operação. A duração padrão de nova tentativa é de 10 minutos. Personalize o tempo de nova tentativa para um valor entre 1 e 1440 minutos. Recomendamos definir a duração para mais de 10 minutos. Se as operações relacionadas forem bem-sucedidas dentro da duração de nova tentativa especificada, a tarefa de migração será retomada automaticamente. Caso contrário, a tarefa falhará.
ImportanteO valor de Retry Time for Other Issues deve ser menor que o valor de Retry Time for Failed Connections.
Enable Throttling for Full Data Migration
Durante a migração completa, o DTS consome recursos de leitura e gravação nos bancos de dados de origem e de destino, o que pode aumentar a carga do banco de dados. Se necessário, ative o limitador de taxa para a tarefa de migração completa. Defina Queries per second (QPS) to the source database, RPS of Full Data Migration e Data migration speed for full migration (MB/s) para reduzir a carga no banco de dados de destino.
NotaEste item de configuração está disponível apenas se você selecionar Full Data Migration para Migration Types.
Também é possível adjust the full migration speed após a instância de migração estar em execução.
Enable Throttling for Incremental Data Migration
Se necessário, também é possível definir limites de velocidade para a tarefa de migração incremental. Defina RPS of Incremental Data Migration e Data migration speed for incremental migration (MB/s) para reduzir a carga no banco de dados de destino.
NotaEste item de configuração está disponível apenas se você selecionar Incremental Data Migration para Migration Types.
Também é possível adjust the incremental migration speed após a instância de migração estar em execução.
Environment Tag
Selecione uma tag de ambiente para identificar a instância com base nas necessidades do seu negócio. Este exemplo não requer uma tag.
Configure ETL
Escolha se deseja habilitar o recurso de extração, transformação e carregamento (ETL). Para mais informações, consulte What is ETL? Valores válidos:
-
Yes: Habilita o recurso ETL. Insira instruções de processamento de dados no editor de código. Para mais informações, consulte Configure ETL in a data migration or data synchronization task.
-
No: Desabilita o recurso ETL.
Monitoring and Alerting
Selecione se deseja definir alertas e receber notificações de alerta com base nas necessidades do seu negócio.
No: Não define um alerta.
Yes: Configure alertas definindo um alert threshold e alert notifications. Se uma migração falhar ou a latência exceder o limiar, o sistema enviará uma notificação de alerta.
-
Clique em Next: Data Validation para configurar uma tarefa de validação de dados.
Para mais informações sobre o recurso de validação de dados, consulte Configure data validation.
-
-
Salve a tarefa e execute uma pré-verificação.
Para visualizar os parâmetros de configuração desta instância ao chamar a operação de api, passe o ponteiro sobre o botão Next: Save Task Settings and Precheck e clique em Preview OpenAPI parameters na dica que aparecer.
Se não precisar visualizar ou já tiver terminado de visualizar os parâmetros da api, clique em Next: Save Task Settings and Precheck na parte inferior da página.
NotaAntes do início da tarefa de migração, o DTS realiza uma pré-verificação. A tarefa só inicia após passar na pré-verificação.
Se a pré-verificação falhar, clique em View Details ao lado do item de verificação com falha, corrija o problema com base no aviso e execute a pré-verificação novamente.
-
Se um aviso for relatado durante a pré-verificação:
Para itens de verificação que não podem ser ignorados, clique em View Details ao lado do item com falha, corrija o problema com base no aviso e execute a pré-verificação novamente.
Para itens de verificação que podem ser ignorados, clique em Confirm Alert Details, Ignore, OK e Precheck Again para pular o item de alerta e executar a pré-verificação novamente. Se optar por ignorar um aviso, isso pode causar problemas como inconsistência de dados e representar riscos ao seu negócio.
-
Adquira uma instância.
Quando a Success Rate for 100%, clique em Next: Purchase Instance.
-
Na página Purchase, selecione a especificação de link para a instância de migração de dados. Para mais informações, consulte a tabela a seguir.
Categoria
Parâmetro
Descrição
New Instance Class
Resource Group Settings
Selecione o grupo de recursos ao qual a instância pertence. O valor padrão é default resource group. Para mais informações, consulte What is resource management?
Instance Class
O DTS fornece especificações de migração com diferentes níveis de desempenho. A especificação do link afeta a velocidade da migração. Selecione uma especificação com base no seu cenário de negócios. Para mais informações, consulte Data migration link specifications.
Após concluir a configuração, leia e selecione Data Transmission Service (Pay-as-you-go) Service Terms.
-
Clique em Buy and Start. Na caixa de diálogo OK que aparece, clique em OK.
Visualize o progresso da tarefa de migração na página de lista Data Migration Tasks.
NotaSe a tarefa de migração não incluir migração incremental, ela será interrompida automaticamente após a conclusão da migração completa. Após a interrupção da tarefa, seu Status muda para Completed.
Se a tarefa de migração incluir migração incremental, ela não será interrompida automaticamente. A tarefa de migração incremental continua em execução. Enquanto a tarefa de migração incremental estiver em execução, o Status da tarefa será Running.