Implantando espelhamento SQL para alta disponibilidade de Servidor Back-End no Lync Server 2013
Tópico Última Modificação: 2014-01-08
Para que seja possível implantar o espelhamento de SQL, os servidores devem executar no mínimo o SQL Server 2008 R2. Essa versão deve ser executada em todos os servidores envolvidos: o principal, o espelho e a testemunha. Para obter detalhes, confira https://go.microsoft.com/fwlink/p/?linkid=3052& kbid=2083921.
Em geral, a configuração do espelhamento SQL entre os dois Servidores Back-End com uma testemunha requer:
Que a versão do SQL Server do servidor principal ofereça suporte a espelhamento SQL.
Que o principal, o espelho e a testemunha (se implantada) tenham a mesma versão do SQL Server.
Que o principal e o espelho tenham a mesma edição do SQL Server. A testemunha pode ter uma edição diferente.
Para práticas recomendadas de SQL em termos de quais versões SQL têm suporte para uma função Witness, consulte "Testemunha de Espelhamento de Banco de Dados" no Biblioteca MSDN em https://go.microsoft.com/fwlink/p/?LinkId=247345.
Você usa o Construtor de Topologia para implantar o espelhamento SQL. Você seleciona uma opção no Construtor de Topologia para espelho os bancos de dados e o Construtor de Topologia configura o espelhamento (incluindo configurar uma testemunha, se desejar) ao publicar a topologia. Observe que a testemunha é configurada ou removida ao mesmo tempo que o espelho. Não há um comando separado para implantar ou remover somente uma testemunha.
Antes de configurar o espelhamento do servidor, você deve configurar as permissões do banco de dados SQL corretamente. Para obter detalhes, consulte "Configurar contas de logon para espelhamento de banco de dados ou grupos de disponibilidade AlwaysOn (SQL Server)" em https://go.microsoft.com/fwlink/p/?LinkId=268454.
Com o espelhamento SQL, o modo de recuperação de banco de dados fica sempre definido como Completo, o que significa que você deve monitorar de perto o tamanho dos logs de transações, fazendo backup regular para evitar o esgotamento do espaço em disco dos Servidores Back-End. A frequência dos backups dos logs de transações depende da taxa de expansão dos logs, que, por sua vez, depende das transações do banco de dados provenientes de atividades de usuários no Pool de Front-Ends. Recomendamos que você determine a expansão dos logs de transação que é esperada para a carga de trabalho de implantação do Lync para que seja possível realizar um planejamento adequado. Os artigos a seguir fornecem mais informações sobre o gerenciamento de logs e backups do SQL:
Modelos de recuperação de banco de dados: "Modelos de recuperação (SQL Server)" emhttps://go.microsoft.com/fwlink/p/?LinkId=268446
Visão geral do backup: "Visão geral do backup (SQL Server)" emhttps://go.microsoft.com/fwlink/p/?LinkId=268449
Log de transações de backup: "Backup de um log de transações (SQL Server)" emhttps://go.microsoft.com/fwlink/p/?LinkId=268452
Com o espelhamento de SQL, você pode configurar a topologia do espelhamento quando criar pools ou depois que eles forem criados.
Importante
O uso do Construtor de Topologia ou cmdlets para configurar e remover o espelhamento SQL só tem suporte quando os servidores primário, espelho e testemunha (se desejado) pertencerem ao mesmo domínio. Se quiser configurar o espelhamento SQL entre servidores de domínios diferentes, consulte a documentação do SQL Server.
Importante
Sempre que fizer uma alteração em uma relação de espelhamento de banco de dados back-end, você deverá reiniciar todos os servidores front-end do pool.
Para uma alteração no espelhamento , (como alterar o local de um espelho), você deve usar o Construtor de Topologia para executar estas três etapas:
-
Remova o espelhamento do servidor espelho antigo.
-
Adicione espelhamento ao novo servidor espelho.
-
Publique a topologia.
Nota
Um compartilhamento de arquivos deve ser criado para os arquivos espelho a serem gravados, e o serviço no qual o SQL Server e o SQL Agent estão sendo executados precisam de acesso de leitura/gravação. Se o serviço SQL Server estiver em execução no contexto do Serviço de Rede, você poderá adicionar <Domain>\<SQLSERVERNAME>$ dos SQL Servers Principal e Mirror às permissões de compartilhamento. O $ é importante para identificar que esta é uma conta de computador.
Para configurar o espelhamento de SQL ao criar um pool no Construtor de Topologias
Na página Definir o Repositório SQL, clique em Novo ao lado da caixa Repositório SQL.
Na página Definir Novo Repositório SQL, especifique o repositório principal, selecione Esta instância SQL está em relação de espelhamento, especifique o número da porta de espelhamento de SQL (o padrão é 5022) e clique em OK.
De volta à página Definir o Repositório SQL, selecione Habilitar espelhamento do repositório SQL.
Na página Definir Novo Repositório SQL, especifique o repositório SQL a ser usado como espelho. Selecione Esta instância SQL está em relação de espelhamento, especifique o número da porta (o padrão é 5022) e clique em OK.
Caso deseje uma testemunha para esse espelho, faça o seguinte:
Selecione Usar testemunha de espelhamento do SQL para habilitar failover automático.
Na página Definir o repositório SQL, selecione Usar testemunha de espelhamento do SQL para habilitar failover automático e especifique o repositório SQL a ser usado como testemunha.
Especifique o número da porta (o padrão é 7022) e clique em OK.
Depois de definir o pool do Front-End e todas as outras funções em sua topologia, use o Construtor de Topologia para publicar a topologia. Quando a topologia for publicada, se o pool front-end que hospeda o repositório de Gerenciamento Central tiver o espelhamento de SQL habilitado, você verá uma opção para criar bancos de dados de armazenamento SQL primários e espelho.
Clique em Configurações e digite o caminho que será usado como compartilhamento de arquivos para o backup de espelhamento.
Clique em OK e em Avançar para criar os bancos de dados e publicar a topologia. O espelhamento e a testemunha (se especificada) serão implantados.
Você pode usar o Construtor de Topologia para editar as propriedades de um pool já existente para habilitar o espelhamento de SQL.
Para adicionar o espelhamento de SQL a um pool de Front-End existente no Construtor de Topologias
No Construtor de Topologia, clique com o botão direito do mouse no pool e clique em Editar Propriedades.
Selecione Habilitar Espelhamento do Repositório SQL e clique em Novo ao lado de Repositório SQL de Espelhamento.
Especifique o repositório SQL que você deseja usar como espelho.
Selecione Esta instância SQL está em relação de espelhamento, especifique o número da porta de espelhamento SQL (o padrão é 5022) e clique em OK.
Caso deseje configurar uma testemunha, selecione Usar testemunha de espelhamento SQL para habilitar failover automático e clique em Novo.
Especifique o repositório SQL que você deseja usar como testemunha.
Selecione Esta instância SQL está em relação de espelhamento, especifique o número da porta de espelhamento SQL (o padrão é 7022) e clique em OK.
Clique em OK.
Publique a topologia. Quando você fizer isso, o sistema solicitará a instalação do banco de dados.
Durante o processo de publicação da topologia, você deverá definir um caminho de compartilhamento de arquivos. Os SQL Servers que participam do espelhamento devem ter acesso de leitura/gravação a esse compartilhamento de arquivos para que o espelhamento seja estabelecido.
Instale o banco de dados antes de ir para o próximo procedimento.
Lembre-se disto ao configurar o espelhamento de SQL:
Caso já exista um ponto de extremidade de espelhamento, ele será reutilizado usando as portas definidas nele e irá ignorar aquelas especificadas na topologia.
Todas as portas já alocadas para outros aplicativos no mesmo servidor (inclusive de outras instâncias SQL) não deverão ser usadas para as instâncias SQL instaladas atualmente. Isso significa que, se você tiver mais de uma instância SQL instalada no mesmo servidor, elas não poderão usar a mesma porta para espelhamento. Para saber mais, veja os seguintes artigos:
"Especificar um endereço de rede do servidor (espelhamento de banco de dados)" no Biblioteca MSDN emhttps://go.microsoft.com/fwlink/p/?LinkId=247346
"O ponto de extremidade de espelhamento de banco de dados (SQL Server)" emhttps://go.microsoft.com/fwlink/p/?LinkId=247347
Usando cmdlets do Shell de Gerenciamento do Lync Server para configurar o espelhamento do SQL
A maneira mais fácil de configurar o espelhamento é usando o Construtor de Topologia, mas você também pode fazê-lo usando cmdlets.
Abra uma janela do Shell de Gerenciamento do Lync Server e execute o seguinte cmdlet:
Install-CsMirrorDatabase [-ConfiguredDatabases] [-ForInstance] [-ForDefaultInstance] [-DatabaseType <Application | Archiving | CentralMgmt | Monitoring | User | BIStaging | PersistentChat | PersistentChatCompliance >] -FileShare <fileshare> -SqlServerFqdn <primarySqlserverFqdn> [-SqlInstanceName] [-DatabasePathMap] [-ExcludeDatabaseList] [-DropExistingDatabasesOnMirror] -Verbose
Por exemplo:
Install-CsMirrorDatabase -ConfiguredDatabases -FileShare \\PRIMARYBE\csdatabackup -SqlServerFqdn primaryBE.contoso.com -DropExistingDatabasesOnMirror -Verbose
Você verá:
Database Name:rtcxds Data File:D:\CsData\BackendStore\rtc\DbPath\rtcxds.mdf Log File:D:\CsData\BackendStore\rtc\LogPath\rtcxds.ldf Primary SQL: e04-ocs.los_a.lsipt.local\rtc Account: LOS_A\e04-ocs$ Mirror SQL: K16-ocs.los_a.lsipt.local\rtc Account: LOS_A\K16-ocs$ Witness SQL : AB14-lct.los_a.lsipt.local\rtc Account: LOS_A\AB14-lct$ Database Name:rtcshared Data File:D:\CsData\BackendStore\rtc\DbPath\rtcshared.mdf Log File:D:\CsData\BackendStore\rtc\LogPath\rtcshared.ldf Primary SQL: e04-ocs.los_a.lsipt.local\rtc Account: LOS_A\e04-ocs$ Mirror SQL: K16-ocs.los_a.lsipt.local\rtc Account: LOS_A\K16-ocs$ Witness SQL : AB14-lct.los_a.lsipt.local\rtc Account: LOS_A\AB14-lct$ Database Name:rtcab Data File:D:\CsData\ABSStore\rtc\DbPath\rtcab.mdf Log File:D:\CsData\ABSStore\rtc\LogPath\rtcab.ldf Primary SQL: e04-ocs.los_a.lsipt.local\rtc Account: LOS_A\e04-ocs$ Mirror SQL: K16-ocs.los_a.lsipt.local\rtc Account: LOS_A\K16-ocs$ Witness SQL : AB14-lct.los_a.lsipt.local\rtc Account: LOS_A\AB14-lct$ Database Name:rgsconfig Data File:D:\CsData\ApplicationStore\rtc\DbPath\rgsconfig.mdf Log File:D:\CsData\ApplicationStore\rtc\LogPath\rgsconfig.ldf Primary SQL: e04-ocs.los_a.lsipt.local\rtc Account: LOS_A\e04-ocs$ Mirror SQL: K16-ocs.los_a.lsipt.local\rtc Account: LOS_A\K16-ocs$ Witness SQL : AB14-lct.los_a.lsipt.local\rtc Account: LOS_A\AB14-lct$ Database Name:rgsdyn Data File:D:\CsData\ApplicationStore\rtc\DbPath\rgsdyn.mdf Log File:D:\CsData\ApplicationStore\rtc\LogPath\rgsdyn.ldf Primary SQL: e04-ocs.los_a.lsipt.local\rtc Account: LOS_A\e04-ocs$ Mirror SQL: K16-ocs.los_a.lsipt.local\rtc Account: LOS_A\K16-ocs$ Witness SQL : AB14-lct.los_a.lsipt.local\rtc Account: LOS_A\AB14-lct$ Database Name:cpsdyn Data File:D:\CsData\ApplicationStore\rtc\DbPath\cpsdyn.mdf Log File:D:\CsData\ApplicationStore\rtc\LogPath\cpsdyn.ldf Primary SQL: e04-ocs.los_a.lsipt.local\rtc Account: LOS_A\e04-ocs$ Mirror SQL: K16-ocs.los_a.lsipt.local\rtc Account: LOS_A\K16-ocs$ Witness SQL : AB14-lct.los_a.lsipt.local\rtc Account: LOS_A\AB14-lct$ Database Name:xds Data File:D:\CsData\CentralMgmtStore\rtc\DbPath\xds.mdf Log File:D:\CsData\CentralMgmtStore\rtc\LogPath\xds.ldf Primary SQL: e04-ocs.los_a.lsipt.local\rtc Account: LOS_A\e04-ocs$ Mirror SQL: K16-ocs.los_a.lsipt.local\rtc Account: LOS_A\K16-ocs$ Witness SQL : AB14-lct.los_a.lsipt.local\rtc Account: LOS_A\AB14-lct$ Database Name:lis Data File:D:\CsData\CentralMgmtStore\rtc\DbPath\lis.mdf Log File:D:\CsData\CentralMgmtStore\rtc\LogPath\lis.ldf Primary SQL: e04-ocs.los_a.lsipt.local\rtc Account: LOS_A\e04-ocs$ Mirror SQL: K16-ocs.los_a.lsipt.local\rtc Account: LOS_A\K16-ocs$ Witness SQL : AB14-lct.los_a.lsipt.local\rtc Account: LOS_A\AB14-lct$ [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"):
Verifique se:
A porta 5022 pode ser acessada através do firewall se o Firewall do Windows estiver habilitado no SQL Server principal e04-ocs.los_a.lsipt.local\rtc.
A porta 5022 pode ser acessada através do firewall se o Firewall do Windows estiver habilitado no SQL Server espelho K16-ocs.los_a.lsipt.local\rtc.
A porta 7022 pode ser acessada através do firewall se o Firewall do Windows estiver habilitado no SQL Server testemunha AB14-lct.los_a.lsipt.local\rtc.
As contas que executam todos os SQL Servers principais e espelho têm permissão de leitura/gravação para o compartilhamento de arquivos \\E04-OCS\csdatabackup
Verifique se o provedor WMI (Instrumentação de Gerenciamento do Windows) está em execução em todos esses servidores. O cmdlet usa esse provedor para encontrar informações da conta relativas aos serviços do SQL Server em execução em todos os servidores principais, espelho e testemunha.
Verifique se a conta que executa esse cmdlet tem permissão para criar as pastas de dados e de arquivos de log para todos os servidores espelho.
Observe que a conta de usuário usada pela instância SQL para execução deve ter permissão de leitura/gravação no compartilhamento de arquivos. Se o compartilhamento de arquivos estiver em um servidor diferente e a instância SQL for executada em uma conta do sistema local, você deverá conceder permissões de compartilhamento de arquivos ao servidor que hospeda a instância SQL.
Digite A e pressione ENTER.
O espelhamento será configurado.
Install-CsMirrorDatabase instala o espelho e configura o espelhamento para todos os bancos de dados presentes no repositório SQL primário. Se você quiser configurar o espelhamento apenas para bancos de dados específicos, poderá usar a opção –DatabaseType ou se quiser configurar o espelhamento para todos os bancos de dados, exceto para alguns, você pode usar a opção -ExcludeDatabaseList, juntamente com uma lista separada por vírgulas de nomes de banco de dados a serem excluídos.
Por exemplo, caso você adicione a opção a seguir a Install-CsMirrorDatabase, todos os bancos de dados serão espelhados, com exceção de rtcab e rtcxds.
-ExcludeDatabaseList rtcab,rtcxds
Por exemplo, caso você adicione a opção a seguir a Install-CsMirrorDatabase, somente os bancos de dados rtcab, rtcshared e rtcxds serão espelhados.
-DatabaseType User
Remoção ou alteração do espelhamento SQL
Para remover o espelhamento de SQL de um pool no Construtor de Topologias, primeiro use um cmdlet para remover o espelho no SQL Server. Em seguida, você poderá usar o Construtor de Topologias para remover o espelho da topologia. Para remover o espelho no SQL Server, use o cmdlet a seguir:
Uninstall-CsMirrorDatabase -SqlServerFqdn <SQLServer FQDN> [-SqlInstanceName <SQLServer instance name>] -DatabaseType <Application | Archiving | CentralMgmt | Monitoring | User | BIStaging | PersistentChat | PersistentChatCompliance> [-DropExistingDatabasesOnMirror] [-Verbose]
Por exemplo, para remover o espelhamento e os bancos de dados de usuários, digite:
Uninstall-CsMirrorDatabase -SqlServerFqdn primaryBE.contoso.com -SqlInstanceName rtc -Verbose -DatabaseType User -DropExistingDatabasesOnMirror
A -DropExistingDatabasesOnMirror
opção faz com que os bancos de dados afetados sejam excluídos do espelho.
Depois, para remover o espelho da topologia, faça o seguinte:
No Construtor de Topologias, clique com o botão direito do mouse no pool e clique em Editar Propriedades.
Desmarque Habilitar Espelhamento do Repositório SQL e clique em OK.
Publique a topologia.
Remoção de uma testemunha de espelhamento
Use esse procedimento se precisar remover a testemunha de uma configuração de espelhamento do Servidor de Back-End.
No Construtor de Topologias, clique com o botão direito do mouse no pool e clique em Editar Propriedades.
Desmarque Usar testemunha de espelhamento do SQL Server para habilitar failover automático e clique em OK.
Publique a topologia.
Depois de publicar a topologia, o Construtor de Topologia verá uma mensagem que inclui o seguinte
Run the Uninstall-CsMirrorDatabase cmdlet to remove databases that are paired with following primary databases.
No entanto, não siga essa etapa e não digite
Uninstall-CsMirrorDatabase
como se isso desinstalasse toda a configuração de espelhamento.Para remover apenas a testemunha da configuração SQL Server, siga as instruções em "Remover a Testemunha de uma Sessão de Espelhamento de Banco de Dados (SQL Server)" em https://go.microsoft.com/fwlink/p/?LinkId=268456.