Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a: SQL Server em Windows
Um grupo de disponibilidade Always On é uma coleção predefinida de bancos de dados relacionais do SQL Server que fazem failover juntos quando as condições disparam um failover em qualquer banco de dados, redirecionando solicitações para um banco de dados espelhado em outra instância no mesmo grupo de disponibilidade. Se você estiver usando grupos de disponibilidade como sua solução de alta disponibilidade, poderá usar um banco de dados nesse grupo como uma fonte de dados em uma solução tabular ou multidimensional do Analysis Services. Todas as seguintes operações do Analysis Services funcionam conforme o esperado ao usar um banco de dados de disponibilidade: processamento ou importação de dados, consulta direta de dados relacionais (usando o armazenamento ROLAP ou o modo DirectQuery) e write-back.
O processamento e a consulta são cargas de trabalho somente leitura. Você pode melhorar o desempenho descarregando essas cargas de trabalho para uma réplica secundária legível. Configuração adicional é necessária para este cenário. Use a lista de verificação neste tópico para garantir que você siga todas as etapas.
Pré-requisitos
Você deve ter um logon do SQL Server em todas as réplicas. Você deve ser um administrador de sistemas para configurar grupos de disponibilidade, ouvintes e bancos de dados, mas os usuários só precisam de permissões de db_datareader para acessar o banco de dados de um cliente do Analysis Services.
Use um provedor de dados que ofereça suporte ao protocolo TDS (fluxo de dados tabulares) versão 7.4 ou mais recente, como o SQL Server Native Client 11.0 ou o Provedor de Dados para SQL Server no .NET Framework 4.02.
(Para cargas de trabalho somente leitura). A função de réplica secundária deve ser configurada para conexões somente leitura, o grupo de disponibilidade deve ter uma lista de roteamento e a conexão na fonte de dados do Analysis Services deve especificar o ouvinte do grupo de disponibilidade. As instruções são fornecidas neste tópico.
Lista de verificação: use uma réplica secundária para operações somente leitura
A menos que sua solução do Analysis Services inclua write-back, você pode configurar uma conexão de fonte de dados para usar uma réplica secundária legível. Se você tiver uma conexão de rede rápida, a réplica secundária terá latência de dados muito baixa, fornecendo dados quase idênticos à réplica primária. Usando a réplica secundária para operações do Analysis Services, você pode reduzir a contenção de leitura-gravação na réplica primária e obter uma melhor utilização das réplicas secundárias em seu grupo de disponibilidade.
Por padrão, tanto o acesso de leitura-gravação quanto o acesso de intenção de leitura são permitidos para a réplica primária e nenhuma conexão é permitida para réplicas secundárias. É necessária uma configuração adicional para configurar uma conexão de cliente somente leitura com uma réplica secundária. A configuração requer a definição de propriedades na réplica secundária e a execução de um script T-SQL que define uma lista de roteamento somente leitura. Use os procedimentos a seguir para garantir que você executou ambas as etapas.
Observação
As etapas a seguir pressupõem um grupo de disponibilidade Always On e bancos de dados existentes. Se você estiver configurando um novo grupo, use o Assistente para Novo Grupo de Disponibilidade para criar o grupo e ingressar nos bancos de dados. O assistente verifica os pré-requisitos, fornece orientação para cada etapa e executa a sincronização inicial. Para obter mais informações, consulte Usar o Assistente de Grupo de Disponibilidade (SQL Server Management Studio).
Etapa 1: Configurar o acesso em uma réplica de disponibilidade
No Pesquisador de Objetos, conecte-se à instância do servidor que hospeda a réplica primária e expanda a árvore do servidor.
Observação
Essas etapas são executadas em Configurar Read-Only acesso em uma réplica de disponibilidade (SQL Server), que fornece informações adicionais e instruções alternativas para executar essa tarefa.
Expanda o nó Always On de Alta Disponibilidade e o nó de Grupos de Disponibilidade.
Clique no grupo de disponibilidade cuja réplica você deseja alterar. Expanda Réplicas de disponibilidade.
Clique com o botão direito do mouse na réplica secundária e clique em Propriedades.
Na caixa de diálogo Propriedades da Réplica de Disponibilidade , altere o acesso à conexão para a função secundária, da seguinte maneira:
Na lista suspensa secundária legível , selecione Somente intenção de leitura.
Na lista suspensa Conexões na função principal , selecione Permitir todas as conexões. Este é o padrão.
Opcionalmente, na lista suspensa Modo de disponibilidade , selecione Confirmação síncrona. Esta etapa não é necessária, mas defini-la garante que haja paridade de dados entre a réplica primária e secundária.
Essa propriedade também é um requisito para failover planejado. Se você quiser executar um failover manual planejado para fins de teste, defina Modo de disponibilidade como Confirmação síncrona para a réplica primária e secundária.
Etapa 2: Configurar o roteamento somente leitura
Conecte-se à réplica principal.
Observação
Essas etapas são executadas em Configurar Read-Only Roteamento para um Grupo de Disponibilidade (SQL Server), que fornece informações adicionais e instruções alternativas para executar essa tarefa.
Abra uma janela de consulta e cole no script a seguir. Esse script faz três coisas: habilita conexões legíveis para uma réplica secundária (que está desativada por padrão), define a URL de roteamento somente leitura e cria a lista de roteamento que prioriza como as solicitações de conexão são direcionadas. A primeira instrução, permitindo conexões legíveis, será redundante se você já tiver definido as propriedades no Management Studio, mas estiver incluída para integridade.
ALTER AVAILABILITY GROUP [AG1] MODIFY REPLICA ON N'COMPUTER01' WITH (SECONDARY_ROLE (ALLOW_CONNECTIONS = READ_ONLY)); ALTER AVAILABILITY GROUP [AG1] MODIFY REPLICA ON N'COMPUTER01' WITH (SECONDARY_ROLE (READ_ONLY_ROUTING_URL = N'TCP://COMPUTER01.contoso.com:1433')); ALTER AVAILABILITY GROUP [AG1] MODIFY REPLICA ON N'COMPUTER02' WITH (SECONDARY_ROLE (ALLOW_CONNECTIONS = READ_ONLY)); ALTER AVAILABILITY GROUP [AG1] MODIFY REPLICA ON N'COMPUTER02' WITH (SECONDARY_ROLE (READ_ONLY_ROUTING_URL = N'TCP://COMPUTER02.contoso.com:1433')); ALTER AVAILABILITY GROUP [AG1] MODIFY REPLICA ON N'COMPUTER01' WITH (PRIMARY_ROLE (READ_ONLY_ROUTING_LIST=('COMPUTER02','COMPUTER01'))); ALTER AVAILABILITY GROUP [AG1] MODIFY REPLICA ON N'COMPUTER02' WITH (PRIMARY_ROLE (READ_ONLY_ROUTING_LIST=('COMPUTER01','COMPUTER02'))); GOModifique o script, substituindo espaços reservados por valores válidos para sua implantação:
Substitua 'Computer01' pelo nome da instância do servidor que hospeda a réplica primária.
Substitua 'Computer02' pelo nome da instância do servidor que hospeda a réplica secundária.
Substitua 'contoso.com' pelo nome do seu domínio ou omita-o do script se todos os computadores estiverem no mesmo domínio. Mantenha o número da porta se o ouvinte estiver usando a porta padrão. A porta realmente usada pelo ouvinte está listada na página de propriedades do Management Studio.
Execute o script.
Em seguida, crie uma fonte de dados em um modelo do Analysis Services que use um banco de dados do grupo que você acabou de configurar.
Criar uma fonte de dados do Analysis Services usando um banco de dados de disponibilidade Always On
Esta seção explica como criar uma fonte de dados do Analysis Services que se conecta a um banco de dados em um grupo de disponibilidade. Você pode usar estas instruções para configurar uma conexão com uma réplica primária (padrão) ou uma réplica secundária legível que você configurou com base nas etapas de uma seção anterior. As definições de configuração Always On, além das propriedades de conexão definidas no cliente, determinarão se uma réplica primária ou secundária será usada.
No SQL Server Data Tools, em um projeto Modelo Multidimensional e de Mineração de Dados do Analysis Services, clique com o botão direito do mouse em Fontes de Dados e selecione Nova Fonte de Dados. Clique em Novo para criar uma nova fonte de dados.
Como alternativa, para um projeto de modelo tabular, clique no menu Modelo e, em seguida, clique em Importar da Fonte de Dados.
No Connection Manager, em Provider, escolha um provedor que ofereça suporte ao protocolo TDS (Tabular Data Stream). O SQL Server Native Client 11.0 dá suporte a esse protocolo.
No Gerenciador de Conexões, em Nome do Servidor, digite o nome do ouvinte do grupo de disponibilidade e escolha um banco de dados disponível no grupo.
O ouvinte do grupo de disponibilidade redireciona uma conexão de cliente para uma réplica primária para solicitações de leitura-gravação ou para uma réplica secundária se você especificar intenção de leitura na cadeia de conexão. Como as funções de réplica serão alteradas durante um failover (em que o primário se torna secundário e um secundário se torna primário), você sempre deve especificar o ouvinte para que a conexão do cliente seja redirecionada adequadamente.
Para determinar o nome do ouvinte do grupo de disponibilidade, você pode perguntar a um administrador de banco de dados ou conectar-se a uma instância no grupo de disponibilidade e exibir sua configuração de disponibilidade Always On.
Ainda no Gerenciador de Conexões, clique em Tudo no painel de navegação esquerdo para exibir a grade de propriedades do provedor de dados.
Defina a intenção do aplicativo como somente leitura se estiver configurando uma conexão de cliente somente leitura para uma réplica secundária. Caso contrário, mantenha o padrão READWRITE para redirecionar a conexão para a réplica primária.
Em Informações de Representação, selecione Usar um nome de usuário e senha específicos do Windows e insira uma conta de usuário de domínio do Windows que tenha um mínimo de permissões de db_datareader no banco de dados.
Não escolha Usar as credenciais do usuário atual ou Herdar. Você pode escolher Usar a conta de serviço, mas somente se essa conta tiver permissões de leitura no banco de dados.
Conclua a fonte de dados e feche o Assistente de Fonte de Dados.
Adicione MultiSubnetFailover=Yes à cadeia de conexão para fornecer deteção e conexão mais rápidas com o servidor ativo. Para obter mais informações sobre essa propriedade, consulte Suporte ao SQL Server Native Client para alta disponibilidade, recuperação de desastres.
Esta propriedade não é visível na grade de propriedades. Para adicionar a propriedade, clique com o botão direito do mouse na fonte de dados e escolha Exibir código. Adicionar
MultiSubnetFailover=Yesà cadeia de conexão.
A fonte de dados agora está definida. Agora você pode continuar a criar um modelo, começando com a exibição da fonte de dados ou, no caso de modelos tabulares, criando relações. Quando estiver em um ponto em que os dados devem ser recuperados do banco de dados de disponibilidade (por exemplo, quando estiver pronto para processar ou implantar a solução), você poderá testar a configuração para verificar se os dados são acessados a partir da réplica secundária.
Testar a configuração
Depois de configurar a réplica secundária e criar uma conexão de fonte de dados no Analysis Services, você pode confirmar se os comandos de processamento e consulta são redirecionados para a réplica secundária. Você também pode executar um failover manual planejado para verificar seu plano de recuperação para esse cenário.
Etapa 1: Confirmar se a conexão da fonte de dados foi redirecionada para a réplica secundária
Inicie o SQL Server Profiler e conecte-se à instância do SQL Server que hospeda a réplica secundária.
À medida que o rastreamento é executado, os eventos SQL:BatchStarting e SQL:BatchCompleting mostrarão as consultas emitidas pelo Analysis Services que estão sendo executadas na instância do mecanismo de banco de dados. Esses eventos são selecionados por padrão, então tudo o que você precisa fazer é iniciar o rastreamento.
No SQL Server Data Tools, abra o projeto ou solução do Analysis Services que contém uma conexão de fonte de dados que você deseja testar. Certifique-se de que a fonte de dados especifique o ouvinte do grupo de disponibilidade e não uma instância no grupo.
Este passo é importante. O roteamento para a réplica secundária não ocorrerá se você especificar um nome de instância do servidor.
Organize as janelas do aplicativo para que você possa exibir o SQL Server Profiler e o SQL Server Data Tools lado a lado.
Implante a solução e, quando ela for concluída, interrompa o rastreamento.
Na janela de rastreamento, você verá eventos do aplicativo Microsoft SQL Server Analysis Services. Você deve ver instruções SELECT que recuperam dados de um banco de dados na instância do servidor que hospeda a réplica secundária, provando que a conexão foi feita por meio do ouvinte para a réplica secundária.
Etapa 2: Executar um failover planejado para testar a configuração
No Management Studio, verifique as réplicas primária e secundária para garantir que ambas estejam configuradas para o modo de confirmação síncrona e sincronizadas no momento.
As etapas a seguir pressupõem que uma réplica secundária esteja configurada para confirmação síncrona.
Para verificar a sincronização, abra uma conexão com cada instância que hospeda as réplicas primária e secundária, expanda a pasta Bancos de Dados e verifique se o banco de dados tem (Sincronizado) e (Sincronização) anexados ao seu nome em cada réplica.
Observação
Essas etapas são executadas em Executar um failover manual planejado de um grupo de disponibilidade (SQL Server), que fornece informações adicionais e instruções alternativas para executar essa tarefa.
No SQL Server Profiler, inicie rastreamentos para cada réplica e exiba os rastreamentos lado a lado. Nas etapas a seguir, você comparará rastreamentos, confirmando que as consultas SQL usadas para processar ou consultar do Analysis Services alternam de uma réplica para outra.
Execute um comando de processamento ou consulta a partir do Analysis Services. Como você configurou a fonte de dados para uma conexão somente leitura, verá o comando ser executado na réplica secundária.
No Management Studio, conecte-se à réplica secundária.
Expanda o nó Always On de Alta Disponibilidade e o nó de Grupos de Disponibilidade.
Clique com o botão direito do rato no grupo de disponibilidade para realizar um failover e selecione o comando Failover. Isso inicia o Assistente de Grupo de Disponibilidade de Failover. Use o assistente para escolher qual réplica fazer a nova réplica primária.
Confirme se o failover foi bem-sucedido:
No Management Studio, expanda os grupos de disponibilidade para exibir as designações (primária) e (secundária). A instância que anteriormente era uma réplica primária agora deve ser uma réplica secundária.
Exiba o painel para determinar se algum problema de integridade foi detetado. Clique com o botão direito do mouse no grupo de disponibilidade e selecione Mostrar painel.
Aguarde um ou dois minutos para que o failover seja concluído no back-end.
Repita o comando de processamento ou consulta na solução Analysis Services e observe os rastreamentos lado a lado no SQL Server Profiler. Você deve ver evidências de processamento na outra instância, que agora é a nova réplica secundária.
O que acontece depois que ocorre um failover
Durante um failover, uma réplica secundária transita para a função primária e a réplica primária anterior transita para a função secundária. Todas as conexões de cliente são encerradas, a propriedade do ouvinte do grupo de disponibilidade é movida com a função de réplica primária para uma nova instância do SQL Server e o ponto de extremidade do ouvinte é vinculado aos endereços IP virtuais e às portas TCP da nova instância. Para obter mais informações, consulte Sobre o acesso de conexão de cliente a réplicas de disponibilidade (SQL Server).
Se ocorrer failover durante o processamento, o seguinte erro ocorrerá no Analysis Services no arquivo de log ou na janela de saída: "Erro OLE DB: erro OLE DB ou ODBC: falha de link de comunicação; 08S01; Provedor TPC: Uma conexão existente foi fechada à força pelo host remoto. ; 08S01."
Este erro deve ser resolvido se você esperar um minuto e tentar novamente. Se o grupo de disponibilidade estiver configurado corretamente para réplica secundária legível, o processamento será retomado na nova réplica secundária quando você tentar processar novamente.
Os erros persistentes são provavelmente devidos a um problema de configuração. Você pode tentar executar novamente o script T-SQL para resolver problemas com a lista de roteamento, URLs de roteamento somente leitura e intenção de leitura na réplica secundária. Você também deve verificar se a réplica primária permite todas as conexões.
Write-back ao usar um banco de dados de disponibilidade Always On
O write-back é um recurso do Analysis Services que oferece suporte à análise de hipóteses no Excel. Também é comumente usado para tarefas de orçamento e previsão em aplicativos personalizados.
O suporte para write-back requer uma conexão de cliente READWRITE. No Excel, se você tentar gravar novamente em uma conexão somente leitura, ocorrerá o seguinte erro: "Não foi possível recuperar dados da fonte de dados externa."
Se você configurou uma conexão para sempre acessar uma réplica secundária legível, agora deverá configurar uma nova conexão que use uma conexão READWRITE com a réplica primária.
Para fazer isso, crie uma fonte de dados adicional em um modelo do Analysis Services para dar suporte à conexão leitura-gravação. Ao criar a fonte de dados adicional, use o mesmo nome de ouvinte e banco de dados que você especificou na conexão somente leitura, mas em vez de modificar a intenção do aplicativo, mantenha o padrão que oferece suporte a conexões READWRITE. Agora você pode adicionar novas tabelas de fatos ou dimensões à exibição da fonte de dados baseada na fonte de dados de leitura-gravação e, em seguida, habilitar o write-back nas novas tabelas.
Ver também
Ouvintes de Grupos de Disponibilidade, Conectividade de Clientes e Failover de Aplicações (SQL Server)
Secundários Ativos: Réplicas Secundárias Legíveis (Grupos de Disponibilidade Always On)
Políticas Always On para Questões Operacionais com Grupos de Disponibilidade Always On (SQL Server)
Criar uma fonte de dados (SSAS Multidimensional)
Ativar Write-back de Dimensão