Bancos de Dados
Observação:
Você pode gerenciar sua implantação do Citrix Virtual Apps and Desktops™ usando dois consoles de gerenciamento: Web Studio (baseado na web) e Citrix Studio (baseado no Windows). Este artigo aborda apenas o Web Studio. Para obter informações sobre o Citrix Studio, consulte o artigo equivalente no Citrix Virtual Apps and Desktops 7 2212 ou anterior.
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.
- Logging: (também conhecido como Log de Configuração) armazena informações sobre alterações na configuração do site e atividades administrativas. Este banco de dados é usado quando o recurso de log de configuração está habilitado (padrão = habilitado).
- Monitoring: 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 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 se 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 ele se refere ao CitrixXenDesktopDB, que não é mais suportado ou disponível para clientes.
-
Faça backup e restaure regularmente os bancos de dados SQL Server de Site, Monitoring e Logging. Para obter informações específicas sobre bancos de dados SQL Server, consulte Creating Full and Differential Backups of a SQL Server Database.
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 with SQL Server.
- Espelhamento de banco de dados 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 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.
- Clustering SQL: A tecnologia de clustering 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 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 acessando seus desktops e aplicativos. No modo de alta disponibilidade, o VDA aceita conexões ICA diretas de 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.
A instalação de um Controller em um nó em uma instalação de clustering 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 oferece suporte aos 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 Web 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 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 Web 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 a localização do log de configuração e do banco de dados de 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.
- 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 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 de 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 Web 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” no assistente de criação de site, selecione “Gerar scripts para configuração manual”. Esta ação gera os três tipos de scripts a seguir para cada um dos bancos de dados principal e de réplica: site, monitoramento e log.
-
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.
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):
securityadminoudb_owner. Se aplicável, você primeiro terá scripts “SysAdmin” executados por administradores com a funçãosecurityadmine, em seguida, scripts “DbOwner” executados por administradores com direitos dedb_owner. Para gerar esses scripts, você também pode usar o PowerShell. Para obter detalhes, consulte Scripts de direitos de banco de dados preferenciais. -
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
-
Entregue esses scripts ao seu administrador de banco de dados. O assistente de criação de site para automaticamente neste ponto. Você será solicitado a 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.sqlnas instâncias de banco de dados SQL Server de alta disponibilidade (se a alta disponibilidade estiver configurada). - Executar 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 do 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 Web Studio solicitará que você continue a criação do site. Você será 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 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 usuário do Web Studio não incluírem essas permissões, você será solicitado a fornecer as 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 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, o login do Controller para o servidor de banco de dados não é removido. Isso é para evitar a remoção potencial de um login que está sendo usado por outros serviços além deste 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 à função de servidor securityadmin.
Ao usar o Web Studio para realizar essas operações, o usuário do Web 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 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 desecurityadmin. -
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 dedb_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:
ServerNameServerName\InstanceNameServerName,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 log 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 log de configuração quando o log obrigatório está habilitado.
Para alterar a localização de um banco de dados:
- 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.
- Faça login no Web Studio e, em seguida, selecione “Configurações” no painel esquerdo.
- Localize o bloco “Banco de Dados” e selecione “Editar”.
- Na página “Gerenciar Banco de Dados”, selecione o banco de dados para o qual você deseja especificar uma nova localização e, em seguida, selecione “Alterar Banco de Dados” na barra de ações.
- Especifique a nova localização e o nome do banco de dados.
- Se você deseja que o Web Studio crie o banco de dados e tiver as permissões apropriadas, clique em “Concluído”. Quando solicitado, clique em “Concluído”, e então o Web Studio criará o banco de dados automaticamente. O Web Studio tentará 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. O Web Studio então carregará 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.
- Se você não deseja que o Web Studio crie o banco de dados, ou não tiver permissões suficientes, clique em “Gerar script de banco de dados”. 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.
- Dimensionamento do banco de dados do site e configuração de strings de conexão ao usar soluções de alta disponibilidade do SQL Server.