Using FILESTREAM with Other SQL Server Features

Ponieważ FILESTREAM danych w systemie plików, w tym temacie przedstawiono niektóre zagadnienia, zasady i ograniczenia dotyczące FILESTREAM przy użyciu następujących funkcji w SQL Server:

  • Migawki bazy danych

  • Replikacja

  • wysyłanie dziennika

  • Dublowanie bazy danych

  • Pełny tekst

  • Praca awaryjna klastrowanie

  • SQL Server Express

Migawki bazy danych

SQL Server nie jest obsługiwana migawki bazy danych dla filegroups FILESTREAM.Jeśli grupa plików FILESTREAM znajduje się w klauzula ON tworzenie bazy danych, instrukcja nie powiedzie się, a zwiększony błąd.

Używając FILESTREAM, można utworzyć bazę danych migawek filegroups standardowe (innych niż FILESTREAM).Filegroups FILESTREAM są oznaczone jako offline dla tych migawek bazy danych.

Instrukcja SELECT, która jest wykonywana w tabela FILESTREAM migawka bazy danych nie może zawierać kolumna FILESTREAM; w przeciwnym razie zwracany jest następujący komunikat o błędzie:

Nie można kontynuować skanowanie o NOLOCK ze względu na przenoszenie danych.

Replikacja

A varbinary(max) kolumna, która ma atrybut FILESTREAM włączone przez wydawcę, mogą być replikowane na subskrybent lub bez atrybutu FILESTREAM. Aby określić sposób, w którym są replikowane kolumna, należy użyć Właściwości artykułu- <Artykuł> okno dialogowe lub parametr @ schema_option sp_addarticle or sp_addmergearticle. Aby uzyskać więcej informacji na temat sposobu zestaw opcji schematu, zobacz Jak Określ opcje schematu (SQL Server Management Studio) i Jak Określ opcje schematu (Programowanie replikacja języka Transact-SQL). Dane, które mają być replikowane varbinary(max) kolumna, która nie ma atrybut FILESTREAM nie może przekraczać limitu 2 GB dla tego typu danych; w przeciwnym razie, generowany jest błąd czas wykonywania. Firma Microsoft zaleca replikacji do tego atrybut FILESTREAM, chyba że są replikowanie danych SQL Server 2005. Replikowanie tabele, które mają FILESTREAM kolumny SQL Server 2000 Subskrybenci nie jest obsługiwany, niezależnie od określonej opcji schematu. Aby uzyskać więcej informacji na temat sposobu replikacji danych ze starszymi wersjami SQL Server, zobacz Using Multiple Versions of SQL Server in a Replication Topology.

Uwaga

Replikowanie danych dużej wartości z SQL Server 2008 Aby SQL Server 2005 Subskrybenci jest ograniczona do maksymalnej wartości danych 256 MB. Aby uzyskać więcej informacji zobacz Maksymalna pojemność dane techniczne.

Zagadnienia dotyczące replikacja transakcji

Jeśli używasz FILESTREAM kolumn w tabelach, które zostały opublikowane dla replikacja transakcyjnej, należy uwzględnić następujące kwestie:

  • Jeśli wszystkie tabele dołączyć kolumny, które mają atrybut FILESTREAM, nie można użyć wartości database snapshot lub database snapshot character właściwość @ sync_method sp_addpublication.

  • Opcja Rozmiar maksymalny tekstu repl określa maksymalną ilość danych, które mogą być wstawiane do kolumna, która zostanie opublikowana dla replikacja.Tej opcji można kontrolować rozmiaru arkusza FILESTREAM dane, które mają być replikowane.Aby uzyskać więcej informacji zobaczmax text repl size Option.

  • Jeśli określisz opcję Schemat atrybutu FILESTREAM replikacji, ale można odfiltrować uniqueidentifier kolumna, która wymaga FILESTREAM lub określ nie do replikacji ograniczenie typu UNIQUE dla kolumna, replikacja nie replikuje atrybut FILESTREAM. Kolumna jest replikowany tylko jako varbinary(max) Kolumna.

Zagadnienia dotyczące replikacja łączenia

Jeśli używasz FILESTREAM kolumn w tabelach, które zostały opublikowane dla replikacja łączenia, należy uwzględnić następujące kwestie:

  • replikacja łączenia i FILESTREAM wymagają kolumna typu danych uniqueidentifier Aby zidentyfikować każdy wiersz w tabela. Jeśli w tabela nie ma replikacja łączenia automatycznie dodaje kolumna.replikacja łączenia wymaga, czy kolumna mają zestaw właściwość ROWGUIDCOL i domyślne NEWID() lub NEWSEQUENTIALID().Oprócz tych wymagań FILESTREAM wymaga zdefiniowania ograniczenie typu UNIQUE dla kolumna.Te wymagania są następujące konsekwencje:

    • Jeżeli dodasz FILESTREAM kolumny do tabela, która jest już opublikowany replikacja łączenia, upewnij się, że uniqueidentifier Kolumna ta ma ograniczenia typu UNIQUE. Jeśli nie ma ograniczenia typu UNIQUE, należy dodać ograniczenia o nazwie do tabela w bazie danych publikacja.Domyślnie replikacja łączenia będzie publikować tej zmiany schematu i zostaną zastosowane do wszystkich baz danych subskrypcja.Aby uzyskać więcej informacji na temat zmiany schematu Zobacz Wprowadzanie zmian schematu na bazy danych w publikacja.

      Jeśli dodano ręcznie, jak to opisano ograniczenia typu UNIQUE i chcesz usunąć replikacja łączenia, musisz najpierw usunąć ograniczenie typu UNIQUE; w przeciwnym razie nie będzie usunięcie replikacja.

    • Domyślnie NEWSEQUENTIALID() korzysta scalania replikacja, ponieważ zapewnia większą wydajność niż NEWID().Jeśli dodasz uniqueidentifier kolumna do tabela, która zostanie opublikowana dla replikacja łączenia określony NEWSEQUENTIALID() jako domyślny.

  • replikacja łączenia obejmują optymalizację do replikacji dużych obiektów.Optymalizacja jest kontrolowana przez parametr @ stream_blob_columns sp_addmergearticle.Jeśli użytkownik zestaw jest opcja schemat replikacji FILESTREAM atrybut, wartość parametru @ stream_blob_columns zestaw do true. Optymalizacja można zastąpić za pomocą sp_changemergearticle.Ta procedura przechowywana umożliwia zestaw stream_blob_columns @ do false. Jeżeli dodasz FILESTREAM kolumna do tabela, która jest już opublikowany replikacja łączenia, firma Microsoft zaleca, ustaw opcję na true za pomocą sp_changemergearticle.

  • Włączenie opcji schematu dla FILESTREAM po utworzeniu artykuł może spowodować, że replikacja się nie powieść, jeśli dane kolumna FILESTREAM przekracza 2 GB i występuje konflikt podczas replikacji.Jeśli takiej sytuacji pojawić się, zaleca się usunąć i odtworzyć artykuł tabela z odpowiednią opcję schematu FILESTREAM włączone w czasie jego tworzenia.

  • replikacja łączenia można synchronizować FILESTREAM danych przez połączenie HTTPS za pomocą synchronizacja w sieci Web.Dane te nie może przekroczyć limit 50 MB dla synchronizacja w sieci Web; w przeciwnym razie, generowany jest błąd czas wykonywania.

wysyłanie dziennika

wysyłanie dziennika obsługuje FILESTREAM.Serwery główne i pomocnicze musi być uruchomiony. SQL Server 2008, lub nowszej wersja i mieć FILESTREAM włączone.

Dublowanie bazy danych

Dublowanie bazy danych nie obsługuje FILESTREAM.Nie można utworzyć grupa plików FILESTREAM serwer główny.Nie można skonfigurować dublowanie bazy danych do bazy danych zawierającej filegroups FILESTREAM.

Pełny tekst indeksowania

Indeksowanie pełnotekstowe w taki sam sposób, jak to się dzieje z działa kolumny FILESTREAMvarbinary(max) Kolumna. Tabela FILESTREAM musi zawierać kolumna zawierającą rozszerzenie nazwy pliku dla każdego obiektu BLOB FILESTREAM.Aby uzyskać więcej informacji zobacz Querying varbinary(max) and xml Columns (Full-Text Search), Filtry wyszukiwanie pełnego tekstu, Full-Text Indexing and Querying Process, a sys.fulltext_document_types (języka Transact-SQL).

Aparat pełnotekstowe indeksy zawartości bloków BLOB FILESTREAM.Indeksowanie plików, takich jak obrazy nie może być przydatna.Po zaktualizowaniu BLOB FILESTREAM go ponownie jest indeksowane.

Praca awaryjna klastrowanie

Do pracy awaryjnej klastrowanie filegroups FILESTREAM musi znajdować się na współużytkowanym dysku.FILESTREAM musi być włączony w każdym węźle w klastrze, który będzie obsługiwać wystąpienie FILESTREAM.Aby uzyskać więcej informacji zobaczHow to: Set Up FILESTREAM on a Failover Cluster.

SQL Server Express

SQL Server Express obsługuje FILESTREAM.Ograniczenie rozmiaru bazy danych o wielkości 4 GB nie obejmuje FILESTREAM kontener danych.