Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a: SQL Server em Windows
Este artigo contém informações sobre o uso dos recursos FILESTREAM e FileTable com grupos de disponibilidade Always On no SQL Server.
Todas as funcionalidades FILESTREAM são suportadas. Após um failover, os dados FILESTREAM ficam acessíveis em réplicas secundárias legíveis e na nova primária.
A funcionalidade FileTable é parcialmente suportada. Após um failover, os dados FileTable ficam acessíveis na réplica primária, mas os dados FileTable não são acessíveis em réplicas secundárias legíveis.
Pré-requisitos
- Antes de adicionar um banco de dados que usa FILESTREAM, com ou sem FileTable, a um grupo de disponibilidade, verifique se FILESTREAM está habilitado em cada instância do servidor que hospeda uma réplica de disponibilidade para o grupo de disponibilidade. Para obter mais informações, consulte Habilitar e configurar o FILESTREAM.
- Em um cluster de failover baseado no Windows Server 2012, você deve aplicar o hotfix discutido em Não é possível acessar o compartilhamento VNN FILESTREAM quando você usa os recursos FILESTREAM e FileTable em um cluster de failover baseado no Windows Server 2012 para acessar o compartilhamento de arquivos usando o Virtual Network Name (VNN). Esse hotfix também está disponível no catálogo do Microsoft Update.
Usar nomes de rede virtual (VNNs) para acesso a FILESTREAM e FileTable
Quando você habilita FILESTREAM em uma instância do SQL Server, um compartilhamento no nível de instância é criado para fornecer acesso aos dados FILESTREAM. Você acessa esse compartilhamento usando o nome do computador no seguinte formato:
\\<computer_name>\<filestream_share_name>
No entanto, em um grupo de disponibilidade Always On, o nome do computador é virtualizado através de um Nome de Rede Virtual (VNN). Quando o computador é a réplica primária em um grupo de disponibilidade e os bancos de dados no grupo de disponibilidade contêm dados FILESTREAM, um compartilhamento com escopo VNN também é criado para fornecer acesso aos dados FILESTREAM. Isso não afeta o acesso Transact-SQL aos dados FILESTREAM. No entanto, os aplicativos que usam APIs do sistema de arquivos precisam usar o compartilhamento com escopo VNN, que tem um caminho no seguinte formato:
\\<VNN>\<filestream_share_name>
Esse compartilhamento com escopo VNN é criado quando ocorre um dos seguintes eventos.
Você adiciona um banco de dados que contém dados FILESTREAM a um grupo de disponibilidade Always On na réplica primária. Neste caso, a quota
\\<computer_name>\<filestream_share_name>já existe. O compartilhamento\\<VNN>\<filestream_share_name>é criado.Você habilita FILESTREAM para acesso de streaming de E/S de arquivo em uma réplica primária que tenha grupos de disponibilidade. Os seguintes compartilhamentos são criados:
-
\\<computer_name>\<filestream_share_name>. -
\\<VNN1>\<filestream_share_name>para o grupo de disponibilidade 1. -
\\<VNN2>\<filestream_share_name>para o grupo de disponibilidade 2.
-
Esses compartilhamentos com escopo VNN também são propagados para todas as réplicas secundárias.
Quando o banco de dados que contém dados FILESTREAM ou FileTable pertence a um grupo de disponibilidade Always On:
As funções FILESTREAM e FileTable aceitam ou retornam nomes de rede virtual (VNNs) em vez de nomes de computador. Para obter mais informações sobre essas funções, consulte funções FILESTREAM e FileTable (Transact-SQL).
Todo o acesso a dados FILESTREAM ou FileTable através das APIs do sistema de arquivos deve usar VNNs em vez de nomes de computador.
Se seu aplicativo tentar acessar o compartilhamento usando o nome do computador no formato \\<computer_name>\<filestream_share_name> em que o banco de dados faz parte de um grupo de disponibilidade, um erro será gerado.
Se a sua aplicação tentar aceder à partilha usando um caminho delimitado por VNN quando o banco de dados não faça parte de um grupo de disponibilidade, o pedido pode ser bem-sucedido. Nesse caso, o nome da rede virtual é traduzido como o nome do computador. No entanto, esse uso é fortemente desencorajado, uma vez que o caminho com escopo VNN para de funcionar se o grupo de disponibilidade for eliminado.