Procedimento de failover ABC do pool Front-End no Lync Server 2013
Tópico última modificação: 22-05-2014
Use as etapas a seguir para executar o procedimento de failover ABC. Esse procedimento contém uma descrição de alto nível de cada etapa, seguida por comandos e cmdlets a serem executados para cada etapa.
Para executar os cmdlets, abra um Shell de Gerenciamento do Lync Server usando Executar como Administrador.
Para executar um failover ABC
Verifique se o pool A é o host do CMS (Servidor de Gerenciamento Central).
Execute o seguinte cmdlet:
Get-CsService -CentralManagement
Se o campo Identidade do CMS ativo apontar para o FQDN (nome de domínio totalmente qualificado) do Pool A, use as etapas 2 e 3 deste procedimento para fazer failover do Servidor de Gerenciamento Central primeiro. Caso contrário, pule para a etapa 4.
Faça failover do CMS para o Pool B no modo de recuperação de desastre executando o seguinte cmdlet:
Invoke-CsManagementServerFailover -BackupSqlServerFqdn <Pool B BE FQDN> -BackupSqlInstanceName <Pool B BE instance name> [-BackupMirrorSqlServerFqdn <Pool B Mirror BE FQDN> -BackupMirrorSqlInstanceName <Pool B Mirror BE Instance name>] -Force -Verbose
Depois de fazer isso, recomendamos que você mova o CMS do pool B para outro pool emparelhado existente para resiliência extra. Para obter detalhes, consulte Move-CsManagementServer..
Se o Pool A contiver CMS, importe a configuração do LIS do pool A para o banco de dados LIS do pool B (Lis.mdf). Isso funcionará somente se você tiver feito backup de dados LIS regularmente. Para importar a configuração do LIS, execute os seguintes cmdlets:
Import-CsLisConfiguration -FileName <String> Publish-CsLisConfiguration
Importe fluxos de trabalho de serviço do Grupo de Resposta do Lync Server com backup do pool A para o pool B.
Nota
Atualmente, o cmdlet Import-CsRgsConfiguration requer que os nomes da fila e do fluxo de trabalho no pool A sejam distintos dos nomes de fila e fluxo de trabalho no pool B. Se os nomes não forem distintos, você receberá um erro ao executar o cmdlet Import-CsRgsConfiguration , e as filas e fluxos de trabalho precisarão ser renomeados no pool B antes de prosseguir com o cmdlet Import-CsRgsConfiguration .
Você tem duas opções para importar a configuração do Grupo de Resposta do pool A para o pool B. A opção usada depende se você deseja substituir as configurações no nível do aplicativo do pool B com as configurações no nível do aplicativo no pool A.
Se você quiser substituir as configurações do Pool B, execute o cmdlet Import-CsRgsConfiguration pela opção ReplaceExistingSettings :
Import-CsRgsConfiguration -Destination "service:ApplicationServer:<Pool B FQDN>" -FileName "C:\RgsExportPrimary.zip" -ReplaceExistingRgsSettings
Se você não quiser substituir as configurações do Pool B, use o cmdlet Import-CsRgsConfiguration sem a opção ReplaceExistingSettings .
Import-CsRgsConfiguration -Destination "service:ApplicationServer:<Pool B FQDN>" -FileName "C:\RgsExportPrimary.zip"
Aviso
Tenha em mente que, se você não quiser substituir as configurações no nível do aplicativo do pool de backup (pool B) com as configurações do pool primário (pool A), as configurações de nível de aplicativo do pool A serão perdidas se o pool A for perdido, porque o aplicativo grupo de resposta pode armazenar apenas um conjunto de configurações no nível do aplicativo por pool. Quando o pool C é implantado para substituir o pool A, as configurações no nível do aplicativo devem ser reconfiguradas, incluindo o arquivo de áudio padrão de música em espera.
Verifique se a importação da configuração do Grupo de Resposta foi bem-sucedida executando os cmdlets a seguir para exibir os grupos de resposta importados. Observe que os grupos de resposta importados ainda pertencem ao pool A.
Get-CsRgsWorkflow -Identity "service:ApplicationServer:<Pool B FQDN>" -Owner "service:ApplicationServer:<Pool A FQDN>" Get-CsRgsQueue -Identity "service:ApplicationServer:<Pool B FQDN>" -Owner "service:ApplicationServer:<Pool A FQDN>" Get-CsRgsAgentGroup -Identity "service:ApplicationServer:<Pool B FQDN>" -Owner "service:ApplicationServer:<Pool A FQDN>"
Para Números Não Atribuídos, mova os intervalos de Números Não Atribuídos que estão usando "Comunicado" como o serviço de comunicado selecionado do pool A para o pool B. Para fazer isso:
Crie novamente todos os comunicados que foram implantados no pool A no pool B. Se algum arquivo de áudio tiver sido usado ao implantar os comunicados no pool A, esses arquivos serão necessários para criar novamente os comunicados no pool B. Para criar novamente os comunicados no pool B, use os cmdlets New-CsAnnouncement , com o pool B como o serviço pai.
Redirecionar todos os intervalos de Números Não Atribuídos direcionados a um comunicado no pool A para os comunicados recém-implantados no pool B. Execute o seguinte cmdlet para cada intervalo número não atribuído direcionado a um comunicado do pool A:
Set-CsUnassignedNumber -Identity "<Range Name>" -AnnouncementService "<Pool B FQDN>" -AnnouncementName "<New Announcement in pool B>"
Nota
Esta etapa não é necessária para intervalos de números não atribuídos que usam "UM do Exchange" como o serviço de comunicado selecionado.
Faça failover do Pool A para o Pool B no modo dr (recuperação de desastre), executando o seguinte cmdlet:
Invoke-CsPoolFailover -PoolFqdn <Pool A FQDN> -DisasterMode
Crie o pool C, mas não inicie nenhum serviço no pool C.
Observe que essa etapa pode ser executada simultaneamente com as etapas 5 e 6.
Force os usuários hospedados no pool A a migrar para o pool C executando o seguinte cmdlet:
Get-csuser -Filter {RegistrarPool -eq "<Pool A FQDN>"} | Move-CsUser -Target <Pool C FQDN> -Force
Neste ponto, os usuários hospedados no pool A começarão a experimentar uma interrupção de serviço. Essa interrupção continuará até a etapa 16, em que os serviços de ponto são iniciados no pool C.
Force o diretório de conferência do pool A a mover para o pool C executando o seguinte cmdlet:
Move-CsConferenceDirectory -Identity <Conference Directory ID of Pool A> -TargetPool <Pool C FQDN> -Force
Force o Objeto de Contato do CaA (Atendedor Automático de Conferência) a migrar do pool A para o pool C executando o seguinte cmdlet:
Move-csApplicationEndpoint -Identity "<Pool A CAA Uri>" -targetApplicationPool <Pool C FQDN> -force
Copie o conteúdo da conferência do pool B para o pool C.
Exporte dados do usuário do pool B e importe os dados do usuário para o pool C executando os seguintes cmdlets:
Export-CsUserData -PoolFqdn <Pool B Fqdn> -FileName <String> Import-CsUserData -PoolFqdn <Pool C Fqdn> -FileName <String>
Restaure os dados de aplicativo de Estacionamento de Chamada de backup do pool A no pool C e atribua os intervalos de órbita do Estacionamento de Chamada do pool A ao pool C.
Você pode reatribuir um intervalo de órbitas de Estacionamento de Chamada do pool A ao pool C por meio do Lync Server Painel de Controle ou do Shell de Gerenciamento do Lync Server. Para o Shell de Gerenciamento do Lync Server, execute o seguinte cmdlet para cada intervalo de órbita do Estacionamento de Chamada atribuído ao pool A (observe que o parâmetro Identity se refere aos Intervalos de Órbita do Estacionamento de Chamada que pertencem ao pool A):
Set-CsCallParkOrbit -Identity "<Call Park Orbit Identity>" -CallParkService "service:ApplicationServer:<Pool C FQDN>"
Se uma música em espera personalizada tiver sido configurada para o Estacionamento de Chamada no pool A, restaure o arquivo personalizado de música em espera do Estacionamento de Chamada no pool C.
Xcopy <Source> <Destination: Pool C CPS File Store Path>
Por exemplo:
Xcopy "Source Path" "<Pool C File Store Path>\OcsFileStore\coX-ApplicationServer-X\AppServerFiles\CPS\"
Por fim, reconfigure as configurações de Estacionamento de Chamada no pool C usando o cmdlet Set-CsCpsConfiguration . O aplicativo Estacionamento de Chamada pode armazenar apenas um conjunto de configurações e um arquivo de áudio de música em espera personalizado por pool, e essas configurações não são armazenadas em backup ou preservadas em caso de desastre.
Se o pool do próximo salto para Chat Persistente estiver apontando para o pool A, faça e publique alterações de topologia para que o servidor do próximo salto aponte para o pool C.
No Construtor de Topologias, altere o pool de Chat Persistente para apontar para o Pool C como seu próximo salto. Para fazer isso, clique com o botão direito do mouse no pool de Chat Persistente, clique na guia Geral e digite o nome do Pool C no Pool do Próximo Salto.
Inicie serviços no pool C executando o seguinte cmdlet:
Start-csWindowsService
Neste ponto, a interrupção do serviço termina para os usuários originalmente hospedados no pool A.
Exporte fluxos de trabalho do serviço grupo de resposta do Lync Server do pool B pertencentes ao pool A para importação para o pool C executando o seguinte cmdlet:
Export-CsRgsConfiguration -Source "service:ApplicationServer:<Pool B FQDN>" -Owner "service:ApplicationServer:<Pool A FQDN>" -FileName "C:\RgsExportPrimaryUpdated.zip"
Importar fluxos de trabalho de serviço do Grupo de Resposta do Lync Server para o pool C do pool B.
Você tem duas opções para importar a configuração do Grupo de Resposta do pool B para o pool C. A opção usada depende se você deseja substituir as configurações no nível do aplicativo do pool C com as configurações no nível do aplicativo no pool B.
Se você quiser substituir as configurações do Pool C, execute o cmdlet Import-CsRgsConfiguration pela opção ReplaceExistingSettings :
Import-CsRgsConfiguration -Destination "service:ApplicationServer:<Pool C FQDN>" -FileName "C:\RgsExportPrimary.zip" -ReplaceExistingRgsSettings
Se você não quiser substituir as configurações do Pool C, use o cmdlet Import-CsRgsConfiguration sem a opção ReplaceExistingSettings .
Import-CsRgsConfiguration -Destination "service:ApplicationServer:<Pool B FQDN>" -FileName "C:\RgsExportPrimary.zip"
Aviso
Tenha em mente que, se você não quiser substituir as configurações no nível do aplicativo do Pool C com as configurações do pool de backup (pool B), as configurações de nível de aplicativo do pool B serão perdidas porque o aplicativo grupo de resposta pode armazenar apenas um conjunto de configurações no nível do aplicativo por pool.
Verifique se a importação da configuração do Grupo de Resposta foi bem-sucedida executando os cmdlets a seguir para exibir os grupos de resposta que foram importados para o Pool C.
Get-CsRgsWorkflow -Identity "service:ApplicationServer:<Pool C FQDN>" -ShowAll Get-CsRgsQueue -Identity "service:ApplicationServer:<Pool C FQDN>" -ShowAll Get-CsRgsAgentGroup -Identity "service:ApplicationServer:<Pool C FQDN>" -ShowAll
Quando a configuração importada tiver sido verificada no pool C, remova os grupos de resposta pertencentes ao pool primário do pool B. Isso minimizará o tempo de inatividade dos grupos de resposta.
Esta etapa cria um novo arquivo com a configuração exportada e, em seguida, remove o arquivo do pool B.
Export-CsRgsConfiguration -Source "service:ApplicationServer:<Pool B FQDN>" -Owner "service:ApplicationServer:<Pool A FQDN>" -FileName "C:\RgsExportPrimaryUpdated.zip" -RemoveExportedConfiguration
Mover para o pool C os intervalos de Números Não Atribuídos que foram movidos do pool A para o pool B.
Crie novamente no pool C todos os comunicados que foram criados novamente do pool A no pool B. Se algum arquivo de áudio tiver sido usado ao implantar os comunicados a serem movidos, você precisará usar esses arquivos para criar novamente os comunicados no pool C. Para criar novamente os comunicados no pool C, use os cmdlets New-CsAnnouncement , com o pool C como o serviço pai.
Redirecionar para o pool C todos os intervalos de números não atribuídos que foram redirecionados do pool A para o pool B. Execute o seguinte cmdlet para cada intervalo número não atribuído que precisa ser redirecionado:
Set-CsUnassignedNumber -Identity "<Range Name>" -AnnouncementService "<Pool C FQDN>" -AnnouncementName "<New Announcement in pool C>"
(Opcional) Remova do pool B os comunicados que foram criados novamente no pool C se eles não estiverem mais em uso no pool B. Para remover anúncios, use o cmdlet Remove-CsAnnouncement .
Nota
Esta etapa não é necessária para intervalos de números não atribuídos que usam "UM do Exchange" como o serviço de comunicado.
Limpe os dados do usuário do pool A no pool B executando o seguinte cmdlet:
Remove-CsUserStoreBackupData -PoolFqdn <Pool B FQDN> -Verbose
Faça o seguinte no Construtor de Topologias:
Desempacolar pool A e pool B. Pool de pares B e pool C. Em seguida, remova o Pool A da topologia e publique-o. Para fazer isso:
No Construtor de Topologias, clique com o botão direito do mouse no Pool B e clique em Editar Propriedades.
Clique em Resiliência no painel esquerdo.
Na caixa abaixo do Pool de Backup Associado, selecione Pool C. Observe que a caixa de seleção Pool de Backup Associado exibirá inicialmente o pool A, pois o pool B foi anteriormente associado a esse pool.
Selecione Failback e failover automático para Voz e clique em OK.
Quando você exibir os detalhes sobre este pool, o pool associado agora aparecerá no painel direito em Resiliência.
Na árvore de console, clique com o botão direito do mouse no pool A e clique em Excluir.
Publique a topologia.
Execute o aplicativo de inicialização no pool C para instalar o aplicativo de serviço de backup e, em seguida, inicie o aplicativo de serviço de backup executando o seguinte na pasta de implantação em um computador local no pool C:
Run "%SYSTEMROOT%\Program Files\Microsoft Lync Server 2013\Deployment\Bootstrapper.exe" Start-CsWindowsService -name LyncBackup
Reinicie o aplicativo de serviço de backup no pool B executando os seguintes cmdlets:
Stop-CsWindowsService -name LyncBackup Start-CsWindowsService -name LyncBackup
Se o pool C for um Pool da Standard Edition (SE) e o pool B tiver CMS, instale o banco de dados CMS manualmente no pool C executando o seguinte cmdlet:
Install-CsDatabase -CentralManagementDatabase -SqlServerFqdn <Pool C FQDN> -SqlInstanceName rtc
Invoque o serviço de backup para sincronizar o conteúdo de conferência antigo do pool B para o pool C que foi gerado antes do emparelhamento entre B e C e para sincronizar o novo conteúdo de conferência do pool C para o pool B que foi gerado após o início do pool C e antes de B e C serem emparelhados. Para fazer isso, execute os seguintes cmdlets:
Invoke-CsBackupServiceSync -PoolFqdn <Pool C FQDN> Invoke-CsBackupServiceSync -PoolFqdn <Pool B FQDN>
Para cada Aparelho de Filial Persistente X associado ao pool A:
Desligue o SBA X executando o seguinte cmdlet:
Stop-CsWindowsService
Crie um arquivo que contenha uma lista de usuários hospedados no SBA X. A lista será necessária quando os usuários forem movidos de volta para o SBA X na etapa 30. Para fazer isso, execute o seguinte cmdlet:
Get-CsUser -Filter {RegistrarPool -eq "<SBA X FQDN>"} | Export-Csv d:\sbaxusers.txt
Force os usuários hospedados no SBA X a migrar para o pool C executando o seguinte cmdlet:
Get-CsUser -Filter {RegistrarPool -eq "<SBA X FQDN>"} | Move-CsUser -Target <Pool C FQDN> -Force -Verbose
Atualize os dados desses usuários executando primeiro os seguintes cmdlets:
Convert-csUserData -InputFile <Data file exported from PoolB> -OutputFile c:\Logs\ExportedUserData.xml -TargetVersionLync2010 $a=get-csuser -Filter {RegistrarPool -eq "FQDN of SBA X"} | select SipAddress foreach($x in $a) {$x.SipAddress.Substring(4) >> users.txt}
E, em seguida, execute este script:
$users=gc c:\logs\users.txt foreach ($user in $users) { Update-CsUserData -FileName c:\logs\exportedUserDAta.xml -UserFilter $user - }
Nota
Ocorrerá uma interrupção de serviço para usuários hospedados em SBAs associados ao pool A até que esses usuários sejam movidos para o pool C.
No Construtor de Topologias, para cada SBA X anteriormente associado ao Pool A, faça o seguinte:
Altere a associação para o Pool C. Para fazer isso, clique no site de filial, expanda o nó Aparelhos de Filial Persistentes ou Servidores e clique em Aparelho de Filial Persistente. Em seguida, selecione o pool de Front-Ends, o Pool de Serviços de Usuário ao qual esse Aparelho de Filial Persistente se conectará como Pool C e clique em Avançar.
Publique a topologia. Para fazer isso, na árvore de console, clique com o botão direito do mouse no novo Aparelho de Filial Persistente, clique em Topologia e clique em Publicar.
Para cada SBA X agora associado ao pool C:
Inicie o SBA X executando o seguinte cmdlet no aparelho de filial persistente:
Start-CsWindowsService
Mova os usuários que foram originalmente hospedados no SBA X do pool C para o SBA X executando o cmdlet a seguir.
Import-Csv d:\sbaxusers.txt | Move-CsUser -Target <SBA X FQDN> -Force