ZMIENIA opcje Grupa plików (języka Transact-SQL) i pliku bazy danych

Modyfikuje pliki i aplikacjami skojarzonych z bazą danych.Dodaje lub usuwa pliki i aplikacjami z bazy danych, zmiany atrybutów bazy danych lub jej plików i aplikacjami.Dla innych opcji ZMIEŃ bazę danych, zobacz ALTER DATABASE (Transact-SQL).

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

Składnia

ALTER DATABASE database_name 
{
    <add_or_modify_files>
  | <add_or_modify_filegroups>
}
[;]

<add_or_modify_files>::=
{
    ADD FILE <filespec> [ ,...n ] 
        [ TO FILEGROUP { filegroup_name } ]
  | ADD LOG FILE <filespec> [ ,...n ] 
  | REMOVE FILE logical_file_name 
  | MODIFY FILE <filespec>
}

<filespec>::= 
(
    NAME = logical_file_name  
    [ , NEWNAME = new_logical_name ] 
    [ , FILENAME = {'os_file_name' | 'filestream_path' } ] 
    [ , SIZE = size [ KB | MB | GB | TB ] ] 
    [ , MAXSIZE = { max_size [ KB | MB | GB | TB ] | UNLIMITED } ] 
    [ , FILEGROWTH = growth_increment [ KB | MB | GB | TB| % ] ] 
    [ , OFFLINE ]
) 

<add_or_modify_filegroups>::=
{
    | ADD FILEGROUP filegroup_name 
        [ CONTAINS FILESTREAM ]
    | REMOVE FILEGROUP filegroup_name 
    | MODIFY FILEGROUP filegroup_name
        { <filegroup_updatability_option> 
        | DEFAULT
        | NAME = new_filegroup_name 
        }
}
<filegroup_updatability_option>::=
{
    { READONLY | READWRITE } 
    | { READ_ONLY | READ_WRITE }
}

Argumenty

<add_or_modify_files>:: =

Określa plik ma być dodane, usunięte lub zmodyfikowane.

  • database_name
    Jest to nazwa bazy danych ma zostać zmodyfikowana.

  • DODAWANIE PLIKU
    Dodaje plik do bazy danych.

    • Aby grupa plików { filegroup_name }
      Określa grupa plików , do którego chcesz dodać określonego pliku.Aby wyświetlić bieżące aplikacjami i które grupa plików jest bieżące domyślne, użyj sys.filegroups katalogu widoku.
  • DODAJ PLIK DZIENNIKA
    Dodaje plik dziennika można dodać do określonej bazy danych.

  • USUWANIE PLIKUlogical_file_name
    Opis pliku logicznego powoduje usunięcie wystąpienie SQL Server i usuwa pliku fizycznego.Nie można usunąć pliku, chyba że jest pusta.

    • logical_file_name
      nazwa logiczna używana jest SQL Server przy odwoływaniu się do pliku.
  • MODYFIKOWANIE PLIKU
    Określa plik, który należy zmodyfikować.Tylko jeden <określenie_pliku>można zmienićwłaściwość w czas. Nazwa musi być zawsze określona w <specyfikacja_plików> Aby zidentyfikować plik ma zostać zmodyfikowana.Jeśli rozmiar jest określony, nowy rozmiar musi być większy niż bieżący rozmiar pliku.

    Aby zmodyfikować nazwa logiczna pliku danych lub plik dziennika, określ nazwę pliku logicznego ma być zmieniona w NAME klauzulai określ nową nazwa logiczna pliku w NEWNAME klauzula.Na przykład:

    MODIFY FILE ( NAME = logical_file_name, NEWNAME = new_logical_name ) 
    

    Aby przenieść do nowej lokalizacji pliku dziennika lub pliku danych, określ nazwę bieżącego pliku logicznego w NAME klauzula i określ nową nazwę pliku ścieżka i systemu operacyjnego w FILENAME klauzula.Na przykład:

    MODIFY FILE ( NAME = logical_file_name, FILENAME = ' new_path/os_file_name ' )
    

    Podczas przenoszenia wykaz pełnotekstowynależy określić tylko nowa ścieżka w pliku klauzula.Nie określono nazwy pliku systemu operacyjnego.

    Aby uzyskać więcej informacji, zobacz Przenoszenie plików bazy danych.

    Dla FILESTREAM grupa plikówmożna zmienić nazwę online.Nazwa pliku, które mogą być modyfikowane w trybie online; jednak zmiany wprowadzone do po kontener jest fizycznie przeniesiono, a serwer zostanie zamknięty, a następnie uruchomić ponownie.

    Można zestaw pliku FILESTREAM offline.Gdy plik FILESTREAM jest w trybie offline, jej nadrzędna grupa plików zostaną wewnętrznie oznaczone jako offline; Dlatego też dostęp do danych FILESTREAM w tej grupa plików nie powiedzie się.

<specyfikacja_plików>:: =

Formanty właściwości pliku.

  • NAZWAlogical_file_name
    Określa nazwa logiczna pliku.

    • logical_file_name
      nazwa logiczna używane w wystąpienie jest SQL Server przy odwoływaniu się do pliku.
  • NOWA_NAZWAnew_logical_file_name
    Określa nową nazwa logiczna pliku.

    • new_logical_file_name
      Jest to nazwa, aby zastąpić istniejącą nazwę pliku logicznego.Nazwa musi być unikatowa w obrębie bazy danych i zgodne z zasadami identyfikatorów.Nazwa może być znak lub Unicode stała, regularne identyfikatora lub identyfikator z ogranicznikami.Aby uzyskać więcej informacji, zobacz Używane identyfikatory jako nazwy obiektów.
  • Nazwa pliku { 'os_file_name" | 'filestream_path' }
    Określa nazwę pliku (fizycznej) systemu operacyjnego.

    • ' os_file_name '
      Standardowy (wierszy) grupa plikówto ścieżka i nazwę, która jest używana przez system operacyjny, podczas tworzenia pliku.Plik musi znajdować się na serwerze, na którym SQL Server jest zainstalowany.Określona ścieżka musi istnieć przed wykonaniem instrukcjaALTER DATABASE.

      Po określeniu ścieżka UNC do pliku parametrów rozmiar elementu MAXSIZE i FILEGROWTH nie może być zestaw .

      Ostrzeżenie

      Baz danych systemu nie może znajdować się w katalogach udziału UNC.

      Pliki danych nie należy umieszczać w systemach plików skompresowanych, chyba że są to pliki pomocnicze tylko do odczytu lub jeśli baza danych jest tylko do odczytu.Pliki dziennika nigdy nie powinny być traktowane w systemach plików skompresowanych.Aby uzyskać więcej informacji, zobacz Tylko do odczytu aplikacjami i kompresji.

      Jeśli plik znajduje się na partycji raw os_file_name należy określić tylko literę dysku z istniejącego partycji raw.Tylko jeden plik można umieścić na każdym partycją.

    • 'filestream_path'
      Nazwa pliku FILESTREAM grupa plikówodnosi się do ścieżka przechowywania danych FILESTREAM.ścieżka do folderu ostatniego musi istnieć, a ostatni folder nie musi istnieć.Na przykład jeżeli określona ścieżka C:\MyFiles\MyFilestreamData C:\MyFiles muszą istnieć przed uruchomieniem ZMIEŃ bazę danych, ale nie musi istnieć MyFilestreamData folder.

      grupa plików i plików (<filespec>) muszą być utworzone w tej samej instrukcja.Może istnieć tylko jeden plik <filespec>, dla FILESTREAM grupa plików.

      ROZMIAR elementu MAXSIZE i FILEGROWTH właściwości nie dotyczą FILESTREAM grupa plików.

  • ROZMIARsize
    Określa rozmiar pliku.ROZMIAR nie dotyczą aplikacjami FILESTREAM.

    • size
      Jest rozmiar pliku.

      Po określeniu dodać plik size jest początkowy rozmiar pliku.Po określeniu zmodyfikować plik size Nowy rozmiar pliku, a musi być większy niż bieżący rozmiar pliku.

      Gdy size nie podano pliku podstawowego SQL Server używa rozmiar pliku podstawowego w model bazy danych.Kiedy plik dziennika lub pliku pomocniczego jest określony, ale size nie został określony dla pliku, Aparat baz danych powoduje, że 1 MB.

      Sufiksy KB, MB, GB i TB może służyć do określania kilobajty, MB, gigabajtów lub terabajty.Wartość domyślna to MB.Określ liczbę całkowitą i nie zawierają ułamek dziesiętny.Do określania frakcji megabajt, konwertowanie wartości kilobajtów, mnożąc liczbę przez 1024.Na przykład określić 1536 KB zamiast 1,5 MB (1,5 x 1024 = 1536).

  • Elementu MAXSIZE { max_size| NIEOGRANICZONA}
    Określa maksymalny rozmiar pliku do którego może być powiększana.Elementu MAXSIZE nie dotyczą aplikacjami FILESTREAM.

    • max_size
      To maksymalny rozmiar pliku.Sufiksy KB, MB, GB i TB może służyć do określania kilobajty, MB, gigabajtów lub terabajty.Wartość domyślna to MB.Określ liczbę całkowitą i nie zawierają ułamek dziesiętny.Jeśli max_size nie jest określony, zwiększy rozmiar pliku, aż dysk jest pełny.

    • NIEOGRANICZONY
      Określa, że plik powiększa się, aż dysk jest zapełniony.W SQL Server, plik dziennika z nieograniczony przyrost ma maksymalny rozmiar 2 TB i plik danych ma maksymalny rozmiar 16 TB.

  • FILEGROWTHgrowth_increment
    Określa automatycznego przyrostu pliku.Ustawienie FILEGROWTH dla pliku nie może przekraczać ustawienie elementu MAXSIZE.FILEGROWTH nie ma zastosowania do aplikacjami FILESTREAM.

    • growth_increment
      Jest ilość miejsca dodane do pliku, że wymagane jest nowy obszar co czas .

      Wartość można określić w Megabajtach, KB, GB, TB lub procentu (%).Jeśli liczba jest określona bez MB, KB lub sufiks %, wartość domyślna to MB.Po określeniu % wzrost rozmiar przyrostu to występuje określony procent rozmiaru pliku w czas wartość przyrostu.Określony rozmiar jest zaokrąglana do najbliższej 64 KB.

      Wartość 0 wskazuje, że zestaw i dozwolone nie dodatkowe miejsce.

      Jeśli FILEGROWTH nie jest określony, wartość domyślna to 1 MB dla plików danych i 10% dla plików dziennika i wartość minimalna to 64 KB.

      Ostrzeżenie

      Począwszy od SQL Server 2005, przyrost rozmiaru domyślnego dla plików danych zmienił się od 10% do 1 MB.Domyślny plik dziennika o 10% pozostaje niezmieniony.

  • W TRYBIE OFFLINE
    Ustawia plik trybu offline i sprawia, że wszystkie obiekty w grupa plików niedostępne.

    PrzestrogaPrzestroga

    Tej opcji należy używać tylko wtedy, gdy plik jest uszkodzony i mogą być przywracane.Plik zestaw offline można tylko zestaw online przez przywrócenie pliku z kopia zapasowa.Aby uzyskać więcej informacji o przywracaniu pojedynczy plik, zobacz RESTORE (Transact-SQL).

<add_or_modify_filegroups>:: =

Dodawanie, modyfikowanie lub usuwanie grupa plików bazy danych.

  • DODAJ GRUPĘ PLIKÓWfilegroup_name
    Dodaje grupa plików w bazie danych.

  • ZAWIERA FILESTREAM
    Określa, że grupa plików przechowuje FILESTREAM dużych obiektów binarnych (bloków BLOB) w systemie plików.

  • USUŃ GRUPĘ PLIKÓWfilegroup_name
    Usuwa grupa plików z bazy danych.Nie można usunąć grupa plików , o ile nie jest pusty.Najpierw usuń wszystkie pliki z grupa plików .Aby uzyskać więcej informacji, zobacz temat "Usuń plik logical_file_name," wcześniej w tym temacie.

  • MODYFIKUJ grupę plików filegroup_name { <filegroup_updatability_option> | DOMYŚLNE | NAME =new_filegroup_name }
    Modyfikuje grupa plików , ustawiając stan na TYLKO_DO_ODCZYTU lub READ_WRITE, dokonując grupa plików domyślna grupa plików bazy danych lub zmiana nazwy grupa plików .

    • <filegroup_updatability_option>
      Ustawia właściwość tylko do odczytu albo do odczytu i zapisu w grupa plików.

    • DOMYŚLNE
      Zmiany domyślna baza danych grupa plików do filegroup_name.Tylko jedna grupa plików bazy danych może być domyślna grupa plików.Aby uzyskać więcej informacji, zobacz Opis plików i aplikacjami.

    • NAZWA =new_filegroup_name
      Zmienia nazwę grupa plików , aby new_filegroup_name.

<filegroup_updatability_option>:: =

Ustawia właściwość tylko do odczytu albo do odczytu i zapisu w grupa plików.

  • TYLKO_DO_ODCZYTU | TYLKO DO ODCZYTU
    Określa, że grupa plików jest tylko do odczytu.Aktualizacje obiektów w nim nie są dozwolone.Podstawowa grupa plików nie można dokonać tylko do odczytu.Aby zmienić ten stan, należy mieć wyłączny dostęp do bazy danych.Aby uzyskać więcej informacji zobacz SINGLE_USER klauzula.

    Ponieważ tylko do odczytu bazy danych nie zezwala na modyfikacji danych:

    • Automatyczne odzyskiwanie jest pomijany podczas uruchamiania systemu.

    • Zmniejszania bazy danych nie jest możliwe.

    • Blokowanie nie występuje w bazach danych tylko do odczytu.Może to spowodować szybsze kwerendy.

    Ostrzeżenie

    Słowo kluczowe zostaną usunięte tylko do odczytu, w przyszłej wersja programu Microsoft SQL Server.Należy unikać stosowania tylko do odczytu w nowych prac rozwojowych i plan do modyfikowania aplikacji, które aktualnie jest używany tylko do odczytu.Należy użyć TYLKO_DO_ODCZYTU.

  • READ_WRITE | ODCZYTU I ZAPISU
    Określa, że grupa jest READ_WRITE.Aktualizacje są włączone dla obiektów w grupa plików.Aby zmienić ten stan, należy mieć wyłączny dostęp do bazy danych.Aby uzyskać więcej informacji zobacz SINGLE_USER klauzula.

    Ostrzeżenie

    Słowo kluczowe odczytu i zapisu zostaną usunięte w przyszłej wersja programu Microsoft SQL Server.Należy unikać odczytu i zapisu w nowych prac rozwojowych i plan do modyfikowania aplikacji, które aktualnie używają odczytu i zapisu.Należy użyć READ_WRITE.

Stan tych opcji można ustalić poprzez badanie is_read_only kolumna w sys.databases katalogu widoku lub Updateability właściwość DATABASEPROPERTYEX funkcja.

Uwagi

Aby zmniejszyć rozmiar bazy danych, użyj dbcc shrinkdatabase.

Nie można dodać lub usunąć plik kopii zapasowej instrukcja jest uruchomiona.

Dla każdej bazy danych można określić maksymalnie 32 767 plików i aplikacjami 32 767.

W SQL Server 2005 lub nowszej, Państwo plik bazy danych (na przykład online lub offline), jest utrzymywane niezależnie od stanu bazy danych.Aby uzyskać więcej informacji, zobacz Plik Państwa.Stan plików w grupa plików określa dostępność cała grupa plików.grupa plików , były dostępne wszystkie pliki w obrębie grupa plików musi być online.Jeśli grupa plików trybu offline, próby dostępu grupa plików za pomocąinstrukcja SQLzakończy się niepowodzeniem z błędem. Podczas konstruowania planów kwerend dla instrukcji SELECT optymalizator kwerendy pozwala uniknąć ponownego zbudowania indeksów i widoki indeksowane, które znajdują się w trybie offline aplikacjami.Włącza te sprawozdania powiodła się.Jednakże jeśli grupa plików w trybie offline zawiera sterty lub indeks klastrowanytabela miejsce docelowe, nie instrukcji SELECT. Ponadto wszelkie INSERT, UPDATE lub DELETE instrukcja , która modyfikuje tabela z dowolnym indeks w trybie offline grupa plików nie powiedzie się.

Przenoszenie plików

W SQL Server 2005 lub nowszej, można przenieść system lub zdefiniowane przez użytkownika danych i plików dziennika przez podanie nowej lokalizacji w pliku.Może to być przydatne w następujących scenariuszach:

  • odzyskiwaniepo awarii.Na przykład baza danych jest w trybie podejrzanych lub zamknięcie systemu, spowodowane przez błąd sprzętowy.

  • Planowane przeniesienie.

  • Przeniesienie dysku zaplanowanej konserwacji.

Aby uzyskać więcej informacji, zobacz Przenoszenie plików bazy danych.

Inicjowanie plików

Domyślnie pliki danych i pliki dziennika są inicjowane przez napełnienie pliki zerami, gdy wykonaj jedną z następujących czynności:

  • Tworzenie bazy danych.

  • Dodawanie plików do istniejącej bazy danych.

  • Zwiększ rozmiar istniejącego pliku.

  • Przywracanie bazy danych lub grupa plików.

Pliki danych można zainicjować natychmiast.Umożliwia to szybkie wykonywanie tych operacji na plikach.Aby uzyskać więcej informacji, zobacz Zainicjowanie pliku bazy danych.

Przykłady

A.Dodawanie pliku do bazy danych

W następującym przykładzie dodano plik 5 MB danych do AdventureWorks2008R2 bazy danych.

USE master;
GO
ALTER DATABASE AdventureWorks2008R2 
ADD FILE 
(
    NAME = Test1dat2,
    FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\t1dat2.ndf',
    SIZE = 5MB,
    MAXSIZE = 100MB,
    FILEGROWTH = 5MB
);
GO

B.Dodawanie grupa plików za pomocą dwóch plików do bazy danych

Poniższy przykład tworzy grupa plików Test1FG1 w AdventureWorks2008R2 bazy danych i dodaje dwa pliki 5 MB do grupa plików.

USE master
GO
ALTER DATABASE AdventureWorks2008R2
ADD FILEGROUP Test1FG1;
GO
ALTER DATABASE AdventureWorks2008R2 
ADD FILE 
(
    NAME = test1dat3,
    FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\t1dat3.ndf',
    SIZE = 5MB,
    MAXSIZE = 100MB,
    FILEGROWTH = 5MB
),
(
    NAME = test1dat4,
    FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\t1dat4.ndf',
    SIZE = 5MB,
    MAXSIZE = 100MB,
    FILEGROWTH = 5MB
)
TO FILEGROUP Test1FG1;
GO

C.Dodawanie dwóch plików dziennika do bazy danych

W następującym przykładzie dodano dwa pliki dziennika 5 MB do AdventureWorks2008R2 bazy danych.

USE master;
GO
ALTER DATABASE AdventureWorks2008R2 
ADD LOG FILE 
(
    NAME = test1log2,
    FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\test2log.ldf',
    SIZE = 5MB,
    MAXSIZE = 100MB,
    FILEGROWTH = 5MB
),
(
    NAME = test1log3,
    FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\test3log.ldf',
    SIZE = 5MB,
    MAXSIZE = 100MB,
    FILEGROWTH = 5MB
);
GO

D.Usunięcie pliku z bazy danych

W następującym przykładzie usunięto jeden z plików dodanych w przykładzie B.

USE master;
GO
ALTER DATABASE AdventureWorks2008R2
REMOVE FILE test1dat4;
GO

E.Modyfikacja pliku

Poniższy przykład powoduje zwiększenie rozmiaru plików dodanych w przykładzie B.

USE master;
GO
ALTER DATABASE AdventureWorks2008R2 
MODIFY FILE
    (NAME = test1dat3,
    SIZE = 20MB);
GO

F.Przenoszenie plików do nowej lokalizacji

W następującym przykładzie przenoszona Test1dat2 Plik utworzony w przykładzie do nowego katalogu.

Ostrzeżenie

Przed uruchomieniem w tym przykładzie należy fizycznie Przenieś plik do nowego katalogu.W efekcie zatrzymać i uruchomić wystąpienie SQL Server lub AdventureWorks2008R2 bazy danych OFFLINE, a następnie ONLINE w celu wprowadzenia w życie zmiany.

USE master;
GO
ALTER DATABASE AdventureWorks2008R2
MODIFY FILE
(
    NAME = Test1dat2,
    FILENAME = N'c:\t1dat2.ndf'
);
GO

G.Przenoszenie tempdb do nowej lokalizacji

W następującym przykładzie przenoszona tempdb z jego bieżącej lokalizacji na dysku do innej lokalizacji dysku.Ponieważ tempdb jest ponownie tworzony za każdym czas usługa MSSQLSERVER jest uruchomiona, nie ma fizycznego przenoszenia danych i dziennika pliki.Pliki są tworzone po ponownym uruchomieniu usługa w kroku 3.Po ponownym uruchomieniu usługa , tempdb w dalszym ciągu funkcja w jego lokalizacji istniejącej.

  1. Określenie nazwy pliku logicznego tempdb bazy danych i ich bieżącej lokalizacji na dysku.

    SELECT name, physical_name
    FROM sys.master_files
    WHERE database_id = DB_ID('tempdb');
    GO
    
  2. Zmień położenie każdego pliku za pomocą ALTER DATABASE.

    USE master;
    GO
    ALTER DATABASE tempdb 
    MODIFY FILE (NAME = tempdev, FILENAME = 'E:\SQLData\tempdb.mdf');
    GO
    ALTER DATABASE  tempdb 
    MODIFY FILE (NAME = templog, FILENAME = 'E:\SQLData\templog.ldf');
    GO
    
  3. Zatrzymaj i ponownie uruchom wystąpienie SQL Server.

  4. Sprawdź zmiany pliku.

    SELECT name, physical_name
    FROM sys.master_files
    WHERE database_id = DB_ID('tempdb');
    
  5. Usuń pliki tempdb.mdf i templog.ldf z ich oryginalnej lokalizacji.

H.Wprowadzanie domyślnej grupa plików

Poniższy przykład powoduje, że Test1FG1 grupa plików utworzonych w przykładzie b domyślnej grupa plików.Następnie, domyślna grupa plików jest resetowany do PRIMARY grupa plików.Należy zauważyć, że PRIMARY muszą być rozdzielone w nawiasy i cudzysłowy.

USE master;
GO
ALTER DATABASE AdventureWorks2008R2 
MODIFY FILEGROUP Test1FG1 DEFAULT;
GO
ALTER DATABASE AdventureWorks2008R2 
MODIFY FILEGROUP [PRIMARY] DEFAULT;
GO

I.Dodawanie grupy plików przy użyciu ALTER bazy danych

W następującym przykładzie dodano FILEGROUP zawiera FILESTREAM klauzula do FileStreamPhotoDB bazy danych.

--Create and add a FILEGROUP that CONTAINS the FILESTREAM clause to
--the FileStreamPhotoDB database.
ALTER database FileStreamPhotoDB
ADD FILEGROUP TodaysPhotoShoot
CONTAINS FILESTREAM
GO

--Add a file for storing database photos to FILEGROUP 
ALTER database FileStreamPhotoDB
ADD FILE
(
    NAME= 'PhotoShoot1',
    FILENAME = 'C:\Users\Administrator\Pictures\TodaysPhotoShoot.ndf'
)
TO FILEGROUP TodaysPhotoShoot
GO