FileTables yönetme

FileTables yönetmek için ortak yönetim görevleri açıklar.

Bu Konuda

I want to...

  • FileTables ve ilgili nesnelerin listesini almak

  • Devre dışı bırakmak ve işlemsel olmayan Access veritabanı düzeyinde yeniden

    • Nasıl yapılır: Devre dışı bırakma ve işlemsel olmayan Access veritabanı düzeyinde yeniden

    • Nasıl yapılır: bir veritabanı FileTables görünürlüğünü sağlamak

  • Devre dışı bırakmak ve yeniden etkinleştirmek tablo düzeyinde FileTable Namespace

    • Nasıl yapılır: Devre dışı bırakmak ve yeniden tablo düzeyinde FileTable Namespace
  • FileTable ile ilişkili açık dosya tanıtıcısı öldürmek

    • Nasıl yapılır: bir FileTable ile ilişkili açık dosya tanıtıcısı döndürür

    • Nasıl yapılır: bir FileTable ile ilişkili açık dosya tanıtıcısı öldürmek

    • Nasıl yapılır: kilit tanımlamak FileTables tarafından düzenlenen

Daha fazla bilgi edinin

  • FileTable güvenlik

  • Yedekleme ve FileTables

  • SQL Server Profiler ve FileTables

  • Denetim ve FileTables

  • dbcc ve FileTables

Nasıl-e doğru: FileTables ve ilgili nesnelerin listesini almak

FileTables bir listesini almak için aşağıdaki katalog görünümler sorgu:

SELECT * FROM sys.filetables;
GO

SELECT * FROM sys.tables WHERE is_filetable = 1;
GO

İlişkili FileTables oluşturulduğunda, oluşturulan sistem tanımlı nesnelerin listesini almak için Katalog görünümü sorgulama sys.filetable_system_defined_objects (Transact-sql).

SELECT object_id, OBJECT_NAME(object_id) AS 'Object Name'
    FROM sys.filetable_system_defined_objects
    WHERE object_id = filetable_object_id;
GO

[YUKARI]

Veritabanı düzeyinde işlem dışı erişim Re-enabling ve devre dışı bırakma

İçin özel erişim elde etmek için yönetim görevleri, işlem dışı erişimi geçici olarak devre dışı olabilir.

İşlem dışı erişim düzeyini değiştirirken alter database deyimini davranışı

  • read_only ya da off için işlem dışı erişim ayarladığınızda, var olduğu sürece istenen işlem ile çatışma açık dosya tanıtıcısı alter database komutu Denetim kullanıcıya döndürür. Bu işlem ile Çakışan dosya tanıtıcıları arasında şunlar yer alır:

    • Ne zaman ayarladığınız erişim yok, tüm açık dosya tanıtıcısı.

    • Ne zaman ayarladığınız erişim read_only, tüm dosya tanıtıcıları için yazma erişimine açıldı.

    Açık dosya tanıtıcısı öldürülmesi hakkında daha fazla bilgi için bkz: Öldürme açık dosya tanıtıcıları ile ilişkili bir FileTable bu konuda.

    alter database komutu iptal edilir veya bir zaman aşımı ile biter, işlem erişim düzeyini değiştirilmez.

  • alter database deyimi ile bir ile arama, <fesih> yan tümcesi (rollback sonra tamsayı [saniye] | ROLLBACK HEMEN | NO_WAIT), daha sonra tüm açık işlem dışı dosya tanıtıcıları öldürülüyor.

Dikkat notuDikkat

Açık dosya tanıtıcısı öldürme, kaydedilmemiş veriyi kaybedersiniz kullanıcıların neden olabilir. Bu, dosya sistemi davranışını tutarlı bir davranıştır.

İşlem dışı erişimi devre dışı bırakmanın etkileri

Veritabanı düzeyinde işlem dışı erişim düzeyini değiştirme veritabanı düzeyinde dizini altındaki FileTable dizinler aşağıdaki etkileri vardır:

  • Erişim ayarladığınızda yok, daha sonra tüm FileTable dizinleri ve bunların içerikleri artık erişilebilir ya da görünür.

  • Erişim ayarladığınızda read_only, daha sonra tüm FileTable dizinleri ve bunların içerikleri de salt okunur.

FILESTREAM örneği düzeyinde devre dışı bırakılması, veritabanı düzeyinde o örneğe hem de FileTable dizinler bunların altında aşağıdaki etkileri vardır:

  • Örnek Veritabanı düzeyinde dizinlerde hiçbiri FILESTREAM örneği düzeyinde devre dışı bırakılmışsa görülebilir.

[YUKARI]

Nasıl yapılır: Devre dışı bırakma ve işlemsel olmayan Access veritabanı düzeyinde yeniden

Daha fazla bilgi için, bkz. alter database set seçenekleri (Transact-sql).

  • Tam işlem dışı erişimi devre dışı bırakmak için
    Arama alter database deyimi ve değerini non_transacted_access için read_only veya off.

    -- Disable write access.
    ALTER DATABASE database_name
        SET FILESTREAM ( NON_TRANSACTED_ACCESS = READ_ONLY );
    GO
    
    -- Disable non-transactional access.
    ALTER DATABASE database_name
        SET FILESTREAM ( NON_TRANSACTED_ACCESS = OFF );
    GO
    
  • Tam işlem dışı erişimi etkinleştirmek için
    Arama alter database deyimi ve değerini non_transacted_access için tam.

    ALTER DATABASE database_name
        SET FILESTREAM ( NON_TRANSACTED_ACCESS = FULL );
    GO
    

[YUKARI]

Nasıl yapılır: bir veritabanı FileTables görünürlüğünü sağlamak

Tüm bu koşullar doğru olduğunda veritabanı düzeyi dizin ve altındaki FileTable dizinleri görünür:

  1. FILESTREAM örneği düzeyinde etkinleştirilir.

  2. Veritabanı düzeyinde olmayan işlem erişim etkindir.

  3. Veritabanı düzeyinde geçerli bir dizin belirtilmedi.

FileTable Namespace tablo düzeyinde Re-enabling ve devre dışı bırakma

FileTable ad alanını devre dışı bırakmak, tüm sistem tanımlı kısıtlamaları ve FileTable ile oluşturulan Tetikleyiciler devre dışı bırakır. Bu büyük kullanarak yeniden organize için bir FileTable olduğu durumlarda kullanışlıdır Transact-SQLFileTable semantiği zorlamayı gider üstlenmeden olmadan operasyonları. Ancak bu işlemler FileTable tutarsız bir durumda bırakabilirsiniz ve FileTable ad re-enabling engelleyebilirsiniz.

FileTable ad alanı devre dışı bırakma aşağıdaki sonuçları vardır:

  • Fiziksel olarak fileTable sütun ve veri tablosundan bırakılır değil.

  • FileTable dizin ve dosyaları ve dizinleri içeren dosya sisteminden kaybolur ve dosya g/ç erişim için kullanılabilir değil.

  • Sistem tanımlı FileTable sütunları bırakılan ve yeniden; Aksi durumda, ancak, sıradan sütunlar için dml işlemleri gibi davranıyorlar.

  • Açık dosya tanıtıcısı, bu işlem tablo şema Kilit gerektirdiğinden, varlık sakatlar--dan FileTable kısıtlamaları engellemek.

  • Sistem tanımlı kısıtlamaları ve Tetikleyiciler gibi tüm FileTable semantiği, uygulanması, FileTable ad alanını devre dışı bırakıldıktan sonra durur.

FileTable ad alanı re-enabling aşağıdaki sonuçları vardır:

  • FileTable tutarlılık için denetlenir. Tutarsızlıklar bulunursa, bir hata oluşturulur ve FileTable devre dışı kalır; Aksi takdirde, FileTable yeniden etkinleştirildi.

  • FileTable semantiği, sistem tanımlı kısıtlamaları ve Tetikleyiciler gibi zorlama geri yüklenir.

  • FileTable dizin ve dosyaları ve dizinleri içeren dosya sisteminde görünür hale gelir ve dosya g/ç erişim için kullanılabilir.

[YUKARI]

Nasıl yapılır: Devre dışı bırakmak ve yeniden tablo düzeyinde FileTable Namespace

alter table deyimi ile çağrı {enable | DISABLE} FILETABLE_NAMESPACE seçeneği.

  • FileTable ad alanını devre dışı bırakmak için

    ALTER TABLE filetable_name
        DISABLE FILETABLE_NAMESPACE;
    GO
    
  • FileTable ad alanı yeniden etkinleştirmek için

    ALTER TABLE filetable_name
        ENABLE FILETABLE_NAMESPACE;
    GO
    

[YUKARI]

Öldürme açık dosya tanıtıcısı bir FileTable ile ilişkili

Bir FileTable içinde depolanan dosyaların açık tanıtıcıları belirli yönetim görevleri için gerekli olan özel kullanım erişimi engelleyebilirsiniz. Acil görevleri etkinleştirmek için bir veya daha fazla FileTables ile ilişkili açık dosya tanıtıcısı öldürmek zorunda kalabilirsiniz.

Dikkat notuDikkat

Açık dosya tanıtıcısı öldürme, kaydedilmemiş veriyi kaybedersiniz kullanıcıların neden olabilir. Bu, dosya sistemi davranışını tutarlı bir davranıştır.

[YUKARI]

Nasıl yapılır: bir FileTable ile ilişkili açık dosya tanıtıcısı döndürür

Katalog görünümü sys.dm_filestream_non_transacted_handles (Transact-sql).

SELECT * FROM sys.dm_filestream_non_transacted_handles;
GO

[YUKARI]

Nasıl yapılır: bir FileTable ile ilişkili açık dosya tanıtıcısı öldürmek

Saklı yordam çağrısı sp_kill_filestream_non_transacted_handles (Transact-sql)tüm açık dosya tanıtıcısı veritabanında veya FileTable öldürmeye ya da belirli bir tanıtıcı öldürmek için uygun bağımsız.

USE database_name;

-- Kill all open handles in all the filetables in the database.
EXEC sp_kill_filestream_non_transacted_handles;
GO

-- Kill all open handles in a single filetable.
EXEC sp_kill_filestream_non_transacted_handles @table_name = 'filetable_name';
GO

-- Kill a single handle.
EXEC sp_kill_filestream_non_transacted_handles @handle_id = integer_handle_id;
GO

[YUKARI]

Nasıl yapılır: kilit tanımlamak FileTables tarafından düzenlenen

Çoğu kilitleri, FileTables tarafından gerçekleştirilen uygulamalar tarafından açılan dosyalar karşılık gelir.

  • Açık dosyaları ve ilişkili kilitleri tanımlamak için
    Üyelik request_owner_id alan dinamik yönetimi görünümü sys.dm_tran_locks (Transact-sql)ile fcb_id alanında sys.dm_filestream_non_transacted_handles (Transact-sql). Bazı durumlarda, kilit bir tek bir açık dosya tanıtıcısına karşılık gelmiyor.

    SELECT opened_file_name
        FROM sys.dm_filestream_non_transacted_handles
        WHERE fcb_id IN
            ( SELECT request_owner_id FROM sys.dm_tran_locks );
    GO
    

[YUKARI]

FileTable güvenlik

FileTables içinde depolanan dizin ve dosya yalnızca SQL Server güvenliği tarafından korunduğundan. Tablo ve sütun tabanlı güvenlik dosya sistemi erişimi için zorunlu olarak Transact-SQLerişim. API ve acl Windows dosya sistemi güvenlik ayarları desteklenmiyor.

Dosya verilerini FileTable FILESTREAM sütun olarak depolanır çünkü FILESTREAM filegroups ve kapsayıcılar için yürürlükteki güvenlik ve erişim izinleri FileTables için de geçerlidir.

  • FileTable güvenlik ve Transact-sql erişim
    Transact-SQLFileTables veri erişimi, aynı şekilde diğer bir tablo olarak sabitlenir. Erişen veya veri değişiklikleri her işlem için ilgili tablo ve sütun düzeyinde güvenlik kontrolleri yapılır.

  • FileTable güvenlik ve dosya sistem erişimi
    Dosya sistemi API gerektiren uygun SQL ServerFileTable (yani, tablo düzeyi izni) tüm satır bir dosya ya da FileTable içinde depolanan dizin için bir tanıtıcı açmaya izinleri. Kullanıcı uygun yoksa SQL ServerFileTable herhangi bir sütunda izni, sonra dosya sistemi erişim reddedildi.

[YUKARI]

Yedekleme ve FileTables

Kullandığınızda SQL ServerFileTable kadar yedeklemek için FILESTREAM veri veritabanı yapılandırılmış veriler yedeklenir. FILESTREAM veri ilişkisel veri yedeklemek istemiyorsanız, FILESTREAM filegroups dışlamak için kısmi bir yedekleme kullanabilirsiniz.

FileTable yedekleri işlem tutarlılığı

Birçok yönetimsel araçları ve işlemleri (yedekleme, günlük yedekleme ve işlem çoğaltma dahil) sonucuna tutarlı veri işlem günlüklerini okuma okuyun. Şu anda, bir işlemin bir parçası updated FILESTREAM veri okumak. İşlemsel olmayan access veritabanı düzeyinde etkin değildir, bu araçlar ve işlemler tam işlem tutarlılığı ile çalışırsınız.

Tam işlem dışı erişim etkin olduğunda, ancak daha sonra bir FileTable son zamanlarda (bir işlem dışı güncelleştirmesi) güncelleştirilmiş verileri içerebilir aracı veya işlem işlem günlüğünden okuyor hareketi daha. Zaman içinde bir "nokta" işlemi belirli bir hareketle geri gelir o hareketi son FILESTREAM veri içerebilir. İşlem dışı güncelleştirmeler FileTables üzerinde izin verildiğinde, bu beklenen davranıştır.

[YUKARI]

SQL Server Profiler ve FileTables

SQL ServerProfiler izleme çıktısı için bir FileTable içinde depolanan dosyaları Windows Dosya Aç ve dosya kapat işlemlerinde yakalayabilirsiniz.

[YUKARI]

Denetim ve FileTables

FileTable diğer tablodaki gibi denetlenebilir. Howerver, Win32 erişim desen tabanlı işlemler ayarlanmamış. Dosya sistemi tek bir eylemde birden çok Transact-sql dml işlemlere çevirir. Örneğin, Microsoft Word'de bir dosyayı açmadan, birden çok Aç/Kapat/yaratmak/yeniden adlandır/silme işlemleri ve karşılık gelen Transact-sql dml faaliyetleri çevirir. Bu dosya sistemi işlemleri ve karşılık gelen Transact-sql dml denetim kayıtları arasındaki kayıtları ilişkilendirmek zor olduğu ayrıntılı denetim kayıtlarını sonuçlanır.

[YUKARI]

dbcc ve FileTables

dbcc CHECKCONSTRAINTS bir FileTable dahil olmak üzere sistem tanımlı kısıtlamaları kısıtlamalar doğrulamak için kullanabilirsiniz.

[YUKARI]

Ayrıca bkz.

Kavramlar

Diğer SQL Server özellikleri ile fileTable uyumluluk

FileTable ddl, İşlevler, saklı yordamlar ve görünümler