Citrix Virtual Apps and Desktops

Banco de dados

Um site Citrix Virtual Apps ou Citrix Virtual Desktops usa três bancos de dados SQL Server:

  • Site: (também conhecido como configuração do site) armazena a configuração do site em execução, além do estado atual da sessão e informações de conexão.
  • Registro de configuração em log: (também conhecido como registro em log) armazena informações sobre atividades administrativas e alterações na configuração do site. Esse banco de dados é usado quando o recurso de registro de configuração em log está habilitado (padrão = ativado).
  • Monitoramento: armazena dados usados pelo Director, como informações de sessão e conexão.

Cada Delivery Controller se comunica com o banco de dados do site. A autenticação do Windows é necessária entre o Controller e os bancos de dados. Um Controller pode ser desconectado ou desligado sem afetar outros Controllers no site. Isso significa, no entanto, que o banco de dados do site forma um ponto único de falha. Se o servidor de banco de dados falhar, as conexões existentes continuarão a funcionar até que um usuário faça logoff ou se desconecte. Para obter informações sobre o comportamento da conexão quando o banco de dados do site fica indisponível, consulte Cache de host local.

A Citrix recomenda o seguinte em relação aos bancos de dados:

  • Faça backup regularmente. Faça backup dos bancos de dados regularmente para que você possa restaurar a partir do backup caso o servidor de banco de dados falhar. A estratégia de backup para cada banco de dados pode ser diferente. Para obter mais informações, consulte CTX135207; observe, no entanto, que o artigo se refere ao CitrixXenDesktopDB, que não é mais suportado nem está disponível para os clientes.

  • Faça backup e restaure regularmente os bancos de dados Site, Monitoring e Logging SQL Server. Para obter informações específicas sobre bancos de dados do SQL Server, consulte Criando backups completos e diferenciais de um banco de dados do SQL Server.

Se o seu site contiver mais de uma zona, certifique-se de que a zona primária contenha sempre o banco de dados do site. Os Controllers em todas as zonas se comunicam com esse banco de dados.

Alta disponibilidade

Existem várias soluções de alta disponibilidade a serem consideradas para garantir o failover automático:

  • Grupos de disponibilidade AlwaysOn (incluindo os grupos de disponibilidade básica): esta solução de alta disponibilidade e recuperação de desastres de nível empresarial introduzida no SQL Server 2012 permite maximizar a disponibilidade de um ou mais bancos de dados. Os grupos de disponibilidade AlwaysOn exigem que as instâncias do SQL Server residam nos nós do Windows Server Failover Clustering (WSFC). Para obter mais informações, consulte Windows Server Failover Clustering com SQL Server.
  • Espelhamento de banco de dados do SQL Server: o espelhamento do banco de dados garante que, se você perder o servidor de banco de dados ativo, um processo de failover automático aconteça em questão de segundos, de modo que os usuários não sejam afetados no geral. Esse método é mais caro do que outras soluções porque são necessárias licenças completas do SQL Server em cada servidor de banco de dados. Não é possível usar a edição do SQL Server Express em um ambiente espelhado.
  • Clustering de SQL: a tecnologia de cluster do Microsoft SQL pode ser usada para permitir automaticamente que um servidor assuma as tarefas e responsabilidades de outro servidor que falhou. No entanto, configurar essa solução é mais complicado, e o processo de failover automático geralmente é mais lento do que alternativas como o espelhamento de SQL.
  • Usando os recursos de alta disponibilidade do hipervisor: com este método, você implanta o banco de dados como uma máquina virtual e usa os recursos de alta disponibilidade do seu hipervisor. Essa solução é menos dispendiosa do que o espelhamento porque usa o seu software de hipervisor existente e você também pode usar a edição do SQL Server Express. No entanto, o processo de failover automático é mais lento, pois pode demorar até que outro computador seja iniciado para o banco de dados, o que pode interromper o serviço para os usuários.

O recurso de cache de host local complementa as práticas recomendadas de alta disponibilidade do SQL Server. O Cache de Host Local permite que os usuários se conectem e se reconectem a aplicativos e áreas de trabalho mesmo quando o banco de dados do site não está disponível. Para obter mais informações, consulte Cache de host local.

Se todos os Controllers em um site falharem, você pode configurar os VDAs para operar no modo de alta disponibilidade, o que permite que os usuários continuem acessando suas áreas de trabalho e aplicativos. No modo de alta disponibilidade, o VDA aceita conexões ICA diretas dos usuários, em vez de conexões intermediadas pelo Controller. Use esse recurso somente na rara eventualidade de a comunicação com todos os Controllers falhar. O recurso não é uma alternativa a outras soluções de alta disponibilidade. Para obter mais informações, consulte CTX 127564.

A instalação de um Controller em um nó em uma instalação de cluster SQL ou espelhamento SQL não é suportada.

Instalar o software de banco de dados

Por padrão, a edição do SQL Server Express é instalada quando você instala o primeiro Delivery Controller, se outra instância do SQL Server não for detectada nesse servidor. Essa ação padrão geralmente é suficiente para provas de conceito ou implantações piloto. No entanto, o SQL Server Express não suporta recursos de alta disponibilidade da Microsoft.

A instalação padrão usa as permissões e contas de serviço padrão do Windows. Consulte a documentação da Microsoft para obter detalhes sobre esses padrões, incluindo a adição de contas de serviço do Windows à função sysadmin. O Controller usa a conta do serviço de rede nessa configuração. O Controller não requer nenhuma função ou permissão adicional do SQL Server.

Se necessário, você pode selecionar Hide instance para a instância do banco de dados. Ao configurar o endereço do banco de dados no Studio, insira o número da porta estática da instância, em vez de seu nome. Consulte a documentação da Microsoft para obter detalhes sobre como ocultar uma instância do mecanismo de banco de dados do SQL Server.

Para a maioria das implantações de produção e qualquer implantação que use recursos de alta disponibilidade da Microsoft, recomendamos usar apenas edições não Express compatíveis do SQL Server. Instale o SQL Server em outros computadores que não o servidor onde o primeiro Controller está instalado. Requisitos do sistema lista as versões do SQL Server suportadas. Os bancos de dados podem residir em um ou mais computadores.

Verifique se o software SQL Server está instalado antes de criar um site. Você não precisa criar o banco de dados, mas, se fizer, ele deve estar vazio. A configuração de tecnologias de alta disponibilidade da Microsoft também é recomendada.

Use o Windows Update para manter o SQL Server atualizado.

Configurar os bancos de dados a partir do assistente de criação de site

Especifique os nomes e endereços do banco de dados (localização) na página Databases no assistente de criação de site. (Consulte Formatos de endereço de banco de dados.) Para evitar possíveis erros quando o Director consulta o Monitor Service, não use espaços em branco no nome do banco de dados de monitoramento.

A página Databases oferece duas opções para configurar os bancos de dados: automática e com uso de scripts. Geralmente, é possível usar a opção automática se você (usuário do Studio e administrador do Citrix) tiver os privilégios de banco de dados necessários. (Consulte Permissões necessárias para configurar bancos de dados.)

Você pode alterar a localização do banco de dados de monitoramento e registro de configuração em log posteriormente, depois de criar o site. Consulte Alterar a localização dos bancos de dados.

Para configurar um site para usar um banco de dados espelhado, conclua o seguinte e prossiga com os procedimentos de configuração automática ou com script.

  1. Instale o software do SQL Server em dois servidores, A e B.
  2. No Servidor A, crie o banco de dados destinado a ser usado como o principal. Faça o backup do banco de dados no Servidor A e copie-o para o Servidor B.
  3. No Servidor B, restaure o arquivo de backup.
  4. Comece o espelhamento no Servidor A.

Para verificar o espelhamento após a criação do site, execute o cmdlet PowerShell get-configdbconnection para garantir que o parceiro de failover tenha sido definido na cadeia de conexão para o espelho.

Se você adicionar, mover ou remover posteriormente um Delivery Controller em um ambiente de banco de dados espelhado, consulte Delivery Controllers.

Configuração automática

Se você tiver os privilégios de banco de dados necessários, selecione Create and set up databases from Studio na página Databases do assistente de criação de site. Em seguida, forneça os nomes e endereços dos principais bancos de dados.

Se existir um banco de dados em um endereço especificado, ele deverá estar vazio. Se os bancos de dados não existirem em um endereço especificado, você será informado de que um banco de dados não pode ser encontrado e indagado se deseja que o banco de dados seja criado para você. Quando você confirma essa ação, o Studio cria automaticamente os bancos de dados e, em seguida, aplica os scripts de inicialização para os bancos de dados principal e de réplica.

Configuração com script

Se você não tiver os direitos de banco de dados necessários, solicite assistência de alguém que tenha, como um administrador de banco de dados. Esta é a sequência:

  1. Na página Databases do assistente de criação de site, selecione Generate scripts to manually set up. Essa ação gera os três tipos de scripts a seguir para cada um dos seguintes bancos de dados principal e de réplica: banco de dados de site, monitoramento e log.

    • Script contendo “SysAdmin” no nome. Um script que cria os bancos de dados e o login do Delivery Controller. Essas tarefas exigem direitos securityadmin.
    • Script contendo “DbOwner” no nome. Um script que cria as funções de usuário no banco de dados, adiciona os logins e, em seguida, cria os esquemas do banco de dados. Essas tarefas exigem direitos db_owner.
    • Script contendo “Mixed” no nome. todas as tarefas em um script, independentemente dos direitos necessários.

    Você pode indicar onde armazenar os scripts.

    Nota:

    Em ambientes corporativos, a configuração do banco de dados inclui scripts que podem ser manipulados por equipes diferentes com diferentes funções (direitos): securityadmin ou db_owner. Se aplicável, primeiro você tem os scripts “SysAdmin” executados por administradores com a função securityadmin e, em seguida, os scripts “DbOwner” executados por administradores com direitos db_owner. Para gerar esses scripts, você também pode usar o PowerShell. Para detalhes, consulte Preferred database rights scripts.

  2. Forneça esses scripts ao seu administrador de banco de dados. O assistente de criação do site para automaticamente nesse momento. Posteriormente, você será solicitado para continuar a criação do site quando voltar a ele.

O administrador do banco de dados então cria os bancos de dados. Cada banco de dados deve ter as seguintes características:

  • Usar um agrupamento que termine com _CI_AS_KS. Recomendamos o uso de um agrupamento que termine com _100_CI_AS_KS.
  • Para um desempenho ideal, ative o instantâneo de leitura confirmada do SQL Server. Para obter detalhes, consulte CTX 137161.
  • Recursos de alta disponibilidade configurados, se aplicável.
  • Para configurar o espelhamento, primeiro defina o banco de dados para usar o modelo de recuperação completa (o modelo simples é o padrão). Faça backup do banco de dados principal para um arquivo e copie-o para o servidor de espelhamento. Em seguida, restaure o arquivo de backup no servidor de espelhamento. Por fim, comece a espelhar no servidor principal.

O administrador do banco de dados usa o utilitário de linha de comando SQLCMD ou o SQL Server Management Studio no modo SQLCMD para:

  • Executar cada um dos scripts xxx_Replica.sql nas instâncias do banco de dados do SQL Server de alta disponibilidade (se a alta disponibilidade estiver configurada)
  • Executar cada um dos scripts xxx\_Principal.sql nas instâncias principais do banco de dados do SQL Server.

Consulte a documentação da Microsoft para obter informações detalhadas sobre SQLCMD.

Quando todos os scripts forem concluídos com êxito, o administrador do banco de dados fornece ao administrador Citrix os três endereços principais do banco de dados.

O Studio solicita que você continue a criação do site. Você retornará à página Databases. Insira os endereços. Se algum dos servidores que hospedam um banco de dados não puder ser contatado, uma mensagem de erro é exibida.

Permissões necessárias para configurar bancos de dados

Você deve ser um administrador local e um usuário de domínio para criar e inicializar os bancos de dados (ou alterar o local do banco de dados). Você também deve ter certas permissões do SQL Server. As permissões a seguir podem ser explicitamente configuradas ou adquiridas pela associação de grupo do Active Directory. Se as credenciais de usuário do Studio não incluírem essas permissões, você será solicitado a fornecer credenciais de usuário do SQL Server.

Operação Finalidade Função de servidor Função de banco de dados
Criar um banco de dados Criar um banco de dados vazio apropriado dbcreator  
Criar um esquema Criar todos os esquemas específicos do serviço e adicionar o primeiro Controller ao site securityadmin* db_owner
Adicionar um Controller Adicionar um Controller (diferente do primeiro) ao site securityadmin* db_owner
Adicionar um Controller (servidor espelhado) Adicionar um login do Controller ao servidor de banco de dados atualmente na função de espelho de um banco de dados espelhado securityadmin*  
Remover o Controller Remover o Controller do site ** db_owner
Atualizar um esquema Aplicar atualizações de esquema ou hotfixes   db_owner

* Embora tecnicamente mais restritivo, na prática, você pode tratar a função de servidor securityadmin como equivalente à função de servidor sysadmin.

** Quando um Controller é removido de um site, seja por meio do Studio ou usando scripts gerados pelo Studio ou SDK, o logon do Controller no servidor de banco de dados não é removido. Isso ocorre para evitar a possibilidade de remover um login utilizado por outros serviços, que não este produto Citrix, na mesma máquina. O login deve ser removido manualmente se não for mais necessário. Esta ação requer associação de função de servidor securityadmin.

Ao usar o Studio para executar essas operações, o usuário do Studio deve ter uma conta de servidor de banco de dados que seja explicitamente membro das funções de servidor apropriadas, ou deve ser capaz de fornecer credenciais de uma conta que seja.

Scripts preferenciais de direitos de bancos de dados

Em ambientes corporativos, a configuração do banco de dados inclui scripts que devem ser manipulados por equipes diferentes com diferentes funções (direitos): securityadmin ou db_owner.

Usando o PowerShell, você pode especificar os direitos preferidos de banco de dados. A especificação de um valor não padrão resulta na criação de scripts separados. Um script contém tarefas que precisam da função securityadmin. O outro script requer apenas direitos db_owner e pode ser executado por um administrador do Citrix, sem precisar entrar em contato com um administrador de banco de dados.

Nos cmdlets get-*DBSchema, a opção -DatabaseRights tem os seguintes valores válidos:

  • SA: gera um script que cria os bancos de dados e o login do Delivery Controller. Essas tarefas exigem direitos securityadmin.
  • DBO: gera um script que cria as funções de usuário no banco de dados, adiciona os logins e, em seguida, cria os esquemas do banco de dados. Essas tarefas exigem direitos db_owner.
  • Mixed: (padrão) todas as tarefas em um script, independentemente dos direitos necessários.

Para obter mais informações, consulte a ajuda do cmdlet.

Formatos de endereço de banco de dados

Você pode especificar um endereço de banco de dados em uma das seguintes formas:

  • ServerName
  • ServerName\InstanceName
  • ServerName,PortNumber

Para um Grupo de Disponibilidade AlwaysOn, especifique o ouvinte do grupo no campo de local.

Alterar a localização dos bancos de dados

Depois de criar um site, você pode alterar o local dos bancos de dados de monitoramento e registro de configuração em log. (Não é possível alterar a localização do banco de dados do site.) Quando você altera a localização de um banco de dados:

  • Os dados no banco de dados anterior não são importados para o novo banco de dados.
  • Os logs não podem ser agregados de ambos os bancos de dados quando recuperados.
  • A primeira entrada de log no novo banco de dados indica que ocorreu uma alteração no banco de dados, mas não identifica o banco de dados anterior.

Não é possível alterar a localização do banco de dados de registro de configuração em log quando o registro em log obrigatório está habilitado.

Para alterar a localização de um banco de dados:

  1. Verifique se uma versão suportada do Microsoft SQL Server está instalada no servidor onde você deseja que o banco de dados resida. Configure recursos de alta disponibilidade conforme necessário.
  2. Selecione Configuration no painel de navegação do Studio.
  3. Selecione o banco de dados para o qual deseja especificar um novo local e, em seguida, selecione Change Database no painel Actions.
  4. Especifique o novo local e o nome do banco de dados.
  5. Se você quiser que o Studio crie o banco de dados, e tiver as permissões apropriadas, clique em OK. Quando solicitado, clique em OK e o Studio criará o banco de dados automaticamente. O Studio tenta acessar o banco de dados usando suas credenciais. Se isso falhar, você será solicitado a fornecer as credenciais do usuário do banco de dados. Em seguida, o Studio carrega o esquema do banco de dados para o banco de dados. As credenciais são retidas apenas durante o período de criação do banco de dados.
  6. Se você não quiser que o Studio crie o banco de dados ou não tiver permissões suficientes, clique em Generate script. Os scripts gerados incluem instruções para criar manualmente o banco de dados e um banco de dados espelhado, se necessário. Antes de carregar o esquema, verifique se o banco de dados está vazio e que pelo menos um usuário tenha permissão para acessar e alterar o banco de dados.

Mais informações