Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server em VM do Azure
Sugestão
Há muitos métodos para configurar um grupo de disponibilidade. Simplifique sua implantação e elimine a necessidade de um Balanceador de Carga do Azure ou DNN (nome de rede distribuída) para seu grupo de disponibilidade Always On criando suas máquinas virtuais (VMs) do SQL Server em várias sub-redes dentro da mesma rede virtual do Azure. Se você já criou seu grupo de disponibilidade em uma única sub-rede, poderá migrá-lo para um ambiente de várias sub-redes.
Há certos recursos do SQL Server que dependem de um nome de rede virtual codificado (VNN). Assim, ao usar o recurso Distributed Network Name (DNN) com a sua instância de cluster de failover e SQL Server em máquinas virtuais na Azure, há algumas considerações.
Neste artigo, saiba como configurar o alias de rede ao utilizar o recurso DNN e quais as funcionalidades do SQL Server que requerem consideração adicional.
Criar alias de rede (FCI)
Alguns componentes do lado do servidor dependem de um valor VNN codificado diretamente e requerem um alias de rede que mapeie a VNN ao nome DNS da DNN para funcionar corretamente.
Siga os passos em Criar ou eliminar um alias de servidor para uso por um cliente para criar um alias que mapeie a VNN para o nome DNS DNN.
Para uma instância predefinida, pode mapear o VNN diretamente para o nome DNS DNN, de forma que VNN = nome DNS DNN.
- Por exemplo, se o nome do VNN for
FCI1, o nome da instância forMSSQLSERVER, e o DNN forFCI1DNN(clientes anteriormente ligados aFCI, e agora ligam-se aFCI1DNN), então mapeiem o VNNFCI1para o DNNFCI1DNN.
Para uma instância nomeada, o mapeamento de alias de rede deve ser feito para a instância completa, tal que VNN\Instance = DNN\Instance.
- Por exemplo, se o nome do VNN for
FCI1, o nome da instância forinstA, e o DNN forFCI1DNN(clientes anteriormente ligados aFCI1\instA, e agora ligam-se aFCI1DNN\instaA), então mapeiem o VNNFCI1\instaApara o DNNFCI1DNN\instaA.
Drivers de cliente
Para os drivers ODBC, OLEDB, ADO.NET, JDBC, PHP e Node.js, os utilizadores precisam de especificar claramente o nome DNS DNN como o nome do servidor na cadeia de ligação. Para garantir conectividade rápida após o failover, adicione MultiSubnetFailover=True à cadeia de conexão se o cliente SQL oferecer suporte a ela.
Tools
Os utilizadores do SQL Server Management Studio, sqlcmd, a extensão MSSQL para Visual Studio Code, e SQL Server Data Tools precisam de especificar explicitamente o nome DNS DNN como nome do servidor na string de conexão.
Grupos de disponibilidade e FCI
Pode configurar um grupo de disponibilidade Always On usando uma instância de cluster de failover como uma das réplicas. Nessa configuração, a URL do ponto de extremidade de espelhamento para a réplica da FCI precisa usar a DNN da FCI. Da mesma forma, se a FCI for utilizada como uma réplica apenas para leitura, o encaminhamento de leitura para a réplica FCI deverá usar o DNN da FCI.
O formato do ponto de extremidade de espelhamento é: ENDPOINT_URL = 'TCP://<DNN DNS name>:<mirroring endpoint port>'.
Por exemplo, se o nome DNS do seu DNN for dnnlsnr e 5022 representar a porta do endpoint de espelhamento da FCI, o seguinte excerto de código Transact-SQL (T-SQL) demonstra como criar a URL do endpoint:
ENDPOINT_URL = 'TCP://dnnlsnr:5022'
Da mesma forma, o formato para a URL de roteamento somente de leitura é: TCP://<DNN DNS name>:<SQL Server instance port>.
Por exemplo, se o nome DNS DNN for dnnlsnr, e 1444 for a porta usada pela FCI do SQL Server de destino somente leitura, o trecho de código T-SQL para criar a URL de roteamento somente leitura terá a seguinte aparência:
READ_ONLY_ROUTING_URL = 'TCP://dnnlsnr:1444'
Podes omitir a porta na URL se for a porta padrão 1433. Para uma instância nomeada, configure uma porta estática para essa instância e especifique-a na URL de rota de leitura apenas.
Replication
A replicação tem três componentes: Editor, Distribuidor, Assinante. Qualquer um destes componentes pode ser uma instância de cluster de failover. Como a VNN FCI é muito utilizada em configurações de replicação, tanto explícita como implicitamente, pode ser necessário um alias de rede que mapeie a VNN para a DNN para que a replicação funcione.
Continue a usar o nome VNN como nome FCI na replicação, mas crie um alias de rede nas seguintes situações remotas antes de configurar a replicação:
| Componente de replicação (FCI com DNN) | Componente remoto | Mapa de alias de rede | Servidor com mapa de rede |
|---|---|---|---|
| Editora | Distributor | Editora VNN para Editora DNN | Distributor |
| Distributor | Subscriber | Distribuidor VNN para Distribuidor DNN | Subscriber |
| Distributor | Editora | Distribuidor VNN para o Distribuidor DNN | Editora |
| Subscriber | Distributor | VNN para DNN de assinante | Distributor |
Por exemplo, suponha que tem um Publisher configurado como uma FCI usando DNN numa topologia de replicação, e que o Distribuidor é remoto. Neste caso, crie um alias de rede no servidor Distribuidor para mapear o VNN do Publisher para o DNN do Publisher:
Use o nome completo da instância para uma instância nomeada, como no seguinte exemplo de imagem:
Espelhamento de banco de dados
Pode configurar o espelhamento de bases de dados com uma FCI como um dos parceiros de espelhamento. Configure-o usando Transact-SQL (T-SQL) em vez da interface gráfica do SQL Server Management Studio. Usar T-SQL garante que o endpoint de espelhamento da base de dados é criado usando a DNN em vez da VNN.
Por exemplo, se o seu nome DNS DNN for dnnlsnr, e o endpoint de espelhamento da base de dados for 7022, o seguinte excerto de código T-SQL configura o parceiro de espelhamento da base de dados:
ALTER DATABASE AdventureWorks
SET PARTNER = 'TCP://dnnlsnr:7022';
Para o acesso do cliente, a propriedade Parceiro de Failover pode gerir o failover por espelhamento de base de dados, mas não o failover por FCI.
MSDTC
A FCI pode participar em transações distribuídas coordenadas pelo Microsoft Distributed Transaction Coordinator (MSDTC). O MSDTC em cluster e o MSDTC local são suportados com FCI DNN. No Azure, um Azure Load Balancer é necessário para uma implementação MSDTC em cluster.
Sugestão
O DNN definido na FCI não substitui o requisito Azure Load Balancer para o MSDTC clusterizado.
FILESTREAM
Embora o FILESTREAM seja suportado para uma base de dados numa FCI, não é suportado aceder ao FILESTREAM ou ao FileTable usando APIs do Sistema de Ficheiros com DNN.
Servidores vinculados
É suportado o uso de um servidor ligado com um DNN FCI. Ou usa o DNN diretamente para configurar um servidor ligado, ou usa um alias de rede para mapear a VNN para a DNN.
Por exemplo, para criar um servidor ligado com o nome DNS DNN dnnlsnr para uma instância nomeada insta1, use o seguinte comando Transact-SQL (T-SQL):
USE master;
GO
EXECUTE master.dbo.sp_addlinkedserver
@server = N'dnnlsnr\inst1',
@srvproduct = N'SQL Server';
Alternativamente, pode criar o servidor ligado usando o nome da rede virtual (VNN), mas depois precisa de definir um alias de rede para mapear o VNN ao DNN.
Por exemplo, para o nome de instância insta1, nome VNN vnnname e nome DNN dnnlsnr, use o seguinte comando Transact-SQL (T-SQL) para criar um servidor vinculado usando o VNN:
USE master;
GO
EXECUTE master.dbo.sp_addlinkedserver
@server = N'vnnname\inst1',
@srvproduct = N'SQL Server';
Depois, crie um alias de rede para mapear vnnname\insta1 para dnnlsnr\insta1.
Perguntas frequentes
Qual versão do SQL Server traz suporte para DNN?
SQL Server 2019 CU2 e versões posteriores.
Qual é o tempo esperado de failover quando se usa DNN?
Para DNN, o tempo de failover é apenas o tempo de failover da FCI, sem qualquer tempo adicionado (como o tempo de sonda quando se usa o Azure Load Balancer).
Existe algum requisito de versão para clientes SQL para suportar DNN com OLEDB e ODBC?
Recomendamos MultiSubnetFailover=True suporte a cadeias de ligação para DNN. Está disponível a partir do SQL Server 2012 (11.x).
É necessária alguma alteração na configuração do SQL Server para eu usar DNN?
O SQL Server não requer nenhuma alteração de configuração para usar DNN, mas alguns recursos do SQL Server podem exigir mais consideração.
A DNN suporta clusters de várias sub-redes?
Yes. O cluster associa o DNN no DNS aos endereços IP físicos de todos os nós do cluster, independentemente das sub-redes. O cliente SQL tenta todos os endereços IP do nome DNS, independentemente da sub-rede.