Aracılığıyla paylaş


Dosya ve Filegroups mimarisi

SQL Server bir veritabanı, işletim sistemi dosyaları kümesi üzerinde eşleştirir.Veri ve günlük bilgileri hiçbir zaman karma aynı dosyaya ve tek tek dosyaları yalnızca bir veritabanı tarafından kullanılır.Filegroups topluluklar, dosyaların adlandırıldığı ve veri yerleştirme ve yedek gibi yönetimsel görevleri ile ilgili Yardım ve geri yükleme işlemleri için kullanılır.

Veritabanı dosyaları

SQL Server veritabanı dosyaları üç tür vardır:

  • Birincil veri dosyasının

    Birincil veri dosyası, veritabanının bir başlangıç noktası'nı ve veritabanındaki diğer dosyaları işaret bulunur.Her veritabanı için bir birincil veri dosyası vardır.Birincil veri dosyası için önerilen dosya uzantısının .mdf ' dir.

  • Ikincil veri dosyaları

    Tüm veri dosyaları, birincil veri dosyası dışında ikincil veri dosyaları oluşturur.Diğer birkaç ikincil veri dosyalarından olmakla birlikte, bazı veritabanları tüm ikincil veri dosyaları sahip olmayabilirsiniz.The recommended file name extension for secondary data files is .ndf.

  • Günlük dosyaları

    Günlük dosyalarını veritabanını kurtarmak için kullanılan günlük bilgilerini basılı tutun.Olabilir, ancak birden fazla en az bir günlük dosyası her bir veritabanı olmalıdır.Günlük dosyaları için önerilen dosya adı uzantısı .ldf ' dir.

SQL Server does not enforce the .mdf, .ndf, and .ldf file name extensions, but these extensions help you identify the different kinds of files and their use.

Içinde SQL Server, veritabanındaki tüm dosyaların konumları, birincil dosya veritabanının ve içinde kaydedilir asıl veritabanı.The SQL Server Database Engine uses the file location information from the master database most of the saat.Ancak, Database Engine Dosya konumu girişleri'ni başlatmak için birincil dosyadan dosya konumu bilgileri kullanır Yönetici veritabanı aşağıdaki durumlarda:

  • CREATE DATABASE deyim, FOR ATTACH veya FOR ATTACH_REBUILD_LOG seçenekleri kullanarak bir veritabanı eklenirken.

  • Yükseltme sırasında SQL ServerSürüm 2000 ya da Sürüm 7.0.

  • Geri yüklerken Yönetici veritabanıdır.

Mantıksal ve fiziksel dosya adları

SQL Server dosyaları iki ad vardır:

logical_file_name

The logical_file_name is the name used to refer to the physical file in all Transact-SQL statements.Mantıksal dosya adı kurallarına uymanız gerekir SQL Server tanımlayıcılar veritabanında mantıksal dosya adları arasında benzersiz olmalıdır.

os_file_name

The os_file_name is the name of the physical file including the directory yol. Bu işletim sistemi dosya adları kurallarýna gerekir.

SQL Server veri ve günlük dosyaları, FAT veya NTFS dosya sistemlerinde koyabilirsiniz.NTFS dosya sistemi için kullanmanız önerilir, NTFS güvenlik özelliklerini.Okuma/yazma veri dosya gruplarını ve günlük dosyaları sıkıştırılmış bir NTFS dosya sistemine yerleştirilemez.Sıkıştırılmış bir NTFS dosya sisteminde, yalnızca salt okunur veritabanları ve salt okunur ikincil dosya gruplarını koyabilirsiniz.Daha fazla bilgi için bkz:Salt okunur Filegroups ve sıkıştırma.

Birden çok örnek SQL Server çalışan tek bir bilgisayarda, her durumda, oluşturulan veritabanlarının dosyaları için farklı varsayılan dizin alır. Daha fazla bilgi için bkz:Dosya konumları, varsayılan ve SQL Server adlandırılmış örnekleri.

Veri dosyası sayfaları

Sayfaları bir SQL Server veri dosyası numaralı sırayla, dosyayı ilk sayfa için sıfır (0) başlatılıyor. Her bir veritabanı dosyasında bir benzersiz dosya KIMLIK numarası vardır.Bir sayfa, bir veritabanındaki benzersiz olarak tanıtmak için , hem dosya KIMLIĞINI ve sayfa numarası gereklidir.Aşağıdaki örnek, 4 MB birincil veri dosyası ve 1 MB ikincil bir veri dosyası olan bir veritabanında sayfa numaralarını gösterir.

Sequential page numbers in two data files

Her dosyadaki ilk sayfanın dosya öznitelikleri hakkında bilgi içeren bir dosyanın üstbilgi sayfa.Diğer sayfalar dosyanın başındaki birkaç tahsisat eşlemeleri gibi sistem bilgilerini içerir.Birincil veri dosyası ve günlük dosyası ilk saklanan sistem sayfalardan birini veritabanının öznitelikleri hakkında bilgi içeren bir veritabanı önyükleme sayfa.Sayfaları ve sayfa türleri hakkında daha fazla bilgi için bkz: Anlama sayfaları ve alanları.

Dosya Boyutu

SQL Server dosyaları, başlangıçta belirtilen büyüklükleri otomatik olarak büyüyebilir.Bir dosya olarak tanımladığınızda, bir özel büyüme artışı belirtebilirsiniz.Her dosyayı girilir tarafından büyüme artışı boyutunu artırır.Bir dosya grubu çok sayıda dosya varsa, tüm dosyaları kadar değil otomatik büyüme göründükleri.Büyüme ardından hepsini bir şekilde gerçekleşir.

Her dosya, belirtilen en büyük boyutu da sahip olabilirsiniz.En büyük boyutu belirtilmezse, dosya diskte tüm kullanılabilir alan kullandı kadar büyümesine sürdürebilirsiniz.Bu özellik ne zaman kullanışlıdır SQL Server bir uygulamada katıştırılmış bir veritabanı kullanıcı Sistem Yöneticisi uygun erişimi yok kullanılır. Kullanıcı, dosyalar otomatik büyüme'veritabanında boş alanı izleme ve el ile ek alan ayırma yönetim yükünü azaltmak için gerekli izin verebilirsiniz.

Veritabanı anlık görüntü dosyaları

Yazma kopyası bulunan verileri depolamak için bir veritabanı anlık görüntü görüntü görüntü görüntüsü görüntüsü kullanılan bir dosya biçiminde olup olmadığını anlık görüntü görüntü bir kullanıcı tarafından oluşturulan veya dahili olarak kullanılan bağlıdır:

  • Bir kullanıcı tarafından oluşturulan BIR veritabanı anlık görüntü görüntü görüntü görüntüsü görüntüsü, bir veya daha çok seyrek dosyalar, verilerini depolar.Seyrek dosya teknolojisi NTFS dosya sisteminin bir özelliğidir.Ilk olarak, kullanıcı veri seyrek dosya içerir ve kullanıcı verileri için boş disk alanı seyrek dosya için ayrılmış.Seyrek dosyalar veritabanı anlık görüntüler ve nasıl veritabanı anlık görüntüleri ulaşması kullanımı hakkında genel bilgi için bkz: Nasıl veritabanı anlık görüntü çalışma ve Veritabanı anlık görüntü olarak seyrek dosya boyutları'nı anlama.

  • Veritabanı anlık görüntüleri, belirli DBCC komutları tarafından dahili olarak kullanılır.Bu komutlar, DBCC CHECKDB DBCC CHECKTABLE, DBCC CHECKALLOC ve DBCC CHECKFILEGROUP içerir.Bir iç veritabanı anlık görüntü görüntü görüntü görüntüsü görüntüsünü, özgün veritabanı dosyalarının sparse alternatif veri akışları kullanır.Seyrek dosyalar gibi alternatif veri akışları, NTFS dosya sisteminin bir özelliğidir.Seyrek olarak alternatif veri akışları için birden çok veri ayırmalar dosya boyutu veya birim istatistiklerini etkilemeden tek bir dosya veya klasör ile ilişkilendirilecek kullanılmasına.

Veritabanı Filegroups

Veritabanı nesnelerini ve dosyaları birlikte, dosya gruplarını tahsisat ve yönetim amaçları için gruplandırılabilir.Dosya grupları iki tür vardır:

Birincil

Birincil dosya grubu birincil veri dosyası ve özellikle başka bir dosya grubu için atanmış olan tüm diğer dosyaları içerir.Tüm sayfaları sistem tabloları için birincil dosya grubu ayrılır.

Kullanıcı tanımlı

Kullanıcı tanımlı dosya grubuna, DATABASE CREATE veya ALTER DATABASE deyim içinde dosya grubu anahtar sözcüğünü kullanarak belirtilen herhangi bir dosya gruplarını ' dir.

Günlük dosyaları, hiç bir dosya grubunun bir parçası olur.Günlük alanı, veri alanı ayrı ayrı yönetilir.

Dosya birden fazla dosya grubu üyesi olabilir.Tabloları, dizinler ve büyük nesne verileri, belirtilen bir dosya grubu ile ilişkili olabilir.Bu durumda, bu dosya grubu tahsis edilecek tüm sayfaları veya tablolar ve dizinler bölümlenmesi.Bölümlenmiş tablolar ve dizinler veri birimleri her biri ayrı bir dosya grubu veritabanında yerleştirilebilir bölünür.Bölümlenmiş tablolar ve dizinler hakkında daha fazla bilgi için bkz: Bölümlenmiş tablolar ve dizinler.

Her veritabanında tek bir dosya grubu, varsayılan dosya grubu gösterilir.Bir dosya grubu belirtmeksizin bir tablo ya da dizin oluşturulduğunda, varsayılan dosya grubu ' tahsis edilecek tüm sayfaları varsayılır.Bir defada yalnızca tek bir dosya grubu, varsayılan dosya grubu olabilir.Üyeleri db_owner sabit veritabanı rolü, dosya varsayılan grubunu bir dosya grubu alanından diğerine geçebilirsiniz.Hiçbir varsayılan dosya grubu belirlediyseniz, varsayılan dosya grubu birincil dosya grubu olur.

Dosya ve dosya grubu örneği

Aşağıdaki örnek, bir veritabanı örneğinde oluşturur. SQL Server. Veritabanı, birincil veri dosyası, kullanıcı tanımlı bir dosya grubu ve bir günlük dosyası vardır.Birincil veri dosyası birincil dosya grubunu ve kullanıcı tanımlı dosya grubu, iki ikincil veri dosyaları vardır.Kullanıcı tanımlı dosya grubu, bir ALTER DATABASE deyimini varsayılan yapar.Bir tablo kullanıcı tanımlı dosya grubu belirtme oluşturulur.

USE master;
GO
-- Create the database with the default data
-- filegroup and a log file. Specify the
-- growth increment and the max size for the
-- primary data file.
CREATE DATABASE MyDB
ON PRIMARY
  ( NAME='MyDB_Primary',
    FILENAME=
       'c:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\data\MyDB_Prm.mdf',
    SIZE=4MB,
    MAXSIZE=10MB,
    FILEGROWTH=1MB),
FILEGROUP MyDB_FG1
  ( NAME = 'MyDB_FG1_Dat1',
    FILENAME =
       'c:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\data\MyDB_FG1_1.ndf',
    SIZE = 1MB,
    MAXSIZE=10MB,
    FILEGROWTH=1MB),
  ( NAME = 'MyDB_FG1_Dat2',
    FILENAME =
       'c:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\data\MyDB_FG1_2.ndf',
    SIZE = 1MB,
    MAXSIZE=10MB,
    FILEGROWTH=1MB)
LOG ON
  ( NAME='MyDB_log',
    FILENAME =
       'c:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\data\MyDB.ldf',
    SIZE=1MB,
    MAXSIZE=10MB,
    FILEGROWTH=1MB);
GO
ALTER DATABASE MyDB 
  MODIFY FILEGROUP MyDB_FG1 DEFAULT;
GO

-- Create a table in the user-defined filegroup.
USE MyDB;
CREATE TABLE MyTable
  ( cola int PRIMARY KEY,
    colb char(8) )
ON MyDB_FG1;
GO

Aşağıdaki çizimde, önceki örnekteki sonuçlarını özetler.

Logical and physical file names of a database

See Also

Concepts