terça-feira, 8 de outubro de 2019

Monitorando AlwaysOn

Nos posts anteriores mostrei como configurar AlwaysOn Availability Groups (links abaixo), neste post vou mostrar como monitorar um ambiente de AlwaysOn.  As opções que irei mostrar neste post serem tanto para AlwaysOn Availability Groups quanto Read-scale Availability Group.


Links Configurando AlwaysOn Availability Groups:

O ambiente de AlwaysOn pode ser monitorado da interface gráfica ou por T-SQL, além de contadores no System Monitor.

Utilizando o SQL Server Management Studio no Object Explorer, temos acesso ao Dashboard do AlwaysOn, basta clicar com o botão direito do mouse no grupo em Availability Groups.


O Dashboard mostra todas as Réplicas e o Status de cada Banco de Dados.


Podemos acrescentar mais informações ao Dashboard, algumas bem úteis para avaliar a transferência das transações para as demais Réplicas, principalmente no modo de operação assíncrono.


Recomendo as duas colunas em destaque abaixo, para monitorar a fila de envio de transações para as Réplicas, além da fila de execução destas transações nas Réplicas.


Conseguimos obter informações similares utilizando T-SQL, acessando Views de sistema.

SELECT n.group_name as GrupoAlwaysOn,n.replica_server_name as Servidor,
db_name(drs.database_id) as BAnco,
drs.synchronization_state_desc as StatusSincronia,
drs.synchronization_health_desc as StatusAlwaysOn

FROM sys.dm_hadr_availability_replica_cluster_nodes n
join sys.dm_hadr_availability_replica_cluster_states cs on n.replica_server_name = cs.replica_server_name
join sys.dm_hadr_availability_replica_states rs on rs.replica_id = cs.replica_id
join sys.dm_hadr_database_replica_states drs on rs.replica_id=drs.replica_id


ORDER BY n.replica_server_name, db_name(drs.database_id)


SELECT r.replica_server_name as Servidor, db_name(rs.database_id) as Banco,
rs.synchronization_state_desc as StatusAlwaysOn,
isnull(convert(varchar(20),rs.last_commit_time,103) + ' ' + convert(varchar(20),rs.last_commit_time,108),'n/a') as UltimaDataHoraSinc,
isnull(rs.log_send_rate,0) as FilaEnvio,isnull(rs.log_send_queue_size,0) as FilaExecReplica

FROM sys.availability_replicas r
join sys.dm_hadr_database_replica_states rs on r.replica_id = rs.replica_id

WHERE 1=1

ORDER BY r.replica_server_name, db_name(rs.database_id)


Podemos acessar também os contadores do AlwaysOn via TSQL View “sys.dm_os_performance_counters”.

SELECT object_name,counter_name,instance_name,cntr_value
FROM sys.dm_os_performance_counters
WHERE object_name = 'SQLServer:Availability Replica'


Até o próximo post.

Saudações Tricolores,
Landry


domingo, 6 de outubro de 2019

Configurando AlwaysOn Availability Groups - Parte 3

Seguindo com a série de posts Configurando AlwaysOn Availability Groups, estando o cluster do Windows instalado e configurado, agora vamos habilitar e configurar o AlwaysOn no SQL Server.
Configuração do AlwaysOn no SQL Server
Para habilitar o AlweysOn no SQL Server abra o SQL Server Configuration Manager, selecione SQL Server Services e clique com o botão direito no serviço do SQL Server e entre em Properties.






Configurar em todos os Nós do Cluster, habilitando o AlwaysOn no SQL Server e reiniciando o serviço.

O restante da configuração é feito no SQL Server Management Studio. No Object Explorer expandir Always On High Availability e clique com o botão direito do mouse em Avaialability Groups e selecione New Availability Group Wizard.



Atribua o nome do grupo seguindo ao padrão recomendado -AG1.



Na tela seguinte vamos selecionar os Bancos de Dados que farão parte deste Availability Group, apenas aqueles com Recovery Full estarão disponíveis!




Na tela Specify Replicas vou selecionar as opções de Failover automático e Replica com consulta disponível.





Em Backup Preferences selecione Primary, pois os outros modos não suportam Backup Diferencial.

Para definir um Listener, defina nome similar ao do Avaiabilitity Group com “L” no final: SRVSQL-AGL, porta 1433.



Para realizar a sincronia inicial (Backup / Restore) de modo automático selecione Automatic seeding.  Eu particularmente prefiro realizar antes a sincronia manual executando Backup FULL e LOG no Primário, em seguida restaurando nas Réplicas utilizando a cláusula NORECOVERY, neste caso selecione Join only.



Finalizando a configuração o Wizard irá configurar o AlwaysOn em ambos os Nós e criar o grupo de recursos no Cluster.

Abra o Cluster Manager para verificar a configuração, Nó ativo em Owner Node.



Para monitorar o AlwaysOn basta acessar o Dashboard no Management Studio.




Finalizamos a série de posts sobre AlwaysOn Availability Groups no SQL Server 2017.

Saudações Tricolores,
Landry

sábado, 5 de outubro de 2019

Configurando AlwaysOn Availability Groups - Parte 2

Na Parte 1 da série de posts Configurando AlwaysOn Availability Groups aprendemos a instalar o serviço de cluster do Windows, nesta segunda parte vamos aprender a configurar o cluster para o AlwaysOn.
Configuração do Windows Cluster
Para configurar o Cluster do Windows utilizamos o Failover Cluster Manager em Administrative Tools.



Clicar com o botão direito do mouse em Failover Cluster Manager e selecionar Create Cluster para iniciar o Wizard.



Na primeira tela do Wizard Create Cluster Wizard adicione os servidores que você pretende utilizar, no ambiente criado para este guia SRVSQL-A e SRVSQL-B, ambos servidores SQL Server 2017.




Em seguida, na tela Validation Warning mantenha Yes para rodar os testes de validação dos servidores e clique em Next. Na janela Validade e Configuration Wizard clique em Next e em seguida mantenha Run all tests e clique em Next duas vezes, para verificar se os servidores atendem todos os pré-requisitos para configuração em Cluster.
Próximo passo é selecionar o nome virtual para o Cluster:
  • Cluster Name: SRVSQL
  • IP: 192.168.0.250


Clicar em Next e em seguida novamente na tela de confirmação, para instalar o Cluster.


Warning acima é normal, pois não estamos configurando um Cluster completo com Storage, apenas utilizamos a infraestrutura de Nome e IP virtual.

O cluster é configurado para “Node Majority” por padrão, vamos alterar para File Share Witness.  Necessário selecionar outro computador, vou utilizar o próprio Domain Controler, que já tem File and Storage Service instalado.


Para criar o “File Share” abra o Server Manager e selecione File and Storage Services.



Na tela Select the profile for this share selecione SMB Share – Quick e clique em Next.



Em Share Location selecione o disco onde você pretende definer o compartilhamento, em seguida clicar em Share Name e entre com o nome do compartilhamento.


Guarde o endereço do compartilhamento \\SRV2016-DC\Cluster-QuorumNa janela Other Settings desmarcar Allow caching of share e selecione Encrypt data access.


Na janela Permissions vamos customizar as permissões do com partilhamento clicando no botão Customize permissions.



Em seguida desabilite a herança clicando no botão Disable inheritance, selecionar remove all inherited permissions. Atribua permissão Full control para o nome virtual do cluster SRVSQL.








Adicione permissão para sua conta de administrador com Full Control.

Ficamos então com permissão apenas para o Cluster e os Administradores.




Na janela Confirmation clicar no botão Create. Teste o compartilhamento a partir de ambos os nós antes de seguir na configuração!

Retorne para o Nó ativo onde o Cluster foi configurado (no meu caso SRVSQL-A), no Cluster Manager clicar com o botão direito do mouse no cluster e selecione More Actions em seguida Configure Cluster Quorum Settings.




Na primeira janela selecione Select the quórum witness e clique em Next.  Na janela seguinte selecione Configure a file share witness e clique em Next.  Entre com o compartilhamento \\srv2016-dc\Cluster-Quorum e clique em Next.



Confirmar a configuração no Cluster Manager.




No próximo post vamos aprender a vamos habilitar o AlwaysOn no SQL Server.

Saudações Tricolores,
Landry

sexta-feira, 4 de outubro de 2019

Configurando AlwaysOn Availability Groups - Parte 1


A solução de alta Disponibilidade mais utilizada no SQL Server 2017 é o AlwaysOn Availability Groups, substituindo a solução de Cluster que requer hardware especial com Storage interligado a todos os Nós.  Com o AlwaysOn podemos utilizar dois servidores comuns em uma solução de Alta Disponibilidade robusta, mantendo bancos em sincronia com consistência transacional, além de nome e IP virtual.

Contudo, a configuração não é simples, principalmente a parte referente ao serviço de cluster do Windows.  Vou iniciar sequência de posts sobre instalação e configuração de um AlwaysOn Availability Groups.

Configurando AlwaysOn Availability Groups - Parte 2
Configurando AlwaysOn Availability Groups - Parte 3

Utilizei para esta sequência de Posts o seguinte ambiente:
  • Windows 2016 Domain Controler: SRV2016-DC
  • Servidor SQL Server 2017 1: SRVSQL-A
  • Servidor SQL Server 2017 2: SRVSQL-B

Instalação Serviço Cluster do Windows
O serviço de Cluster do Windows não vem habilitado por padrão, para habilitar abra o Server Manager no Windows 2016 server, na tela inicial clicar em Add roles and features.


Avançar na primeira tela do Add Roles and Features Wizard e selecionar a opção abaixo, clicando em NEXT em seguida.




Selecione o seu servidor e clique em NEXT.




Na tela seguinte Select server roles não precisa selecionar nada, clicar em NEXT.  

Em Select features verifique se o Failover Clustering já está marcado, se não estiver, selecionar e finalizar o Wizard para instalar.


No próximo post vamos aprender a configurar o serviço de cluster do Windows

Saudações Tricolores,
Landry

quarta-feira, 6 de fevereiro de 2019

Power BI Report Server


No final de 2018 a Microsoft lançou o Power BI Report Server para assinantes do Power BI Premium e SQL Server Enterprise com Software Assurance.Com o Power BI Report Server temos a maioria das funcionalidades do Power BI na nuvem localmente.  Existe a opção de instalação do Power BI Report Server para testes (Trial) de 180 dias.

Link de Download do Power BI Report Server:

Um portal similar ao do Reporting Service é instalado, exemplo abaixo:




O Power BI Report Server pode hospedar relatórios do Power BI (arquivos .PBIX) e Relatórios (arquivos .RDL), contudo existem algumas limitações comparando com o Power BI na nuvem.

Algumas funcionalidades não estão disponíveis no Power BI Report Server:

  • Gateway para atualizar os dados pois o acesso é direto
  • Real-time Streaming
  • Content Packs
  • Q&A
  • Mapas ARC GIS
  • Alerta de Dados
  • Colaboração avançada do Office 365
  • R visuals

 Link com comparativo Power BI x Power BI Report Server:
 
Para desenvolver os relatórios existe uma versão específica do Power BI Desktop, necessária para submeter ao Power BI Report Server os relatórios.  O download é feito a partir do portal do Power BI Report Server, exemplo imagem abaixo:




Link de download do Power BI Desktop:

A instalação é bem simples, similar ao Reporting Service, sendo necessário realizar configurações após a instalação.

Segue link da Microsoft com passo-a-passo da instalação e configuração:


Até o próximo post.

Saudações Tricolores,
Landry