Configurar o tempo de execução da integração Azure-SSIS para continuidade de negócios e recuperação de desastres (BCDR)

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Gorjeta

Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo-em-um para empresas. O Microsoft Fabric abrange tudo, desde a movimentação de dados até ciência de dados, análises em tempo real, business intelligence e relatórios. Saiba como iniciar uma nova avaliação gratuitamente!

O Banco de Dados SQL/Instância Gerenciada do Azure e o SQL Server Integration Services (SSIS) no Azure Data Factory (ADF) ou Synapse Pipelines podem ser combinados como a solução recomendada de plataforma como serviço (PaaS) para migração do SQL Server. Você pode implantar seus projetos SSIS no banco de dados de catálogo do SSIS (SSISDB) hospedado pelo Banco de Dados SQL/Instância Gerenciada do Azure e executar seus pacotes SSIS no tempo de execução de integração (IR) do Azure SSIS no ADF ou Synapse Pipelines.

Para continuidade de negócios e recuperação de desastres (BCDR), o Banco de Dados SQL/Instância Gerenciada do Azure pode ser configurado com um grupo de replicação geográfica/failover, onde o SSISDB em uma região primária do Azure com acesso de leitura-gravação (função primária) será replicado continuamente para uma região secundária com acesso somente leitura (função secundária). Quando ocorre um desastre na região primária, um failover será acionado, onde os SSISDBs primário e secundário trocarão de funções.

Para BCDR, você também pode configurar um par de IR SSIS do Azure em espera dupla que funciona em sincronia com o grupo de failover do Banco de Dados SQL/Instância Gerenciada do Azure. Isso permite que você tenha um par de IRs do Azure-SSIS em execução que, a qualquer momento, apenas um pode acessar o SSISDB primário para buscar e executar pacotes, bem como gravar logs de execução de pacotes (função principal), enquanto o outro só pode fazer o mesmo para pacotes implantados em outro lugar, por exemplo, em Arquivos do Azure (função secundária). Quando o failover do SSISDB ocorre, os IRs primários e secundários do Azure-SSIS também trocarão de funções e, se ambos estiverem em execução, haverá um tempo de inatividade quase zero.

Este artigo descreve como configurar o IR do Azure-SSIS com o grupo de failover do Banco de Dados SQL/Instância Gerenciada do Azure para BCDR.

Configurar um par de IR Azure-SSIS em espera dupla com o grupo de failover do Banco de Dados SQL do Azure

Para configurar um par de IR Azure-SSIS em espera dupla que funcione em sincronia com o grupo de failover do Banco de Dados SQL do Azure, conclua as etapas a seguir.

  1. Usando a interface do usuário do portal do Azure/ADF, você pode criar um novo IR do Azure-SSIS com seu servidor primário do Banco de Dados SQL do Azure para hospedar o SSISDB na região primária. Se você tiver um IR do Azure-SSIS existente que já esteja anexado ao SSIDB hospedado pelo seu servidor primário do Banco de Dados SQL do Azure e ainda estiver em execução, será necessário pará-lo primeiro para reconfigurá-lo. Este será o seu IR principal do Azure-SSIS.

    Ao selecionar para usar o SSISDB na página Configurações de implantação do painel de configuração do tempo de execução de integração, marque também a caixa de seleção Usar par de tempo de execução de integração Azure-SSIS em espera dupla com failover de SSISDB. Para Nome do par de espera dupla, insira um nome para identificar seu par de IRs primários e secundários do Azure-SSIS. Quando você concluir a criação do IR principal do Azure-SSIS, ele será iniciado e anexado a um SSISDB primário que será criado em seu nome com acesso de leitura-gravação. Se você acabou de reconfigurá-lo, você precisa reiniciá-lo.

  2. Usando o portal do Azure, você pode verificar se o SSISDB primário foi criado na página Visão geral do seu servidor primário do Banco de dados SQL do Azure. Depois de criado, você pode criar um grupo de failover para seus servidores primários e secundários do Banco de Dados SQL do Azure e adicionar SSISDB a ele na página Grupos de failover. Depois que o grupo de failover for criado, você poderá verificar se o SSISDB primário foi replicado para um secundário com acesso somente leitura na página Visão geral do servidor secundário do Banco de Dados SQL do Azure.

  3. Usando a interface do usuário do portal do Azure/ADF, você pode criar outro IR do Azure-SSIS com seu servidor secundário do Banco de Dados SQL do Azure para hospedar o SSISDB na região secundária. Este será o seu IR secundário do Azure-SSIS. Para obter BCDR completo, certifique-se de que todos os recursos dos quais ele depende também sejam criados na região secundária, por exemplo, Armazenamento do Azure para armazenar scripts/arquivos de configuração personalizados, ADF para orquestração/agendamento de execuções de pacotes, etc.

    Ao selecionar para usar o SSISDB na página Configurações de implantação do painel de configuração do tempo de execução de integração, marque também a caixa de seleção Usar par de tempo de execução de integração Azure-SSIS em espera dupla com failover de SSISDB. Para Nome do par de espera dupla, insira o mesmo nome para identificar seu par de IRs primários e secundários do Azure-SSIS. Quando você concluir a criação do IR secundário do Azure-SSIS, ele será iniciado e anexado ao SSISDB secundário.

  4. Se você quiser ter um tempo de inatividade quase zero quando o failover do SSISDB ocorrer, mantenha ambos os IRs do Azure-SSIS em execução. Somente o IR principal do Azure-SSIS pode acessar o SSISDB primário para buscar e executar pacotes, bem como gravar logs de execução de pacotes, enquanto o IR secundário do Azure-SSIS só pode fazer o mesmo para pacotes implantados em outro lugar, por exemplo, em Arquivos do Azure.

    Se quiser minimizar seu custo de execução, você pode parar seu IR secundário do Azure-SSIS depois que ele for criado. Quando o failover do SSISDB ocorre, seus IRs primários e secundários do Azure-SSIS trocarão de funções. Se o IR principal do Azure-SSIS for interrompido, você precisará reiniciá-lo. Dependendo se é injetado em uma rede virtual e o método de injeção usado, levará dentro de 5 minutos ou cerca de 20 a 30 minutos para que ele funcione.

  5. Se você usar o ADF para orquestração/agendamento de execuções de pacotes, certifique-se de que todos os pipelines relevantes do ADF com atividades de Executar Pacote SSIS e gatilhos associados sejam copiados para o ADF secundário com os gatilhos inicialmente desabilitados. Quando o failover do SSISDB ocorre, você precisa habilitá-los.

  6. Você pode testar seu grupo de failover do Banco de Dados SQL do Azure e verificar na página de monitoramento de IR do Azure-SSIS no portal do ADF se seus IRs primários e secundários do Azure-SSIS trocaram de funções.

Configurar um par de IR Azure-SSIS em espera dupla com o grupo de failover da Instância Gerenciada SQL do Azure

Para configurar um par de IR Azure-SSIS em espera dupla que funcione em sincronia com o grupo de failover da Instância Gerenciada SQL do Azure, conclua as etapas a seguir.

  1. Usando o portal do Azure, você pode criar um grupo de failover para suas Instâncias Gerenciadas SQL do Azure primárias e secundárias na página Grupos de failover da sua Instância Gerenciada SQL do Azure principal.

  2. Usando a interface do usuário do portal do Azure/ADF, você pode criar um novo IR do Azure-SSIS com sua Instância Gerenciada SQL do Azure principal para hospedar o SSISDB na região primária. Se você tiver um IR do Azure-SSIS existente que já esteja anexado ao SSIDB hospedado pela sua Instância Gerenciada SQL do Azure principal e ainda estiver em execução, será necessário pará-lo primeiro para reconfigurá-lo. Este será o seu IR principal do Azure-SSIS.

    Ao selecionar para usar o SSISDB na página Configurações de implantação do painel de configuração do tempo de execução de integração, marque também a caixa de seleção Usar par de tempo de execução de integração Azure-SSIS em espera dupla com failover de SSISDB. Para Nome do par de espera dupla, insira um nome para identificar seu par de IRs primários e secundários do Azure-SSIS. Quando você concluir a criação do IR principal do Azure-SSIS, ele será iniciado e anexado a um SSISDB primário que será criado em seu nome com acesso de leitura-gravação. Se você acabou de reconfigurá-lo, você precisa reiniciá-lo. Você também pode verificar se o SSISDB primário foi replicado para um secundário com acesso somente leitura na página Visão geral da sua instância gerenciada SQL do Azure secundária.

  3. Usando a interface do usuário do portal do Azure/ADF, você pode criar outro IR do Azure-SSIS com sua Instância Gerenciada SQL do Azure secundária para hospedar o SSISDB na região secundária. Este será o seu IR secundário do Azure-SSIS. Para obter BCDR completo, certifique-se de que todos os recursos dos quais ele depende também sejam criados na região secundária, por exemplo, Armazenamento do Azure para armazenar scripts/arquivos de configuração personalizados, ADF para orquestração/agendamento de execuções de pacotes, etc.

    Ao selecionar para usar o SSISDB na página Configurações de implantação do painel de configuração do tempo de execução de integração, marque também a caixa de seleção Usar par de tempo de execução de integração Azure-SSIS em espera dupla com failover de SSISDB. Para Nome do par de espera dupla, insira o mesmo nome para identificar seu par de IRs primários e secundários do Azure-SSIS. Quando você concluir a criação do IR secundário do Azure-SSIS, ele será iniciado e anexado ao SSISDB secundário.

  4. A Instância Gerenciada SQL do Azure pode proteger dados confidenciais em bancos de dados, como SSISDB, criptografando-os usando a Chave Mestra de Banco de Dados (DMK). O próprio DMK, por sua vez, é criptografado usando a Chave Mestra de Serviço (SMK) por padrão. Desde setembro de 2021, o SMK é replicado da sua Instância Gerenciada SQL do Azure principal para a secundária durante a criação do grupo de failover. Se o seu grupo de failover foi criado antes disso, exclua todos os bancos de dados de usuário, incluindo SSISDB, da sua Instância Gerenciada SQL do Azure secundária e recrie seu grupo de failover.

  5. Se você quiser ter um tempo de inatividade quase zero quando o failover do SSISDB ocorrer, mantenha ambos os IRs do Azure-SSIS em execução. Somente o IR principal do Azure-SSIS pode acessar o SSISDB primário para buscar e executar pacotes, bem como gravar logs de execução de pacotes, enquanto o IR secundário do Azure-SSIS só pode fazer o mesmo para pacotes implantados em outro lugar, por exemplo, em Arquivos do Azure.

    Se quiser minimizar seu custo de execução, você pode parar seu IR secundário do Azure-SSIS depois que ele for criado. Quando o failover do SSISDB ocorre, seus IRs primários e secundários do Azure-SSIS trocarão de funções. Se o IR principal do Azure-SSIS for interrompido, você precisará reiniciá-lo. Dependendo se é injetado em uma rede virtual e o método de injeção usado, levará dentro de 5 minutos ou cerca de 20 a 30 minutos para que ele funcione.

  6. Se você usar o Agente de Instância Gerenciada SQL do Azure para orquestração/agendamento de execuções de pacotes, certifique-se de que todos os trabalhos SSIS relevantes com suas etapas de trabalho e agendas associadas sejam copiados para sua Instância Gerenciada SQL do Azure secundária com as agendas inicialmente desabilitadas. Usando o SSMS, conclua as etapas a seguir.

    1. Para cada trabalho SSIS, clique com o botão direito do mouse e selecione os itens de menu suspenso Trabalho de script como, CRIAR para e Nova janela do Editor de Consultas para gerar seu script.

      Generate SSIS job script

    2. Para cada script de trabalho SSIS gerado, localize o comando para executar sp_add_job o procedimento armazenado e modifique/remova a atribuição de valor ao @owner_login_name argumento, conforme necessário.

    3. Para cada script de trabalho SSIS atualizado, execute-o em sua Instância Gerenciada SQL do Azure secundária para copiar o trabalho com suas etapas de trabalho e agendas associadas.

    4. Usando o script a seguir, crie um novo trabalho T-SQL para habilitar/desabilitar agendas de trabalho SSIS com base na função SSISDB primária/secundária, respectivamente, em suas instâncias gerenciadas SQL do Azure primárias e secundárias e execute-as regularmente. Quando o failover do SSISDB ocorre, as agendas de trabalho do SSIS que foram desabilitadas serão habilitadas e vice-versa.

      IF (SELECT Top 1 role_desc FROM SSISDB.sys.dm_geo_replication_link_status WHERE partner_database = 'SSISDB') = 'PRIMARY'
         BEGIN
            IF (SELECT enabled FROM msdb.dbo.sysschedules WHERE schedule_id = <ScheduleID>) = 0
               EXEC msdb.dbo.sp_update_schedule @schedule_id = <ScheduleID >, @enabled = 1
         END
      ELSE
         BEGIN
            IF (SELECT enabled FROM msdb.dbo.sysschedules WHERE schedule_id = <ScheduleID>) = 1
               EXEC msdb.dbo.sp_update_schedule @schedule_id = <ScheduleID >, @enabled = 0
         END
      
  7. Se você usar o ADF para orquestração/agendamento de execuções de pacotes, certifique-se de que todos os pipelines relevantes do ADF com atividades de Executar Pacote SSIS e gatilhos associados sejam copiados para o ADF secundário com os gatilhos inicialmente desabilitados. Quando o failover do SSISDB ocorre, você precisa habilitá-los.

  8. Você pode testar seu grupo de failover da Instância Gerenciada SQL do Azure e verificar na página de monitoramento de IR do Azure-SSIS no portal do ADF se seus IRs primários e secundários do Azure-SSIS trocaram de função.

Anexar um novo IR do Azure-SSIS ao SSISDB existente hospedado pelo Banco de Dados SQL do Azure/Instância Gerenciada

Se ocorrer um desastre e afetar o IR existente do Azure-SSIS, mas não o Banco de Dados SQL/Instância Gerenciada do Azure na mesma região, você poderá substituí-lo por um novo em outra região. Para anexar seu SSISDB existente hospedado pelo Banco de Dados SQL/Instância Gerenciada do Azure a um novo IR do Azure-SSIS, conclua as etapas a seguir.

  1. Se o IR existente do Azure-SSIS ainda estiver em execução, você precisará interrompê-lo primeiro usando a interface do usuário do portal do Azure/ADF ou o Azure PowerShell. Se o desastre também afetar o ADF na mesma região, você pode pular esta etapa.

  2. Usando o SSMS, execute o seguinte comando para SSISDB em seu Banco de Dados SQL/Instância Gerenciada do Azure para atualizar os metadados que permitirão conexões de seu novo IR ADF/Azure-SSIS.

    EXEC [catalog].[failover_integration_runtime] @data_factory_name = 'YourNewADF', @integration_runtime_name = 'YourNewAzureSSISIR'
    
  3. Usando a interface do usuário do portal do Azure/ADF ou o Azure PowerShell, crie seu novo IR ADF/Azure-SSIS chamado YourNewADF/YourNewAzureSSISIR, respectivamente, em outra região. Se você usar a interface do usuário do portal do Azure/ADF, poderá ignorar o erro de conexão de teste na página Configurações de implantação do painel de configuração do tempo de execução da integração.

Você pode considerar estas outras opções de configuração para seu IR do Azure-SSIS: