Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Como os dados FILESTREAM estão no sistema de arquivos, este tópico fornece algumas considerações, diretrizes e limitações para usar FILESTREAM com os seguintes recursos no SQL Server:
SQL Server Integration Services (SSIS)
O SQL Server Integration Services (SSIS) lida com dados FILESTREAM no fluxo de dados do SSIS, assim como qualquer outro dado BLOB, utilizando o tipo de dados DT_IMAGE.
Você pode usar a transformação Importar Coluna para carregar arquivos do sistema de arquivos em uma coluna FILESTREAM. Você também pode usar a transformação Exportar Coluna para extrair arquivos de uma coluna FILESTREAM para outro local no sistema de arquivos.
Consultas distribuídas e servidores vinculados
Você pode trabalhar com dados FILESTREAM por meio de consultas distribuídas e servidores vinculados tratando-os como varbinary(max) dados. Você não pode usar a função FILESTREAM PathName() em consultas distribuídas que usam um nome de quatro partes, mesmo quando o nome se refere ao servidor local. No entanto, você pode usar PathName() na consulta interna de uma consulta de passagem que usa OPENQUERY().
Encriptação
Os dados FILESTREAM não são criptografados mesmo quando a criptografia de dados transparente está habilitada.
Instantâneos do banco de dados
O SQL Server não dá suporte a instantâneos de banco de dados para grupos de arquivos FILESTREAM. Se um grupo de arquivos FILESTREAM estiver incluído em uma cláusula CREATE DATABASE ON, a instrução falhará e um erro será gerado.
Ao usar FILESTREAM, você pode criar instantâneos de banco de dados de grupos de arquivos padrão (não FILESTREAM). Os grupos de arquivos FILESTREAM são marcados como offline para esses instantâneos de banco de dados.
Uma instrução SELECT executada em uma tabela FILESTREAM em um instantâneo de banco de dados não deve incluir uma coluna FILESTREAM; caso contrário, a seguinte mensagem de erro será retornada:
Could not continue scan with NOLOCK due to data movement.
Replicação
Uma varbinary(max) coluna que tem o atributo FILESTREAM habilitado no Publicador pode ser replicada para um Assinante com ou sem o atributo FILESTREAM. Para especificar a maneira como a coluna é replicada, use a caixa de diálogo Propriedades do Artigo – <Artigo> ou o @schema_option parâmetro de sp_addarticle ou sp_addmergearticle. Os dados replicados para uma varbinary(max) coluna que não tem o atributo FILESTREAM não devem exceder o limite de 2 GB para esse tipo de dados; caso contrário, um erro em tempo de execução é gerado. Recomenda-se replicar o atributo FILESTREAM, a menos que você esteja replicando dados para Assinantes do SQL Server 2000, o que não é suportado, independentemente da opção de esquema especificada.
Observação
A replicação de valores de dados grandes do SQL Server 2014 para assinantes do SQL Server 2005 (9.x) é limitada a um máximo de 256 MB de valores de dados. Para obter mais informações, consulte Especificações máximas de capacidade.
Considerações sobre replicação transacional
Se você usar colunas FILESTREAM em tabelas publicadas para replicação transacional, observe as seguintes considerações:
Se qualquer tabela incluir colunas que tenham o atributo FILESTREAM, você não poderá usar valores de instantâneo de banco de dados ou caractere de instantâneo de banco de dados para a propriedade @sync_methodsp_addpublication.
A opção de tamanho máximo de replicação de texto especifica a quantidade máxima de dados que podem ser inseridos ou atualizados em uma coluna publicada para replicação. Essa opção pode ser usada para controlar o tamanho dos dados FILESTREAM replicados.
Se você especificar a opção de esquema para replicar o atributo FILESTREAM, mas filtrar a
uniqueidentifiercoluna que FILESTREAM requer ou especificar para não replicar a restrição UNIQUE para a coluna, a replicação não replicará o atributo FILESTREAM. A coluna é replicada apenas como umavarbinary(max)coluna.
Considerações sobre replicação de mesclagem
Se você usar colunas FILESTREAM em tabelas publicadas para replicação de mesclagem, observe as seguintes considerações:
A replicação de mesclagem e o FILESTREAM exigem uma coluna do tipo de dados
uniqueidentifierpara identificar cada linha em uma tabela. A replicação de mesclagem adicionará automaticamente uma coluna se a tabela não tiver uma. A replicação de mesclagem requer que a coluna tenha a propriedade ROWGUIDCOL definida e um padrão de NEWID() ou NEWSEQUENTIALID(). Além desses requisitos, FILESTREAM requer que uma restrição UNIQUE seja definida para a coluna. Esses requisitos têm as seguintes consequências:Se você adicionar uma coluna FILESTREAM a uma tabela que já está publicada para replicação de mesclagem, verifique se a
uniqueidentifiercoluna tem uma restrição UNIQUE. Se ele não tiver uma restrição UNIQUE, adicione uma restrição nomeada à tabela no banco de dados de publicação. Por padrão, a replicação de mesclagem publicará essa alteração de esquema, e ela será aplicada a cada banco de dados de assinatura.Se você adicionar uma restrição UNIQUE manualmente conforme descrito e quiser remover a replicação de mesclagem, primeiro remova a restrição UNIQUE; caso contrário, a remoção da replicação falhará.
Por padrão, a replicação de mesclagem usa NEWSEQUENTIALID() porque pode fornecer melhor desempenho do que NEWID(). Se você adicionar uma
uniqueidentifiercoluna a uma tabela que será publicada para replicação de mesclagem, defina NEWSEQUENTIALID() como padrão.
A replicação de mesclagem inclui uma otimização para replicar tipos de objeto grandes. Essa otimização é controlada pelo @stream_blob_columns parâmetro de sp_addmergearticle. Se você definir a opção de esquema para replicar o atributo FILESTREAM, o valor do @stream_blob_columns parâmetro será definido como
true. Essa otimização pode ser substituída usando sp_changemergearticle. Esse procedimento armazenado permite que você defina @stream_blob_columns comofalse. Se você adicionar uma coluna FILESTREAM a uma tabela já publicada para replicação de mesclagem, recomendamos que você defina a opçãotrueusando sp_changemergearticle.Habilitar a opção de esquema para FILESTREAM depois que um artigo é criado pode fazer com que a replicação falhe se os dados em uma coluna FILESTREAM excederem 2 GB e houver um conflito durante a replicação. Se você espera que essa situação surja, é recomendável descartar e recriar o artigo da tabela com a opção de esquema FILESTREAM apropriada habilitada no momento da criação.
A replicação de mesclagem pode sincronizar dados FILESTREAM em uma conexão HTTPS usando a Sincronização da Web. Esses dados não podem exceder o limite de 50 MB para sincronização da Web; caso contrário, um erro em tempo de execução será gerado.
Envio de logs
O envio de logs dá suporte a FILESTREAM. Os servidores primário e secundário devem estar executando o SQL Server 2008 ou uma versão posterior e ter FILESTREAM habilitado.
Espelhamento de Banco de Dados
O espelhamento de banco de dados não oferece suporte a FILESTREAM. Um grupo de arquivos FILESTREAM não pode ser criado no servidor principal. O espelhamento de banco de dados não pode ser configurado para um banco de dados que contenha grupos de arquivos FILESTREAM.
Full-Text Indexação
A indexação de texto completo funciona com uma coluna FILESTREAM da mesma forma que funciona com uma varbinary(max) coluna. A tabela FILESTREAM deve ter uma coluna que contenha a extensão de nome de arquivo para cada BLOB FILESTREAM. Para obter mais informações, consulte Consulta com Full-Text Pesquisar, Configurar e Gerenciar Filtros para Pesquisa e sys.fulltext_document_types (Transact-SQL).
O mecanismo de texto completo indexa o conteúdo dos BLOBs FILESTREAM. Indexar arquivos como imagens pode não ser útil. Quando um BLOB FILESTREAM é atualizado, ele é reindexado.
Clustering de failover
Para o agrupamento de failover, os grupos de arquivos FILESTREAM devem ser colocados em um disco compartilhado. FILESTREAM deve ser ativado em cada nó do cluster que irá hospedar a instância FILESTREAM. Para obter mais informações, consulte Configurar FILESTREAM em um cluster de failover.
SQL Server Express
O SQL Server Express dá suporte a FILESTREAM. O limite de tamanho do banco de dados de 10 GB não inclui o contêiner de dados FILESTREAM.
Bancos de dados independentes
O recurso FILESTREAM requer alguma configuração fora do banco de dados. Portanto, um banco de dados que usa FILESTREAM ou FileTable não está totalmente contido.
Você pode definir a contenção de banco de dados como PARCIAL se quiser usar determinados recursos de bancos de dados independentes, como usuários internos. Nesse caso, no entanto, você deve estar ciente de que algumas das configurações do banco de dados não estão contidas no banco de dados e não são movidas automaticamente quando o banco de dados é movido.