SQL 2008 Armazenando Todas as Informações - 4º Parte – Tipos de dados: Filestream

     SQL Server 2008 introduz um novo recurso chamado FILESTREAM que permite que aplicações baseadas no SQL Server possam armazenar dados não estruturados, como documentos, imagens, áudios, vídeos, etc no sistema de arquivos. FILESTREAM basicamente integra o SQL Server Database Engine com o New Technology File System (NTFS ), que basicamente armazena os dados no tipo varbinary (max). Usando este tipo de dados, os dados não-estruturados são armazenados no sistema de arquivos NTFS e o SQL Server Database Engine gere a ligação entre a coluna FILESTREAM e o próprio arquivo localizado no NTFS. Usando Transact SQL os usuários podem inserir, atualizar, apagar e selecionar os dados armazenados em FILESTREAM.

Configurar e ativar Filestream durante a instalação do SQL Server 2008

      O SQL Server permitir que o recurso FILESTREAM seja ativado durante o processo de instalação do SQL Server 2008.



    Durante a instalação do SQL Server 2008, se você esquecer de ativar o recurso FILESTREAM, o recurso pode ser ativado após a instalação, seguindo os métodos a seguir.


Configurar e ativar Filestream usando o SQL Server Configuration Manager


  1. Clique em Iniciar Programas | Menu | Microsoft SQL Server 2008 | Ferramentas | Configuração SQL Server Configuration Manager.
  2. No painel esquerdo, clique em SQL Server Services, que irá listar todos os serviços do SQL Server 2008 relacionados no painel da direita.
  3. Clique no SQL Server (MSSQLSERVER) Serviço de instância na qual você deseja habilitar FILESTREAM e clique com o botão direito para ver as propriedades do serviço.
  4. Na caixa de diálogo Propriedades do SQL Server, clique na guia FILESTREAM.
  5. Selecione Ativar FILESTREAM para Transact-SQL opção de acesso, que permitirá o resto das opções.
  6. Se você quiser fornecer acesso do Windows para ler e escrever dados FILESTREAM selecione a opção Habilitar “FILESTREAM para I/O streaming acess” e digite um nome.
  7. A última opção, Permitir que clientes remotos tenham acesso a dados FILESTREAM no servidor.
  8. Clique em Aplicar para salvar as alterações.



Configurar e ativar Filestream usando Query TSQL 



     No SQL Server Management Studio, clique na nova janela de consulta e digite o abaixo Query TSQL

USE Master
GO
EXEC sp_configure 'nível de acesso FILESTREAM', 2
GO
RECONFIGURE
GO


     SQL Server 2008 suporta três níveis de acesso FILESTREAM
  1. Se o valor for 0, então, o apoio FILESTREAM para a instância é condicionada.
  2. Se o valor for 1, então, FILESTREAM para acesso Transact-SQL é ativado.
  3. Se o valor for 2, então, FILESTREAM para Transact-SQL e Win32 streaming de acesso é ativado.


Configurar e ativar Filestream em nível de instância do servidor usando GUI



  1. Conectar a uma instância do SQL Server 2008 usando SQL Server Management Studio.
  2. No Object Explorer, clique botão direito no servidor e selecione Propriedades para exibir a janela Propriedades do servidor.
  3. Em Advanced, clique no menu suspenso ao lado Filestream Nível de Acesso e selecione permitiu acesso total.
  4. Para isso, o usuário precisa ser sysadmin ou serveradmin do servidor para alterar as configurações padrão para Filestream.
  5. Clique em OK para salvar as alterações.



Como criar um banco de dados Filestream



     O FILESTREAM recurso utiliza um tipo especial de grupo de arquivos quando você cria o banco de dados. Você precisa especificar a cláusula CONTAINS FILESTREAM para pelo menos um grupo de arquivos no create database.


Use Master
Go
IF  EXISTS (SELECT name FROM sys.databases WHERE name = N'FileStreamDB')
DROP DATABASE FileStreamDB
GO


USE Master
GO
CREATE DATABASE FileStreamDB ON PRIMARY
  ( NAME = FileStreamDB_Data,
    FILENAME = N'D:\FileStream\FileStreamDB_Data.mdf',
    SIZE = 10MB,
    MAXSIZE = 50MB,
    FILEGROWTH = 15%),
 FILEGROUP MyDBData
  ( NAME = MyFileStream_Data,
    FILENAME = N'D:\FileStream\FileStreamDB_Data.ndf',
    SIZE = 10MB,
    MAXSIZE = 50MB,
    FILEGROWTH = 5MB),
FILEGROUP FileStream CONTAINS FILESTREAM
  ( NAME = FileStream,
    FILENAME = N'D:\FileStream\FileStreamData')
LOG ON
  ( NAME = 'FileStreamDB_Log',
    FILENAME = N'D:\FileStream\FileStreamDB_Log.ldf',
    SIZE = 5MB,
    MAXSIZE = 25MB,
    FILEGROWTH = 5MB);
 GO 


     A imagem abaixo mostra as propriedades do banco de dados "FileStreamDB" que foram criadas ao executar a instrução TSQL acima:




     O trecho abaixo mostra os arquivos que foram criado para o banco de dados FileStreamDB na pasta D:\FileStream. Você verá uma pasta chamada FileStreamData que irá armazenar todos os valores varbinary(max).

     Dentro da pasta D:\FileStream\FileStreamData você pode ver uma subpasta chamada $FSLOG e um arquivo chamado filestream.hdr. Esse arquivo é um arquivo de cabeçalho para o recipiente FILESTEAM.



Como criar uma tabela para armazenar dados FILESTREAM

     Se uma tabela precisa armazenar dados FILESTREAM, a tabela deve ter uma coluna ROWGUIDCOL definida. Isso é usado pelo motor de armazenamento para manter o controle de instâncias no sistema de arquivos NTFS. A coluna que será usada para armazenar os dados FILESTREAM deve ser do tipo "varbinary(max)". No SQL Server 2008 o tipo de dados varbinary(max) pode armazenar mais de 2 GB de dados. O Query TSQL abaixo pode ser usado para criar a tabela FileStreamTable:

USE FileStreamDB
Go
CREATE TABLE dbo.FileStreamTable
(
  FS_ID UNIQUEIDENTIFIER ROWGUIDCOL NOT NULL UNIQUE,
  FSData VARBINARY(MAX) FILESTREAM
);


Como inserir dados em FileStreamTable

     Execute o TSQL abaixo para inserir os dados FILESTREAM para a tabela no banco de dados FileStreamTable FileStreamDB.


USE FileStreamDB
Go
INSERT INTO FileStreamTable
VALUES(newid(), CAST ('Inserting data into FileStreamTable........' As VARBINARY(MAX)))
Go

     Uma vez que os dados são inseridos com sucesso você pode ver uma nova pasta criada ficando em D: \ FileStream pasta \ FileStreamData.

Vantagens de FILESTREAM


  • Dados BLOB agora podem ser armazenados no sistema NTFS e está sob o controle do SQL Server 2008.
  • SQL Server irá manter a consistência transacional para todos os dados BLOB.
  • Não há limites para o tamanho do arquivo que pode ser armazenado em FILESTREAM . Contanto que você tenha espaço no disco que muito maior FILESTREAM arquivos podem ser armazenados.
  • Quando se faz um backup de um banco de dados que esta com o FILESTREAM habilitado, automaticamente é feito o backup dos arquivos também facilitando o gerenciamento do DBA.
  • Os dados podem ser facilmente acessados por meio TSQL e NTFS streaming APIs streaming com  excelente desempenho.


Desvantagens da Filestream


  • Espelhamento de banco de dados não podem ser configurados no banco de dados que tem o FILESTREAM habilitado.
  • SQL Server não oferece suporte a bancos de dados snapshots para grupos de arquivos FILESTREAM. Se um grupo de arquivos FILESTREAM está incluída em uma cláusula de CREATE DATABASE ON, a instrução falhará e um erro será gerado.

    O recurso FILESTREAM do SQL Server 2008 ajuda as organizações a gerenciar seus dados BLOB com mais eficiência por armazenar os dados no sistema de arquivos NTFS.

SQL 2008 Armazenando Todas as Informações - 5º Parte – Tipos de dados: Full Text




Nenhum comentário:

Postar um comentário