Always On 可用性グループで FILESTREAM と FileTable を使用する

適用対象:SQL Server - Windows のみ

この記事には、SQL Server の Always On 可用性グループでの FILESTREAM 機能と FileTable 機能の使用に関する情報が記載されています。

すべての FILESTREAM 機能がサポートされています。 フェールオーバー後、FILESTREAM データは読み取り可能なセカンダリ レプリカと新しいプライマリの両方でアクセスできます。

FileTable 機能は部分的にサポートされています。 フェールオーバー後、FileTable データはプライマリ レプリカ上でアクセスできますが、読み取り可能なセカンダリ レプリカ上ではアクセスできません。

前提条件

FILESTREAM および FileTable アクセスでのVirtual Network 名 (VNN) の使用

SQL Serverのインスタンスで FILESTREAM を有効にすると、インスタンス レベルでの共有が作成され、FILESTREAM データにアクセスできるようになります。 この共有にアクセスするには、次の形式でコンピューター名を使用します。

  • \\<computer_name>\<filestream_share_name>

ただし Always On 可用性グループでは、コンピューターの名前が仮想ネットワーク名 (VNN) を使用して仮想化されています。 コンピューターが可用性グループのプライマリ レプリカであり、可用性グループ内のデータベースに FILESTREAM データが格納されている場合、VNN スコープの共有も作成され、FILESTREAM データにアクセスできるようになります。 これは、Transact-SQL による FILESTREAM データへのアクセスには影響しません。 ただし、ファイル システム API を使用するアプリケーションは、次の形式のパスを持つ VNN スコープの共有を使用する必要があります。

  • \\<VNN>\<filestream_share_name>

この VNN スコープの共有は、次のいずれかのイベントが発生するときに作成されます。

  • プライマリ レプリカ上にある Always On 可用性グループに FILESTREAM データを格納するデータベースを追加します。 この場合、共有 \\<computer_name>\<filestream_share_name> は既に存在します。 共有 \\<VNN>\<filestream_share_name> が作成されます。

  • 可用性グループが含まれるプライマリ レプリカ上で、ファイル I/O ストリーム アクセスに対して FILESTREAM を有効にします。 次の共有が作成されます。

    1. \\<computer_name>\<filestream_share_name>
    2. \\<VNN1>\<filestream_share_name> (可用性グループ 1 向け)。
    3. \\<VNN2>\<filestream_share_name> (可用性グループ 2 向け)。

これらの VNN スコープの共有は、すべてのセカンダリ レプリカにも反映されます。

FILESTREAM データまたは FileTable データを格納するデータベースが Always On 可用性グループに属する場合、次の処理が行われます。

  • FILESTREAM および FileTable 関数は、コンピューター名ではなく仮想ネットワーク名 (VNN) のやり取りを行います。 関数の詳細情報については、「FILESTREAM および FileTable 関数 (Transact-SQL)」を参照してください。

  • ファイル システム API を介した FILESTREAM または FileTable データへのすべてのアクセスでは、コンピューター名ではなく VNN を使用する必要があります。

データベースが可用性グループの一部である場合、アプリケーションで \\<computer_name>\<filestream_share_name> の形式のコンピューター名を使用して共有にアクセスしようとすると、エラーが発生します。

データベースが可用性グループの一部ではない場合、アプリケーションで VNN スコープのパスを使用して共有にアクセスしようとすると、要求が正常に終了します。 この場合、仮想ネットワーク名は、コンピューター名に解決されます。 ただし、可用性グループが削除されると VNN スコープのパスの動作が停止するため、この使用法はお勧めしません。