Citrix Virtual Apps and Desktops

Bancos de Dados

Um site do 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: (também conhecido como registro) armazena informações sobre alterações na configuração do site e atividades administrativas. Este banco de dados é usado quando o recurso de registro de configuração está habilitado (padrão = habilitado).
  • 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 constitui um único ponto de falha. Se o servidor de banco de dados falhar, as conexões existentes continuam a funcionar até que uma pessoa faça logoff ou se desconecte. Para obter informações sobre o comportamento da conexão quando o banco de dados do site se torna indisponível, consulte Cache de Host Local.

A Citrix recomenda que você faça backup dos bancos de dados regularmente para que possa restaurar a partir do backup se o servidor de banco de dados falhar. A estratégia de backup para cada banco de dados pode ser diferente. Para obter instruções, consulte CTX135207.

Se o seu site contiver mais de uma zona, certifique-se de que a zona primária sempre contenha o banco de dados do site. Os Controllers em cada zona 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 Grupos de Disponibilidade Básicos): Esta solução de alta disponibilidade e recuperação de desastres de nível empresarial, introduzida no SQL Server 2012, permite maximizar a disponibilidade para um ou mais bancos de dados. Os Grupos de Disponibilidade AlwaysOn exigem que as instâncias do SQL Server residam em 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 ocorra em questão de segundos, de modo que as pessoas geralmente não sejam afetadas. Este método é mais caro do que outras soluções porque licenças completas do SQL Server são necessárias em cada servidor de banco de dados. Você não pode usar a edição SQL Server Express em um ambiente espelhado.
  • Clusterização SQL: A tecnologia de clusterização SQL da Microsoft pode ser usada para permitir automaticamente que um servidor assuma as tarefas e responsabilidades de outro servidor que falhou. No entanto, configurar esta solução é mais complicado, e o processo de failover automático é tipicamente mais lento do que alternativas como o espelhamento SQL.
  • Uso dos 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. Esta solução é menos cara do que o espelhamento porque usa seu software de hipervisor existente e você também pode usar a edição SQL Server Express. No entanto, o processo de failover automático é mais lento, pois pode levar tempo para uma nova máquina iniciar para o banco de dados, o que pode interromper o serviço para as pessoas.

O recurso Cache de Host Local complementa as melhores práticas de alta disponibilidade do SQL Server. O Cache de Host Local permite que as pessoas se conectem e reconectem a aplicativos e desktops 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 as pessoas continuem a acessar seus desktops e aplicativos. No modo de alta disponibilidade, o VDA aceita conexões ICA diretas de pessoas, em vez de conexões intermediadas pelo Controller. Use este recurso apenas na rara ocasião em que 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 clusterização SQL ou espelhamento SQL não é suportada.

Instalar software de banco de dados

Por padrão, a edição 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 contas de serviço e permissões 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 Network Service nesta configuração. O Controller não requer nenhuma função ou permissão adicional do SQL Server.

Se necessário, você pode selecionar “Ocultar instância” 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 SQL Server Database Engine.

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 suportadas do SQL Server. Instale o SQL Server em máquinas diferentes do servidor onde o primeiro Controller está instalado. Requisitos do sistema lista as versões suportadas do SQL Server. Os bancos de dados podem residir em uma ou mais máquinas.

Certifique-se de que o software SQL Server esteja instalado antes de criar um site. Você não precisa criar o banco de dados, mas se o 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 do site

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

A página “Bancos de Dados” oferece duas opções para configurar os bancos de dados: automática e usando scripts. Geralmente, você pode usar a opção automática se você (a pessoa usuária do Studio e o administrador 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 registro de configuração e monitoramento posteriormente, após criar o site. Consulte Alterar localizações de banco de dados.

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

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

Para verificar o espelhamento após criar o site, execute o cmdlet do PowerShell get-configdbconnection para garantir que o Failover Partner tenha sido definido na string de conexão para o espelho.

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

Configuração automática

Se você tiver os privilégios de banco de dados necessários, selecione “Criar e configurar bancos de dados a partir do Studio” na página “Bancos de Dados” do assistente de criação do site. Em seguida, forneça os nomes e endereços dos bancos de dados principais.

Se um banco de dados existir no endereço especificado, ele deve 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, em seguida, perguntado se deseja que o banco de dados seja criado para você. Ao confirmar 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 por script

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

  1. Na página “Bancos de Dados” no assistente de criação do site, selecione “Gerar scripts para configurar manualmente”. Esta ação gera os três tipos de scripts a seguir para cada um dos bancos de dados principal e de réplica: bancos de dados de site, monitoramento e registro.

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

    Você pode indicar onde armazenar os scripts.

    Observação:

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

  2. Entregue esses scripts ao seu administrador de banco de dados. O assistente de criação do site para automaticamente neste ponto. Você será solicitado quando retornar mais tarde para continuar a criação do site.

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

  • Use uma ordenação que termine com _CI_AS_KS. Recomendamos usar uma ordenação que termine com _100_CI_AS_KS.
  • Para um desempenho ideal, habilite o SQL Server Read-Committed Snapshot. 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 em um arquivo e copie-o para o servidor espelho. Em seguida, restaure o arquivo de backup no servidor espelho. Finalmente, inicie o espelhamento no servidor principal.

O administrador de 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 de banco de dados SQL Server de alta disponibilidade (se a alta disponibilidade estiver configurada)
  • Executar cada um dos scripts xxx\_Principal.sql nas instâncias de banco de dados SQL Server principal.

Consulte a documentação da Microsoft para obter detalhes sobre o SQLCMD.

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

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

Permissões necessárias para configurar bancos de dados

Você deve ser um administrador local e uma pessoa usuária de domínio para criar e inicializar os bancos de dados (ou alterar a localização do banco de dados). Você também deve ter certas permissões do SQL Server. As permissões a seguir podem ser configuradas explicitamente ou adquiridas por meio da associação a grupos do Active Directory. Se suas credenciais de pessoa usuária do Studio não incluírem essas permissões, você será solicitado a fornecer credenciais de pessoa usuária 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 adequado 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 espelho) Adicionar um login de Controller ao servidor de banco de dados atualmente na função de espelho de um banco de dados espelhado securityadmin*  
Remover Controller Remover Controller do site ** db_owner
Atualizar um esquema Aplicar atualizações de esquema ou hotfixes   db_owner

* Embora tecnicamente mais restritiva, 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 através do Studio ou usando scripts gerados pelo Studio ou SDK, o logon do Controller para o servidor de banco de dados não é removido. Isso é para evitar a remoção potencial de um logon que está sendo usado por outros serviços além deste produto Citrix na mesma máquina. O logon deve ser removido manualmente se não for mais necessário. Esta ação requer associação à função de servidor securityadmin.

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

Scripts de direitos de banco de dados preferenciais

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

Usando o PowerShell, você pode especificar os direitos de banco de dados preferenciais. 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 de db_owner e pode ser executado por um administrador Citrix, sem a necessidade de contatar 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 de securityadmin.
  • DBO: Gera um script que cria as funções de pessoa usuária no banco de dados, adiciona os logins e, em seguida, cria os esquemas do banco de dados. Essas tarefas exigem direitos de db_owner.
  • Mixed: (Padrão) Todas as tarefas em um único 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 listener do grupo no campo de localização.

Alterar localizações de banco de dados

Depois de criar um site, você pode alterar a localização dos bancos de dados de registro de configuração e monitoramento. (Você não pode alterar a localização do banco de dados do site.) Ao alterar a localização de um banco de dados:

  • Os dados do 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 ao recuperar logs.
  • A primeira entrada de log no novo banco de dados indica que uma alteração de banco de dados ocorreu, mas não identifica o banco de dados anterior.

Você não pode alterar a localização do banco de dados de registro de configuração quando o registro obrigatório está habilitado.

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

  1. Certifique-se de que uma versão suportada do Microsoft SQL Server esteja instalada no servidor onde você deseja que o banco de dados resida. Configure os recursos de alta disponibilidade conforme necessário.
  2. Selecione “Configuração” no painel de navegação do Studio.
  3. Selecione o banco de dados para o qual você deseja especificar uma nova localização e, em seguida, selecione “Alterar Banco de Dados” no painel “Ações”.
  4. Especifique a nova localização 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, em seguida, o Studio cria 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 da pessoa usuária do banco de dados. O Studio então 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 se não tiver permissões suficientes, clique em “Gerar script”. Os scripts gerados incluem instruções para criar manualmente o banco de dados e um banco de dados espelho, se necessário. Antes de carregar o esquema, certifique-se de que o banco de dados esteja vazio e que pelo menos uma pessoa usuária tenha permissão para acessar e alterar o banco de dados.

Mais informações

Bancos de Dados