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á ativado (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 constitui um único ponto de falha. Se o servidor de banco de dados falhar, as conexões existentes continuarão funcionando 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 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 de Cluster de Failover do Windows Server (WSFC). Para obter mais informações, consulte Clustering de Failover do Windows Server 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 ocorrerá em questão de segundos, de modo que os usuários geralmente não sejam afetados. Este 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. Você não pode usar a edição SQL Server Express em um ambiente espelhado.
- Clustering SQL: A tecnologia de clustering 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 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 os usuários.
O recurso Cache de Host Local complementa as melhores práticas de alta disponibilidade do SQL Server. O Cache de Host Local permite que os usuários 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 em modo de alta disponibilidade, o que permite que os usuários continuem a acessar seus desktops 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 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.
Não há suporte para a instalação de um Controller em um nó em uma instalação de cluster SQL ou espelhamento SQL.
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 prova de conceito ou implantações piloto. No entanto, o SQL Server Express não oferece suporte aos recursos de alta disponibilidade da Microsoft.
A instalação padrão usa as contas e permissões 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 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 do SQL Server compatíveis. Instale o SQL Server em máquinas diferentes do servidor onde o primeiro Controller está instalado. Requisitos do sistema lista as versões compatíveis 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 de site
Especifique os nomes e endereços (localização) do banco de dados na página Bancos de Dados 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 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ê (o usuário do Studio e 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 o local do banco de dados de log de configuração e monitoramento mais tarde, depois de criar o site. Consulte Alterar locais de banco de dados.
Para configurar um site para usar um banco de dados espelho, conclua o seguinte e, em seguida, prossiga com os procedimentos de configuração automática ou por script.
- Instale o software SQL Server em dois servidores, A e B.
- 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.
- No Servidor B, restaure o arquivo de backup.
- Inicie o espelhamento no servidor A.
Para verificar o espelhamento após a criação do 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 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 em um 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. A sequência é a seguinte:
-
Na página Bancos de dados do 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 a seguir: 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 usuário 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.
Nota:
Em ambientes corporativos, a configuração do banco de dados inclui scripts que podem ser tratados por diferentes equipes com diferentes funções (direitos):
securityadminoudb_owner. Se aplicável, você primeiro tem scripts “SysAdmin” executados por administradores com a funçãosecurityadmine depois scripts “DbOwner” executados por administradores com direitosdb_owner. Para gerar esses scripts, você também pode usar o PowerShell. Para obter detalhes, consulte Scripts de direitos de banco de dados preferenciais. -
Entregue esses scripts ao seu administrador de banco de dados. O assistente de criação do site para automaticamente neste ponto. Você será solicitado a continuar a criação do site quando retornar mais tarde.
O administrador do banco de dados então cria os bancos de dados. Cada banco de dados deve ter as seguintes características:
- Use um agrupamento que termine com
_CI_AS_KS. Recomendamos usar um agrupamento 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 do banco de dados usa o utilitário de linha de comando SQLCMD ou o SQL Server Management Studio no modo SQLCMD para:
- Execute cada um dos scripts
xxx_Replica.sqlnas instâncias de banco de dados SQL Server de alta disponibilidade (se a alta disponibilidade estiver configurada) - Execute cada um dos scripts
xxx\_Principal.sqlnas instâncias de banco de dados SQL Server principais.
Consulte a documentação da Microsoft para obter detalhes sobre o SQLCMD.
Quando todos os scripts forem concluídos com sucesso, 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ê é redirecionado para a 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 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 configuradas explicitamente ou adquiridas por meio da associação a grupos do Active Directory. Se suas 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 do servidor | Função do 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 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 via 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 a associação à função de servidor securityadmin.
Ao usar o Studio para realizar 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 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 manipulados 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 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 direitossecurityadmin. -
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 direitosdb_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:
ServerNameServerName\InstanceNameServerName,PortNumber
Para um Grupo de Disponibilidade AlwaysOn, especifique o ouvinte do grupo no campo de localização.
Para espelhamento de banco de dados, especifique apenas o endereço do servidor principal. O Citrix Site Manager localiza o servidor espelho com base no servidor principal.
Para obter mais informações sobre como configurar o servidor SQL autônomo, Espelhamento de Banco de Dados e Alta Disponibilidade AlwaysOn, consulte este artigo CTX.
Alterar locais do banco de dados
Depois de criar um site, você pode alterar o local dos bancos de dados de log de configuração e monitoramento. (Você não pode alterar o local do banco de dados do site.) Ao alterar o local 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 no banco de dados ocorreu, mas não identifica o banco de dados anterior.
Você não pode alterar o local do banco de dados de log de configuração quando o log obrigatório está habilitado.
Para alterar o local de um banco de dados:
- Certifique-se de que uma versão compatível 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.
- Selecione Configuração no painel de navegação do Studio.
- Selecione o banco de dados para o qual você deseja especificar um novo local e, em seguida, selecione Alterar Banco de Dados no painel Ações.
- Especifique o novo local e o nome do banco de dados.
- 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 então o Studio o cria automaticamente. O Studio tenta acessá-lo usando suas credenciais. Se isso falhar, você será solicitado a fornecer as credenciais do usuário do banco de dados. O Studio então carrega o esquema do banco de dados para ele. As credenciais são retidas apenas durante o período de criação do banco de dados.
- 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 um usuário tenha permissão para acessar e alterar o banco de dados.
Mais informações
- Ferramenta de dimensionamento de banco de dados.
- Dimensionando o banco de dados do site e configurando cadeias de conexão ao usar soluções de alta disponibilidade do SQL Server.