Configurar o Azure-SSIS Integration Runtime para BCDR (continuidade dos negócios e recuperação de desastres)

Aplica-se a: Azure Data Factory Azure Synapse Analytics

Dica

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

A Instância Gerenciada/Banco de Dados SQL do Azure e o SSIS (SQL Server Integration Services) no ADF (Azure Data Factory) ou nos Pipelines do Synapse podem ser combinados como a solução de PaaS (Plataforma como Serviço) recomendada para a migração do SQL Server. Você pode implantar os projetos SSIS no banco de dados de catálogo SSIS (SSISDB) hospedado pela Instância Gerenciada/Banco de Dados SQL do Azure e executar os pacotes SSIS no IR (Integration Runtime) do Azure SSIS no ADF ou nos Pipelines do Synapse.

Para BCDR, a Instância Gerenciada do Banco de Dados SQL do Azure pode ser configurada com um grupo de failover/ replicação geográfica, no qual 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 ocorrer um desastre na região primária, um failover será disparado, Nele o SSISDBs primário e o secundário trocarão de funções.

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

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

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

Para configurar um par de Azure-SSIS IR em espera dual 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 Azure-SSIS IR com seu servidor do Banco de Dados SQL do Microsoft Azure primário para hospedar o SSISDB na região primária. Se você tiver um Azure-SSIS IR existente já anexado ao SSIDB hospedado pelo servidor do Banco de Dados SQL do Azure primário e ele ainda estiver em execução, será necessário interrompê-lo para reconfigurá-lo. Este será o seu Azure-SSIS IR primário.

    Ao escolher usar o SSISDB na página Configurações de implantação no painel Instalação do Integration Runtime, marque também a caixa de seleção Usar par de Azure-SSIS Integration Runtime em espera dual com failover do SSISDB. Em Nome do par em espera dual, insira um nome para identificar seus Azure-SSIS IRs primário e secundário. Quando concluir a criação do seu Azure-SSIS IR primário, 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, será necessário reiniciá-lo.

  2. Com o portal do Azure, você pode verificar se o SSISDB primário foi criado na página Visão geral do seu servidor do banco de dados SQL primário. Depois, você pode criar um grupo de failover para seus servidores do Banco de Dados SQL do Microsoft Azure primários e secundários e adicionar o SSISDB a ele na página Grupos de failover. Com a criação do grupo de failover, 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 seu servidor do banco de dados SQL secundário.

  3. Usando a interface do usuário do portal do Azure/ADF, você pode criar outro Azure-SSIS IR com seu servidor de banco de dados SQL secundário para hospedar o SSISDB na região secundária. Este será o seu Azure-SSIS IR secundário. Para o BCDR completo, verifique se todos os recursos dos quais ele depende também são criados na região secundária, por exemplo, o Armazenamento do Azure para guardar arquivos/scripts de instalação personalizada, ADF para execuções de pacote de orquestração/agendamento etc.

    Ao escolher usar o SSISDB na página Configurações de implantação no painel Instalação do Integration Runtime, marque também a caixa de seleção Usar par de Azure-SSIS Integration Runtime em espera dual com failover do SSISDB. Para Nome de par em espera dual, insira o mesmo nome para identificar o Azure-SSIS IR primário e o secundário. Ao concluir a criação do Azure-SSIS IR secundário, ele será iniciado e anexado ao SSISDB secundário.

  4. Caso queira que o tempo de inatividade seja quase zero em situações de failover do SSISDB, mantenha os dois Azure-SSIS IRs em execução. Somente o Azure-SSIS IR primário pode acessar o SSISDB primário para buscar e executar pacotes, bem como gravar logs de execução de pacote, enquanto o Azure-SSIS IR secundário só pode fazer o mesmo para pacotes implantados em outro lugar, por exemplo, no Arquivos do Azure.

    Se quiser minimizar o custo operacional, poderá interromper o Azure-SSIS IR secundário depois que ele for criado. Em caso de failover do SSISDB, os Azure-SSIS IRs primário e secundário trocarão de funções. Se o Azure-SSIS IR primário for interrompido, você precisará reiniciá-lo. Dependendo de ser injetado em uma rede virtual e do método de injeção usado, ele levará em 5 minutos ou cerca de 20-30 minutos para ser executado.

  5. Caso use o ADF para execuções de pacote de orquestração/agendamento, verifique se todos os pipelines relevantes do ADF com as atividades executar pacote SSIS e os gatilhos associados foram copiados para o ADF secundário com os gatilhos inicialmente desabilitados. Em caso de failover do SSISDB, você precisa habilitá-los.

  6. Você pode testar o grupo de failover do banco de dados SQL do Azure e verificar a página de monitoramento do Azure-SSIS IR no portal do ADF se o seus Azure-SSIS IRS principal e secundário estão com as funções trocadas.

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

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

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

  2. Usando a interface do usuário do portal do Azure/ADF, você pode criar um novo Azure-SSIS IR com a Instância Gerenciada de SQL primária para hospedar o SSISDB na região primária. Caso tenha um Azure-SSIS IR existente já anexado ao SSIDB hospedado pelo servidor da Instância Gerenciada de SQL do Azure primária e ele ainda estiver em execução, será necessário interrompê-lo para reconfigurá-lo. Este será o seu Azure-SSIS IR primário.

    Ao escolher usar o SSISDB na página Configurações de implantação no painel Instalação do Integration Runtime, marque também a caixa de seleção Usar par de Azure-SSIS Integration Runtime em espera dual com failover do SSISDB. Em Nome do par em espera dual, insira um nome para identificar seus Azure-SSIS IRs primário e secundário. Quando concluir a criação do seu Azure-SSIS IR primário, 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, será necessário 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 de SQL secundária.

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

    Ao escolher usar o SSISDB na página Configurações de implantação no painel Instalação do Integration Runtime, marque também a caixa de seleção Usar par de Azure-SSIS Integration Runtime em espera dual com failover do SSISDB. Para Nome de par em espera dual, insira o mesmo nome para identificar o Azure-SSIS IR primário e o secundário. Ao concluir a criação do Azure-SSIS IR secundário, ele será iniciado e anexado ao SSISDB secundário.

  4. A Instância Gerenciada de SQL do Azure pode proteger dados confidenciais em bancos de dado, como o SSISDB, criptografando-os por meio da DMK (chave mestra de banco de dados). A própria DMK, por sua vez, é criptografada usando a SMK (chave mestra de serviço) por padrão. Desde setembro de 2021, o SMK é replicado do seu Azure SQL primário Instância Gerenciada para o secundário durante a criação do grupo de failover. Se o grupo de failover tiver sido criado antes, exclua todos os bancos de dados de usuário, incluindo o SSISDB, do seu Azure SQL secundário Instância Gerenciada e recrie o grupo de failover.

  5. Caso queira que o tempo de inatividade seja quase zero em situações de failover do SSISDB, mantenha os dois Azure-SSIS IRs em execução. Somente o Azure-SSIS IR primário pode acessar o SSISDB primário para buscar e executar pacotes, bem como gravar logs de execução de pacote, enquanto o Azure-SSIS IR secundário só pode fazer o mesmo para pacotes implantados em outro lugar, por exemplo, no Arquivos do Azure.

    Se quiser minimizar o custo operacional, poderá interromper o Azure-SSIS IR secundário depois que ele for criado. Em caso de failover do SSISDB, os Azure-SSIS IRs primário e secundário trocarão de funções. Se o Azure-SSIS IR primário for interrompido, você precisará reiniciá-lo. Dependendo de ser injetado em uma rede virtual e do método de injeção usado, ele levará em 5 minutos ou cerca de 20-30 minutos para ser executado.

  6. Ao usar o agente do Azure SQL instância gerenciada para execuções de pacote de orquestração/agendamento, certifique-se de que todos os trabalhos relevantes do SSIS com suas etapas e agendas associadas sejam copiados para seu Instância Gerenciada de SQL secundária com as agendas inicialmente desabilitadas. Usando o SSMS, conclua as etapas a seguir.

    1. Para cada trabalho do SSIS, clique com o botão direito do mouse e selecione os itens de menu suspenso Trabalho de script como, CRIAR para e Janela do editor de consultas novas para gerar seu script.

      Generate SSIS job script

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

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

    4. Usando o script a seguir, crie um novo trabalho do T-SQL para habilitar/desabilitar agendas de trabalho do SSIS com base na função do SSISDB primário/secundário, respectivamente, nas Instâncias Gerenciadas de SQL primária e secundária e execute-as regularmente. Quando ocorre o failover do SSISDB, as agendas de trabalho do SSIS que foram desabilitadas sã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. Caso use o ADF para execuções de pacote de orquestração/agendamento, verifique se todos os pipelines relevantes do ADF com as atividades executar pacote SSIS e os gatilhos associados foram copiados para o ADF secundário com os gatilhos inicialmente desabilitados. Em caso de failover do SSISDB, você precisa habilitá-los.

  8. Você pode testar o grupo de failover da Instância Gerenciada de SQL do Azure e verificar a página de monitoramento do Azure-SSIS IR no portal do ADF se o seus Azure-SSIS IRS principal e secundário estão com as funções trocadas.

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

Caso ocorra um desastre que afeta o Azure-SSIS IR existente, mas não a Instância Gerenciada do Banco de Dados SQL do Azure na mesma região, é possível substituí-lo por um novo em outra região. Para anexar o SSISDB existente hospedado pela Instância Gerenciada do Banco de Dados SQL do Azure a um novo Azure-SSIS IR, conclua as etapas a seguir.

  1. Se o Azure-SSIS IR existente 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 impactar o ADF na mesma região, ignore esta etapa.

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

    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 ADF/Azure-SSIS IR chamados 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 teste de conexão na página Configurações de implantação do painel Instalação do Integration Runtime.

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