FACULDADE DE ADMINISTRAÇÃO E NEGÓCIOS DE SERGIPE FANESE NÚCLEO DE PÓS-GRADUAÇÃO E EXTENSÃO NPGE CURSO DE PÓS-GRADUAÇÃO LATO SENSU ESPECIALIZAÇÃO EM BANCO DE DADOS REPLICAÇÃO E AUTO DISPONIBILIDADE NO SQL SERVER 2012 DAYSE SOARES SANTOS ARACAJU SE 2012
2 DAYSE SOARES SANTOS REPLICAÇÃO E AUTO DISPONIBILIDADE NO SQL SERVER 2012 Projeto de pesquisa cientifica apresentado ao Núcleo de Pós-graduação e Extensão da Faculdade de Administração e Negócios de Sergipe como exigência para obtenção do título de Especialista em Banco de dados. Orientação: Professora Renata Azevedo. ARACAJU SE 2012
3 REPLICAÇÃO E AUTO DISPONIBILIDADE NO SQL SERVER 2012 RESUMO Nesse artigo será relatado sobre o SQL Server 2012, focando a auto disponibilidade e a replicação de bases. A grande novidade é o SQL Server AlwaysOn, considerado uma solução simples e unificada, é muito fácil de gerenciar e implementar, trazendo redução de custos por causa da permissão de reutilização de hadware já existente, melhor utilização dos servidores, e maior retorno sobre o investimento. Será detalhado as duas soluções do AlwaysOn que é a AlwaysOn Availability Groups que atua no nível de banco de dados e o Alwayson Failover Cluster Instances que atua na proteção no nível de instâncias. O Alwayson veio para facilitar as complexidades do failover Cluster Instance, do data base mirroring e do Log Shipping. PALAVRAS CHAVE SQL Server Alwayson, failover, instance, mirroring, log shipping, banco de dados, clustering ABSTRACT In this paper is reported about SQL Server 2012, focusing on self availability and replication bases. The big news is the SQL Server AlwaysOn, considered a simple and unified, it is very easy to manage and deploy, bringing cost savings because of permission to reuse existing Hadware, better server utilization, and greater return on investment. The two solutions will be detailed to the AlwaysOn AlwaysOn Availability Groups is that it operates at the level of database and AlwaysOn Failover Cluster Instances that works to protect the level of instances. The AlwaysOn came to ease the complexities of Failover Cluster Instance, the data base mirroring and Log Shipping. KEYWORDS SQL Server AlwaysOn, failover, instance, mirroring, log shipping, database clustering
4 1. INTRODUÇÃO SQL Server AlwaysOn é uma solução de alto disponibilidade e disaster recovery com muito mais abrangência através da implementação do AlwaysOn Availability Groups e AlwaysOn Failover Cluster Instances que traz maior disponibilidade para as aplicações, maior retorno sobre os investimentos, simplicidade para implementação e gerenciamento. Atende pequenos, médios e grandes ambientes (banco de dados ou instância) e não esquecendo o multisite clustering através do suporte a subnets. Maior flexibilidade e eficiência na configuração de alta disponibilidade, baixo custo permitindo reutilização de hardware, suporte a windows server core reduzindo significativamente o downtime e a aplicação de paths. 2. DESENVOLVIMENTO 2.1. Novidades em consideração as versões anteriores O SQL Server 2012 veio trazer tudo que é necessário para resolver a disponibilidade e a confiabilidade dos dados em todos os níveis de uma empresa, pelo preço certo e na hora certa. O SQL Server 2012 é uma plataforma de informações pronta para a nuvem que oferece às organizações a agilidade para criar e escalonar soluções do servidor privada ou pública rapidamente. Capacidades principais: Reduzir a complexidade; Acelerar tempo; Flexibilidade nos termos do servidor para nuvem; Otimização; Expansividade;
5 2.2. Novidades do Sql server 2012 para alta disponibilidade e replicação O que é Alwayson? É uma nova e mais abrangente solução de alta disponibilidade e disaster recovery que permite aumentar a disponibilidade das aplicações seja no nível de banco de dados ou no nível de instância, proporcionando um melhor retorno sobre os investimentos. Com o alwayson é possível aproveitar do hardware já existente dentro de uma estrutura da empresa. O que é usado hoje como ferramenta de alta disponibilidade nas estrutura das empresas? Pensando no SQL Server 2008 ou SQL Server 2008 R2, voltado aos grandes ambientes existem três soluções: Failover Cluster Instance (FCI): Seria instalar o SQL Server em um cluster de dois ou mais nós, colocar a instancia com o nome virtual e dar ao ambiente alta disponibilidade em caso de falha de hardware ou de software, para isso, requer uma storage, os discos precisam ser compartilhados entre os nós que compõem a solução do cluster. Quando se pensa em desastres recoveres os custos ficam bem mais altos, pois, será necessário de uma storage em cada site, será necessário configurar a replicação de dados entre as storage do site principal e a storage do site secundário. Essa solução requer custos muito alto, voltado para grandes ambientes ou quando existe a necessidade de trabalhar na replicação ou na alta disponibilidade englobando um instancia como o todo. Database Mirroring: Configura a replicação de um ou mais banco de dados entre duas instancias de sql. O problema é quando precisa de um failover automático e que seja transparente para a minha aplicação, isso, requer customização da aplicação, é necessário alterar a string de conexão e informar a ela quem é o servidor par da solução para que na ocorrência de uma falha e na movimentação do banco de dados, possa parar o servidor secundário e sua aplicação entenda esse failover. Outro problema seria que o database mirroring não suporta a utilização de nome virtual, ou seja, se não estiver utilizando o failover par na string de conexão da aplicação, será
6 necessário um procedimento manual para sinalizar que o servidor principal falhou e o banco de dados moveu para o servidor mirroring da solução. Snapshot: Leitura na base espelho, somente usando o database snapshot, no servidor espelho, e isso seria outra nova solução. Log Shipping: Não permite o failover automático e as bases ficam indisponíveis no servidor secundário. Foi discutido quatro soluções que dependendo do cenário, pode ser utilizado uma ou duas e dependendo as quatros, com um custo muito alto. Alta disponibilidade usando o SQL Server AlwaysOn O Alwayson unifica as quatros soluções acima citadas de uma maneira muito mais simplificada e de custo muito mais baixo, o alwayson traz: Integração: Uma solução simples e unificada Fácil de gerenciar e implementar Flexibilidade Reutilização de investimentos Facilidade de configuração Eficiência Redução de custo Reutilização de hardware Melhor utilização dos servidores Baixo custo com implantação de DR Maior retorno sobre investimento.
7 2.3. Detalhes do AlwaysOn Com o SQL Server AlwaysOn a alta disponibilidade e disaster recovery são implementados com duas novas soluções: AlwaysOn Availability Groups: É a solução que atua no nível de banco de dados e fornece: Failover de múltiplos bancos de dados Replicação síncrona e assíncrona com failover automático ou manual. Redirecionamento automático das aplicações usando nome virtual. Múltiplos Servidores secundários. Servidores Secundários ativos para leitura. Gerenciamento Integrado e configuração flexível. Alwayson Failover Cluster Instances: É a solução que atua na proteção no nível de instâncias e fornece: Multi-site clustering através de subnets. Política de failover mais flexível. Suporte ao Windows Server Core. Suporte a TEMPDB em disco local. Otimização do tempo de failover. 2.4. AlwaysOn Availability Group É uma solução de alta disponibilidade SQL Server 2012, fornece alta disponibilidade e disaster recovery para as aplicações no nível de banco de dados, combinando o database mirroring e log shipping.
8 Proporciona muito mais flexibilidade fornecendo: Failover de múltiplos bancos de dados; Múltiplos secundários; o Total de 4 secundários; o 2 síncronos 1 par com failover automático o 2 assíncronos Servidores secundários ativos (leitura) Compressão e criptografia integrada Failover automático e manual Política de failover flexível Recuperação de páginas automáticas. Proporcionando integração e eficiência: Servidores secundários ativos; o Leitura nos secundários; o Backup nos secundários; Redirecionamento automático da aplicação utilizando nome virtual; Configuração utilizando Wizard; Dashboard Integrado; Integração com System Center; Automação via power-shell. 2.5. Cenário (Atendendo uma necessidade) O requisito do negócio é ter um failover automático de múltiplos bancos de dados e redundância através de múltiplos datacenters. Como é no SQL Server 2008/R2: Como se soluciona esse cenário através do SQL Server 2008/R2? Pode utilizar a solução Database mirroring. O problema é que ele oferece failover automático de um único
9 banco de dados. Realiza cópias redundantes dos bancos de dados no principal e mirror server. Para Failover de múltiplos bancos de dados requer customização de código. O redirecionamento da aplicação requer uso do parâmetro "FailoverPartner" na string de conexão. Como é no SQL Server 2012: O failover de múltiplos bancos de dados é tratado automaticamente pelo Availability group. Cópias redundantes dos bancos de dados são mantidas em todos os servidores que participam do Availability group, podendo a sincronização ser síncrona ou assíncrona. Podendo ter até quatro servidores secundários. O redirecionamento da aplicação é tratado automaticamente com o uso do Availability Group Listener e um nome virtual. Arquitetura Um exemplo da arquitetura a figura abaixo ilustra três servidores, cada servidor com uma instancia SQL Server, os servidores precisam do Windows Server Failover Cluster (WSFC) que é uma solução que depende do cluster para funcionar. Uma vez instalado o WSFC é possível configurar a replicação da base entre os nós do cluster. Lembrando que as instâncias não são clusterizadas, ou seja, não precisa configurar ou instalar as instancias SQL Server de forma clusterizadas, cada maquina tem sua instancia
10 SQL Server utilizando discos locais, cada servidor tem seu banco de dados armazenado no seu disco local e através do AlwaysOn Availability Group é realizado a replicação desses dados do servidor primário para até quatro servidores secundários. O Availability group usa o WSFC para: Detecção da saúde entre os nós Coordenação do Failover; Armazenamento distribuído dos dados de configuração e status do availability group; Notificações distribuídas das alterações. Configuração Step-by-Step Eleger os servidores que irão compor o Availability Group; Instalar o SQL Server 2012 local em todos os servidores (stand-alone); Instalar o failover cluster no Windows (em todos os servidores); Criar um cluster composto pelos servidores eleitos; Ative o serviço do SQL Server para Availability Group em todos os servidores; No servidor primário (aquele que possui o banco de dados a ser espelhado), utilizar o SSMS para criar e configurar o Availability Group;
11 3. ESTUDO DE CASO Agora para entender como funciona uma implementação de AlwaysOn vamos fazer uma demonstração do seu funcionamento seguindo os passos abaixo: Obs.: Instale o windows server 2008 e o sql server 2012 1 - Criar três instancias de sql, sendo que na primeira instância teremos um banco de dados, nas demais instancias não criar banco de dados nenhum. 2 - Não esqueça de instalar o serviço de clusters em cada uma das maquinas, sendo que o clusters é composto por três nós e cada um desses nós está rodando um instancia de forma stand-alone. 3 - Não esqueça de ir no serviço do sql server e sinalize para ele que estará fazendo parte de um solução AlwaysOn Availability Group. 4 Agora clique com o botão direito do mouse em AlwaysOn High Availability e New Availability Group Wizard.
12 5 - Informe o nome do grupo de disponibilidade e selecione as base de dados que irá compor esse grupo de disponibilidade. Clique em next 6 Agora informe quais serão os servidores que irão receber a base de dados automaticamente, ou seja, a replica secundário. Isso significa que caso o servidor01 chegue a cair, automaticamente o serviço de cluster vai atuar e fazer a movimentação desse grupo para o próximo servidor. Clique em next.
13 7 É necessário um diretório de rede que seja acessível pelas instancias do SQL, pelos serviços que estão rodando o sql. Feito esse diretório, informe-o como diretório FULL. Clique em next. 8 Agora é só esperar ele fazer as atualizações e o backup.
14 Apartir desse momento já temos a base de dados replicando para as outras instancias de SQL Server, essas instancias podem está dentro do mesmo CPD ou em datacenter diferentes.
15 4. CONCLUSÃO Nesse artigo foi relatado sobre a nova solução de alto disponibilidade e disaste recovery chamada de alwayson, dando ênfase o Availability Group que é uma nova e abrangente solução de alta disponibilidade e disaster recovery que atuando no nível de banco de dados proporciona: Failover de múltiplos bancos de dados para aplicações que requerem múltiplos bancos de dados em uma única instância. Conectividade e redirecionamento automático da aplicação através da implementação do Avilbility Group Listener e nome virtual; Compressão e criptografia integrada; Sincronização de dados de forma síncrona ou assíncrona para até 4 nós. Reparação automática de páginas corrompidas Servidores secundários disponíveis para leitura; Suporte a FILESTREAM, FILETABLE e Service Broker; Configuração simplificada com o uso de Wizard, integração com PowerSell e monitoração através de um Dashboard; Suporta até 3 réplicas síncronas sendo uma primária e duas secundárias; Permite o failover de múltiplos bancos de dados removendo a necessidade de lógicas complexas. 4. REFERÊNCIAS https://www.microsoftvirtualacademy.com/tracks/introducao-ao-sql-server-2012 http://luanmorenodba.wordpress.com/2012/06/30/entendendo-e-utilizando-o-sql-serveralwayson/