Bancos de Dados
Nota:
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 da sessão atual e informações de conexão.
- Logging: (também conhecido como Registro 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 registro de configuração está ativado (padrão = ativado).
- 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 forma um ponto único 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 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 diferir. 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 do Site, Monitoring e Logging. Para obter informações específicas sobre bancos de dados SQL Server, consulte Criação de Backups Completos e Diferenciais de um Banco de Dados SQL Server.
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 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 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.
- Clusterização SQL: A tecnologia de clusterização 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 no 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 clusterização SQL ou espelhamento SQL não é suportada.
Instalar software de banco de dados
Nota:
A partir da versão 2411, você pode usar a Instância Gerenciada do Azure SQL para bancos 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 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 Serviço de Rede 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 Serviço de Monitoramento, 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 o local do registro de configuração e do banco de dados de monitoramento posteriormente, após 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 criar o site, execute o cmdlet PowerShell get-configdbconnection para garantir que o Failover Partner tenha sido definido na cadeia 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 que você especificar, 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: 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, 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. -
Entregue esses scripts ao seu administrador de banco de dados. O assistente de criação de 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 um agrupamento que termine com
_CI_AS_KS. Recomendamos usar 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 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á 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 aparecerá.
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 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 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, 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 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 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 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 ouvinte do grupo no campo de localização.
Alterar locais de banco de dados
Depois de criar um site, você pode alterar o local dos bancos de dados de registro de configuração e monitoramento. No entanto, você não pode alterar o local do banco de dados do site. Ao alterar o local de um banco de dados, tenha em mente as seguintes notas:
- 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 ao recuperar logs.
- 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.
- Você não pode alterar o local do banco de dados de registro de configuração quando o registro obrigatório está ativado.
- A alteração de locais de banco de dados entre SQL Server e Azure SQL não é suportada.
Para alterar o local de um banco de dados:
- Se você usa o Microsoft SQL Server, certifique-se de que uma versão suportada 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 um novo local e, em seguida, selecione “Alterar Banco de Dados” na barra de ações.
- Especifique o novo local e o nome do banco de dados. Se o banco de dados estiver hospedado no Azure SQL, digite as credenciais de uma entidade de serviço com permissão para gerenciar o banco de dados.
- Se você deseja que o Web Studio crie o banco de dados e você tem as permissões apropriadas, clique em “Concluído”. Quando solicitado, clique em “Concluído” e, em seguida, o Web Studio cria o banco de dados automaticamente. O Web 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. O Web 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.
- Se você não deseja que o Web Studio crie o banco de dados, ou não tem 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 cadeias de conexão ao usar soluções de alta disponibilidade do SQL Server.