Temos um ambiente SQL Server 2014, Enterprise, clusterizado de 2 nós para nosso data warehouse. Armazenamento, rede e servidores são todos de alto desempenho (1 TB de memória, 32 núcleos de CPU por nó, todos SSD)
Estamos tentando descobrir onde colocar o próprio SSIS. Com base na documentação da Microsoft, não é recomendado que ele seja clusterizado e, portanto, não deve estar nos 2 nós (embora eu o tenha instalado com as instâncias, não precisamos usar se de lá pudermos desabilitar o Por outro lado, não queremos gastar dinheiro no licenciamento de 8 vCPUs para colocá-lo em um servidor disponível no mesmo ecossistema (usado para um ETL proprietário do fornecedor).
Quais são as melhores práticas e recomendações sobre como/onde instalar o SSIS para um ambiente de banco de dados clusterizado do SQL Server?
Obrigado, Wes
EDIT: A Microsoft discute isso aqui: https://learn.microsoft.com/en-us/sql/integration-services/service/integration-services-ssis-in-a-cluster , mas não aborda a abordagem recomendada como um alternativo.
O Catálogo do SSIS e o SQL Server Agent fazem parte da Instância de Cluster de Failover e fazem failover quando ocorre o failover de uma Instância de Cluster de Failover. Portanto, minha recomendação é armazenar todos os seus pacotes no catálogo do SSIS e agendá-los todos com o SQL Agent. E simplesmente ignore o Serviço SSIS completamente.
Consulte "Os tópicos nesta seção discutem o serviço Integration Services, um serviço do Windows para gerenciar pacotes do Integration Services. Esse serviço não é necessário para criar, salvar e executar pacotes do Integration Services. O SQL Server 2012 oferece suporte ao serviço Integration Services para compatibilidade com versões anteriores com versões anteriores do Integration Services. " https://learn.microsoft.com/en-us/sql/integration-services/service/integration-services-service-ssis-service
Conseguimos fazer o SSIS funcionar no cluster. Colocamos o recurso SSIS no mesmo cluster do SQL Server, adicionamos permissões DCOM e pronto. O único item restante é, quando no SSMS, não podemos expandir o MSDB. Parece ser o problema de autenticação de salto duplo informando 'Falha no login para o usuário 'NT Autroity\Anonymous Logon'
Embora não tenha suporte oficial, Matt Masson publicou um ótimo método para utilizar o SSIS em um ambiente SQL 2012 ou 2014 sempre ativo.
https://blogs.msdn.microsoft.com/mattm/2012/09/19/ssis-with-alwayson/
Para resumir seus pontos: O banco de dados SSISDB pode fazer failover muito bem sem modificações, mas uma vez em um novo nó falhará ao executar pacotes devido à criptografia sendo definida pela chave mestra de serviço errada.
Usar um trabalho para detectar automaticamente os failovers e, em seguida, criptografar novamente o banco de dados funciona muito bem para manter o SSISDB com o primário de trabalho.
Existem algumas ressalvas para essa abordagem. Ou seja, ao aplicar o patch, você DEVE remover o SSISDB do AG e removê-lo totalmente dos nós secundários (não apenas o deixe em um estado de restauração ou os scripts de atualização do banco de dados do sistema falharão e deixarão sua instância em um local complicado para recuperar). Quando o patch estiver concluído, você poderá adicioná-lo novamente ao AG.
Eu tenho usado esse método nos últimos 3 anos em um grupo de disponibilidade sempre em várias sub-redes e não tive problemas.
O SQL Server 2016 permite que você coloque o SSISDB em um Grupo de Disponibilidade AlwaysOn.