Pliki i architektura Filegroups

SQL Server mapuje bazy danych przez zestaw plików systemu operacyjnego.Informacje dotyczące danych i dziennika nigdy nie są mieszane w tym samym pliku, a poszczególne pliki są używane tylko przez jedną bazę danych.Filegroups nazywane są kolekcje plików i są używane do umieszczania danych i zadania administracyjne, takie jak kopia zapasowa lub operacji przywracanie.

Pliki bazy danych

SQL Server bazy danych są trzy typy plików:

  • Pliki danych podstawowych

    Plik danych podstawowych jest punktem początkowym bazy danych i wskazuje na inne pliki w bazie danych.Co baza danych zawiera jeden plik danych podstawowych.Rozszerzenie nazwy pliku zalecane dla plików danych podstawowych jest mdf.

  • Pomocniczych plików danych

    Pliki pomocnicze składają się wszystkie pliki danych, inny niż plik danych podstawowych.Niektóre bazy danych nie może mieć wszystkie pliki pomocnicze, podczas gdy inne mają kilka pomocniczych plików danych.The recommended file name extension for secondary data files is .ndf.

  • Pliki dziennika

    Pliki dziennika przechowywania wszystkich informacji z dziennika jest używany do odzyskiwania bazy danych.Musi istnieć co najmniej jeden plik dziennika dla każdej bazy danych, chociaż może istnieć więcej niż jeden.Rozszerzenie nazwy pliku zalecane dla plików dziennika jest ldf.

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.

W SQL Server, lokalizacje wszystkich plików w bazie danych są rejestrowane w pliku podstawowego bazy danych i w polu wzorzec bazy danych.The SQL Server Database Engine uses the file location information from the master database most of the czas.Jednak Database Engine używa informacji o lokalizacji pliku z podstawowego pliku zainicjować wpisy lokalizacji pliku w wzorzec bazy danych w następujących sytuacjach:

  • Podczas dołączania bazy danych za pomocą instrukcja CREATE DATABASE z opcjami do DOŁĄCZENIA lub ATTACH_REBUILD_LOG FOR.

  • W przypadku uaktualniania SQL Server w wersja 2000 lub w wersja 7.0.

  • Podczas przywracania wzorzec bazy danych.

Logicznej i fizycznej nazwy plików

SQL Server pliki mają dwie nazwy:

logical_file_name

The logical_file_name is the name used to refer to the physical file in all Transact-SQL statements.Nazwa pliku logicznego, muszą być zgodne z zasadami SQL Server identyfikatory i musi być unikatowa w stosunku do nazwy pliku logicznego w bazie danych.

os_file_name

The os_file_name is the name of the physical file including the directory ścieżka. To musi być zgodny z reguły dla nazw plików systemu operacyjnego.

SQL Server pliki danych i dziennika mogą być umieszczane w systemach plików FAT lub NTFS.Zaleca się użycie systemu plików NTFS, ponieważ aspektów zabezpieczeń systemu plików NTFS.Właściwość do odczytu i zapisu danych filegroups i plików dziennika nie może być umieszczony w systemie plików NTFS skompresowane.W systemie plików NTFS, skompresowane mogą być umieszczane tylko bazy danych tylko do odczytu i filegroups pomocniczego tylko do odczytu.Aby uzyskać więcej informacji zobaczRead-Only Filegroups and Compression.

Gdy wiele wystąpień SQL Server są uruchamiane na pojedynczym komputerze, każde wystąpienie odbiera inny domyślny katalog do przechowywania plików dla baz danych utworzonych w wystąpieniu. Aby uzyskać więcej informacji zobaczFile Locations for Default and Named Instances of SQL Server.

Dane pliku strony

Ze stron w SQL Server plik danych są numerowane kolejno, począwszy od zera (0) dla pierwszej strona w pliku. Każdy plik w bazie danych ma numer identyfikatora unikatowego pliku.Do unikatowego identyfikowania strona w bazie danych, wymagane są zarówno identyfikator pliku, jak i numer strona.W poniższym przykładzie strona numery w bazie danych, która zawiera plik danych podstawowych 4 MB i pliku danych pomocniczej 1 MB.

Sequential page numbers in two data files

Pierwsza strona każdego pliku jest strony nagłówka pliku, która zawiera informacje o atrybutach pliku.Kilka innych stron na początku pliku również zawierać informacje o systemie, takich jak mapy alokacji.Jednej ze stron system przechowywane w pliku podstawowego i pierwszy plik dziennika jest strona rozruchu bazy danych, który zawiera informacje o atrybutach bazy danych.Aby uzyskać więcej informacji na temat stron i typów stron zobacz Opis stron i zakresów.

Rozmiar pliku

SQL Server pliki można powiększyć automatycznie z ich pierwotnie określonego rozmiaru.Podczas definiowania pliku można określić przyrost określonego rozmiaru.Przy każdym pliku jest wypełniana, zwiększa jego rozmiar przez przyrost rozmiaru.Jeśli istnieje wiele plików w grupa plików, będą one nie autogrow aż wszystkie pliki są pełne.Następnie wzrostu występuje w sposób okrężny.

Każdy plik może być również podanego maksymalnego rozmiaru.Jeśli maksymalny rozmiar nie zostanie określona, plik może stale rośnie, dopóki wykorzystał wszystkie dostępne miejsce na dysku.Ta funkcja jest szczególnie przydatna wtedy, gdy SQL Server jest używana jako osadzone w aplikacji bazy danych w przypadku gdy użytkownik nie ma wygodny dostęp do administrator systemu. Użytkownik może umożliwiają autogrow plików zgodnie z wymaganiami, aby zmniejszyć obciążenie administracyjne monitorowania wolnego miejsca w bazie danych i ręczne Przydzielanie dodatkowego miejsca.

migawka bazy danych Plików

Rodzaj pliku, który jest używany przez migawka bazy danych do przechowywania danych jej kopię i zapisu zależy od tego, czy migawki jest tworzone przez użytkownika, czy używane wewnętrznie:

  • migawka bazy danych utworzone przez użytkownika są przechowywane dane w co najmniej jeden plik rozrzedzony.Technologia plik rozrzedzony jest funkcją systemu plików NTFS.Początkowo plik rozrzedzony nie zawiera żadnych danych użytkownika i ilość wolnego miejsca na dane użytkownika nie została alokowana do plik rozrzedzony.Aby uzyskać ogólne informacje dotyczące korzystania z plikami rozrzedzonymi migawek bazy danych i w jaki sposób powiększyć bazę danych migawek zobacz How Database Snapshots Work i Opis odstępem rozmiary plików w migawek bazy danych.

  • Migawki bazy danych są używane wewnętrznie przez pewne polecenia DBCC.Polecenia te obejmują CHECKDB DBCC, CHECKTABLE DBCC, DBCC CHECKALLOC i CHECKFILEGROUP DBCC.migawka wewnętrznej bazy danych używa rozrzedzone alternatywnych strumieniach danych oryginalnych plików bazy danych.Podobnie jak plikami rozrzedzonymi alternatywnych strumieniach danych są funkcją systemu plików NTFS.Korzystanie z rozrzedzone alternatywnych strumieniach danych zezwala na wiele przydziałów dane mają być skojarzone z pojedynczego pliku lub folderu nie wpływa na statystyki rozmiaru lub wielkość pliku.

Filegroups bazy danych

Obiekty bazy danych i plików można grupować w filegroups do celów alokacji i administrowania.Istnieją dwa rodzaje filegroups:

Podstawowy

Grupę podstawową plików zawiera plik danych podstawowych i innych plików, które nie zostały przypisane do innego grupa plików.Wszystkie strony w tabelach systemowych są przydzielane w podstawowym grupa plików.

Zdefiniowane przez użytkownika

Filegroups zdefiniowanej przez użytkownika są wszelkie filegroups, które są określane za pomocą słowa kluczowego grupa plików w instrukcja CREATE DATABASE lub ALTER DATABASE.

Pliki dziennika nigdy nie są częścią grupa plików.Obszar rejestrowania jest zarządzane oddzielnie z obszaru danych.

Plik nie może należeć do więcej niż jedną grupa plików.Tabele, indeksów i danych dużych obiektów mogą być skojarzone z określoną grupa plików.W tym przypadek wszystkie strony zostaną przydzielone, w tym grupa plików lub tabele oraz indeksy mogą być podzielone na partycje.Dane z tabel podzielonym na partycje i indeksów jest podzielony na jednostki, które mogą być umieszczone w osobnych grupa plików w bazie danych.Aby uzyskać więcej informacji na temat tabel podzielonym na partycje i indeksów zobacz Tabele podzielonym na partycje i indeksów.

Jedną grupa plików w każdej bazy danych jest wyznaczany grupa plików domyślnych.Po utworzeniu tabela lub indeks bez określenia grupa plików, zakłada się, wszystkie strony będą przydzielane z grupa plików domyślnych.Tylko jedną grupa plików w danej chwili może być grupa plików domyślnych.Członkowie db_owner stała rola bazy danych, można przełączyć grupa plików domyślny z jedną grupa plików do innego.Jeżeli określono wartość nie domyślną grupa plików, podstawowy grupa plików jest grupa plików domyślnych.

Plik i przykład grupa plików

Poniższy przykład tworzy na wystąpienie bazy danych SQL Server. Baza danych jest plik danych podstawowych, grupa plików przez użytkownika i pliku dziennika.Pliku podstawowego znajduje się w podstawowym grupa plików i grupa plików przez użytkownika ma dwa pomocniczych plików danych.instrukcja ALTER DATABASE tworzy grupa plików użytkownika domyślnego.Tabela zostanie utworzona, określając grupa plików przez użytkownika.

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

Na poniższej ilustracji przedstawiono podsumowanie wyniki z poprzedniego przykładu.

Logical and physical file names of a database

See Also

Concepts