Udostępnij za pośrednictwem


Tworzenie kopii zapasowych plików i grup plików

Dotyczy:programu SQL Server

W tym temacie opisano sposób tworzenia kopii zapasowych plików i grup plików w programie SQL Server przy użyciu programu SQL Server Management Studio, języka Transact-SQL lub programu PowerShell. Gdy rozmiar bazy danych i wymagania dotyczące wydajności niepraktyczne tworzą pełną kopię zapasową bazy danych, zamiast tego można utworzyć kopię zapasową pliku. Kopia zapasowa pliku zawiera wszystkie dane w jednym lub więcej plikach (lub grupie plików).

Aby uzyskać więcej informacji na temat kopii zapasowych plików, zobacz Pełne kopie zapasowe (SQL Server) i różnicowe kopie zapasowe plików (SQL Server).

Przed rozpoczęciem

Ograniczenia i ograniczenia

  • Instrukcja BACKUP nie może być używana w kontekście jawnej ani niejawnej transakcji.

  • W ramach prostego modelu odzyskiwania wszystkie pliki odczytu/zapisu muszą być razem zabezpieczone kopią zapasową. Pomaga to upewnić się, że baza danych może zostać przywrócona do spójnego punktu w czasie. Zamiast indywidualnie określać każdy plik odczytu/zapisu lub grupę plików, użyj opcji READ_WRITE_FILEGROUPS. Ta opcja wykonuje kopię zapasową wszystkich grup plików odczytu/zapisu w bazie danych. Kopia zapasowa tworzona przez określenie READ_WRITE_FILEGROUPS jest znana jako częściowa kopia zapasowa, zobacz Partial Backups (SQL Server).

Aby uzyskać więcej informacji na temat ograniczeń i restrykcji, zobacz Backup Overview (SQL Server).

Zalecenia

Domyślnie każda pomyślna operacja tworzenia kopii zapasowej dodaje wpis w dzienniku błędów programu SQL Server i w dzienniku zdarzeń systemu. Jeśli tworzysz kopię zapasową dziennika bardzo często, te komunikaty o powodzeniu gromadzą się szybko, co powoduje ogromne dzienniki błędów, które mogą utrudnić znalezienie innych komunikatów. W takich przypadkach można pominąć te wpisy dziennika przy użyciu flagi śledzenia 3226, jeśli żaden z twoich skryptów nie zależy od tych wpisów, patrz Flagi śledzenia (Transact-SQL).

Uprawnienia

Uprawnienia BACKUP DATABASE i BACKUP LOG są domyślnie przypisane członkom stałej roli serwera sysadmin oraz stałych ról bazy danych db_owner i db_backupoperator.

Problemy z własnością i uprawnieniami w pliku fizycznym urządzenia kopii zapasowej mogą zakłócać operację tworzenia kopii zapasowej. Program SQL Server musi mieć możliwość odczytu i zapisu na urządzeniu; konto, na którym działa usługa SQL Server, musi mieć uprawnienia do zapisu. Jednak sp_addumpdevice, który dodaje wpis dla urządzenia kopii zapasowej w tabelach systemowych, nie sprawdza uprawnień dostępu do plików. Takie problemy z plikiem fizycznym urządzenia kopii zapasowej mogą nie pojawić się, dopóki nie zostanie uzyskany dostęp do zasobu fizycznego podczas próby utworzenia kopii zapasowej lub przywracania danych.

Korzystanie z programu SQL Server Management Studio

  1. Po nawiązaniu połączenia z odpowiednim wystąpieniem silnika bazy danych SQL Server, w Eksploratorze Obiektów kliknij na nazwę serwera, aby rozwinąć drzewo serwerów.

  2. Rozwiń Bazy danych, a w zależności od bazy danych, wybierz bazę danych użytkownika lub rozwiń Systemowe bazy danych i wybierz bazę danych systemową.

  3. Kliknij prawym przyciskiem myszy bazę danych, wskaż polecenie Tasks, a następnie kliknij przycisk Utwórz kopię zapasową. Zostanie wyświetlone okno dialogowe Kopia zapasowa bazy danych.

  4. Na liście Database sprawdź nazwę bazy danych. Opcjonalnie możesz wybrać inną bazę danych z listy.

  5. Na liście Typ kopii zapasowej wybierz pozycję Pełne lub Różnicowe.

  6. W przypadku opcji składnika kopii zapasowej kliknij Pliki i Grupy Plików.

  7. W oknie dialogowym Wybierz pliki i grupy plików wybierz pliki i grupy plików, których kopię zapasową chcesz utworzyć. Możesz wybrać co najmniej jeden pojedynczy plik lub zaznaczyć pole wyboru grupy plików, aby automatycznie zaznaczyć wszystkie pliki w tej grupie plików.

  8. Zaakceptuj domyślną nazwę zestawu kopii zapasowych sugerowaną w polu tekstowym Nazwa lub wprowadź inną nazwę dla zestawu kopii zapasowych.

  9. (opcjonalnie) W polu tekstowym opis wprowadź opis zestawu kopii zapasowych.

  10. Określ, kiedy zestaw kopii zapasowych wygaśnie:

    • Aby zestaw kopii zapasowej wygasał po określonej liczbie dni, kliknij przycisk Po (opcja domyślna) i wprowadź liczbę dni po utworzeniu zestawu, po którym wygaśnie. Ta wartość może wynosić od 0 do 99999 dni; wartość 0 dni oznacza, że zestaw kopii zapasowych nigdy nie wygaśnie.

      Wartość domyślna jest ustawiana w opcji Domyślne przechowywanie nośników kopii zapasowych (w dniach) okna dialogowego Właściwości serwera (stronaUstawienia bazy danych). Aby uzyskać dostęp do tej opcji, kliknij prawym przyciskiem myszy nazwę serwera w Eksploratorze obiektów i wybierz właściwości; następnie wybierz stronę Ustawienia bazy danych.

    • Aby zestaw kopii zapasowych wygasał w określonej dacie, kliknij przycisk W dniui wprowadź datę wygaśnięcia zestawu.

  11. Wybierz typ miejsca docelowego kopii zapasowej, klikając pozycję Dysk lub Taśma. Aby wybrać ścieżki maksymalnie 64 dysków lub stacji taśm, które zawierają jeden zestaw nośników, kliknij Dodaj. Wybrane ścieżki są wyświetlane na liście Backup do.

    Uwaga

    Aby usunąć miejsce docelowe kopii zapasowej, zaznacz ją i kliknij przycisk Usuń. Aby wyświetlić zawartość miejsca docelowego kopii zapasowej, zaznacz ją i kliknij pozycję Zawartość.

  12. Aby wyświetlić lub wybrać opcje zaawansowane, kliknij pozycję Opcje w okienku Wybierz stronę.

  13. Wybierz opcję Zastąp multimedia, klikając jedną z następujących opcji:

    • kopii zapasowej istniejącego zestawu multimediów

      W przypadku tej opcji kliknij pozycję Dołącz do istniejącego zestawu kopii zapasowych lub Zastąp wszystkie istniejące zestawy kopii zapasowych.

      Aby uzyskać informacje na temat tworzenia kopii zapasowej istniejącego zestawu multimediów, zobacz zestawy multimediów, rodziny multimediów i zestawy kopii zapasowych (SQL Server).

      • (opcjonalnie) Wybierz Sprawdź nazwę zestawu mediów i wygaśnięcie zestawu kopii zapasowej, aby operacja tworzenia kopii zapasowej mogła zweryfikować datę i godzinę ich wygaśnięcia.

      • (opcjonalnie) Wprowadź nazwę w polu tekstowym Nazwa zestawu multimediów. Jeśli żadna nazwa nie zostanie określona, zostanie utworzony nośnik o pustej nazwie. Jeśli określisz nazwę zestawu multimediów, nośnik (taśma lub dysk) zostanie sprawdzony, czy rzeczywista nazwa jest zgodna z nazwą wprowadzoną tutaj.

      Jeśli pozostawisz pustą nazwę nośnika i zaznaczysz pole wyboru, aby porównać je z nośnikiem, warunkiem powodzenia będzie to, że nazwa nośnika na nośniku również będzie pusta.

    • Zapisz kopię zapasową na nowym zestawie multimediów i usuń wszystkie istniejące zestawy kopii zapasowych

      W przypadku tej opcji wprowadź nazwę w polu tekstowym Nazwa nowego zestawu multimediów oraz opcjonalnie opisz zestaw w polu tekstowym Opis nowego zestawu multimediów.

      Aby uzyskać więcej informacji na temat tworzenia nowego zestawu multimediów, zobacz zestawy multimediów, rodziny multimediów i zestawy kopii zapasowych (SQL Server).

  14. (opcjonalnie) W sekcji niezawodność sprawdź:

  15. Jeśli tworzysz kopię zapasową na napędzie taśmowym (zgodnie z opisem w sekcji Destination strony Ogólne), opcja 'Rozładuj taśmę po wykonaniu kopii zapasowej' jest aktywna. Kliknięcie tej opcji umożliwia opcję Przewiń taśmę przed rozładunkiem.

    Notatka

    Opcje w sekcji Dziennika transakcji są nieaktywne, chyba że wykonujesz kopię zapasową dziennika transakcji (zgodnie z opisem w sekcji Typ kopii zapasowej na stronie Ogólne).

  16. Program SQL Server 2008 (10.0.x) Enterprise i nowsze wersje obsługują kompresję kopii zapasowych . Domyślnie, to czy kopia zapasowa jest kompresowana, zależy od wartości opcji konfiguracji serwera domyślnego kompresowania kopii zapasowej. Jednak niezależnie od bieżącego domyślnego poziomu serwera można skompresować kopię zapasową, zaznaczając Kompresuj kopię zapasową, i można zapobiec kompresji, zaznaczając Nie kompresuj kopii zapasowej.

    Aby wyświetlić domyślną kompresję bieżącej kopii zapasowej, zobacz lub skonfiguruj domyślną opcję konfiguracji serwera dla kompresji kopii zapasowej

Korzystanie z Transact-SQL

Aby utworzyć kopię zapasową pliku lub grupy plików, użyj instrukcji BACKUP DATABASE <file_or_filegroup>. Minimalnie ta instrukcja musi określać następujące elementy:

  • Nazwa bazy danych.

  • Klauzula FILE lub FILEGROUP dla każdego pliku lub grupy plików, odpowiednio.

  • Urządzenie kopii zapasowej, na którym zostanie zapisana pełna kopia zapasowa.

Podstawowa składnia Transact-SQL kopii zapasowej plików to:

KOPIA ZAPASOWA BAZY DANYCH

{ FILE =logical_file_name | FILEGROUP =logical_filegroup_name } [ ,...f ]

DO backup_device [ ,...n ]

[ Z z_opcjami [ ,...o ] ] ;

Opcja Opis
bazy danych Jest bazą danych, z której jest tworzona kopia zapasowa dziennika transakcji, częściowej bazy danych lub kompletnej bazy danych.
= logical_file_name PLIK Określa nazwę logiczną pliku do uwzględnienia w kopii zapasowej pliku.
FILEGROUP =logical_filegroup_name Określa nazwę logiczną grupy plików do uwzględnienia w kopii zapasowej pliku. W ramach prostego modelu odzyskiwania kopia zapasowa grupy plików jest dozwolona tylko dla grupy plików tylko do odczytu.
[ ,...f ] Jest symbolem zastępczym wskazującym, że można określić wiele plików i grup plików. Liczba plików lub grup plików jest nieograniczona.
backup_device [ ,...n ] Określa listę z 1 do 64 urządzeń kopii zapasowych do użycia na potrzeby operacji tworzenia kopii zapasowej. Możesz określić fizyczne urządzenie do tworzenia kopii zapasowej lub określić odpowiednie logiczne urządzenie kopii zapasowej, jeśli zostało już zdefiniowane. Aby określić fizyczne urządzenie kopii zapasowej, użyj opcji DISK lub TAPE:

{ DYSK | TAŚMA } =physical_backup_device_name

Aby uzyskać więcej informacji, zobacz Backup Devices (SQL Server).
WITH with_options [ ,...o ] Opcjonalnie określa co najmniej jedną dodatkową opcję, taką jak RÓŻNICOWA. Różnicowa kopia zapasowa wymaga pełnej kopii zapasowej jako podstawy.

Aby uzyskać więcej informacji, zobacz Tworzenie różnicowej kopii zapasowej bazy danych (SQL Server).

W ramach pełnego modelu odzyskiwania należy również utworzyć kopię zapasową dziennika transakcji. Aby użyć kompletnego zestawu pełnych kopii zapasowych plików w celu przywrócenia bazy danych, musisz również mieć wystarczającą liczbę kopii zapasowych dziennika, aby obejmować wszystkie kopie zapasowe plików, od początku pierwszej kopii zapasowej plików.

Aby uzyskać więcej informacji, zobacz Tworzenie kopii zapasowej dziennika transakcji (SQL Server).

Przykłady

Poniższe przykłady tworzą kopię zapasową co najmniej jednego pliku pomocniczej grupy plików bazy danych Sales. Ta baza danych używa pełnego modelu odzyskiwania i zawiera następujące pomocnicze grupy plików:

  • Grupa plików o nazwie SalesGroup1 zawierająca pliki SGrp1Fi1 i SGrp1Fi2.

  • Grupa plików o nazwie SalesGroup2 zawierająca pliki SGrp2Fi1 i SGrp2Fi2.

A. Utwórz kopię zapasową dwóch plików

Poniższy przykład tworzy różnicową kopię zapasową jedynie pliku SGrp1Fi2 z pliku SalesGroup1 oraz pliku SGrp2Fi2 z grupy plików SalesGroup2.

--Backup the files in the SalesGroup1 secondary filegroup.  
BACKUP DATABASE Sales  
   FILE = 'SGrp1Fi2',   
   FILE = 'SGrp2Fi2'   
   TO DISK = 'G:\SQL Server Backups\Sales\SalesGroup1.bck';  
GO  

B. Tworzenie pełnej kopii zapasowej plików pomocniczych grup plików

Poniższy przykład tworzy pełną kopię zapasową każdego pliku w obu pomocniczych grupach plików.

--Back up the files in SalesGroup1.  
BACKUP DATABASE Sales  
   FILEGROUP = 'SalesGroup1',  
   FILEGROUP = 'SalesGroup2'  
   TO DISK = 'C:\MySQLServer\Backups\Sales\SalesFiles.bck';  
GO  

C. Tworzenie różnicowej kopii zapasowej plików pomocniczych grup plików

Poniższy przykład tworzy różnicową kopię zapasową plików dla każdego pliku w obu pomocniczych grupach plików.

--Back up the files in SalesGroup1.  
BACKUP DATABASE Sales  
   FILEGROUP = 'SalesGroup1',  
   FILEGROUP = 'SalesGroup2'  
   TO DISK = 'C:\MySQLServer\Backups\Sales\SalesFiles.bck'  
   WITH   
      DIFFERENTIAL;  
GO  

Korzystanie z programu PowerShell

Skonfiguruj i użyj dostawcy programu PowerShell programu SQL Server.

Użyj polecenia cmdlet Backup-SqlDatabase Backup-SqlDatabase i określ Files dla wartości parametru -BackupAction. Ponadto określ jeden z następujących parametrów:

  • Aby utworzyć kopię zapasową określonego pliku, określ parametr -DatabaseFileString, gdzie string jest jednym lub więcej plików bazy danych do utworzenia kopii zapasowej.

  • Aby utworzyć kopię zapasową wszystkich plików w danej grupie plików, określ parametr -DatabaseFileGroupString, gdzie ciąg jest co najmniej jedną grupą plików bazy danych do utworzenia kopii zapasowej.

Poniższy przykład tworzy pełną kopię zapasową plików dla każdego pliku w pomocniczych grupach plików "FileGroup1" i "FileGroup2" w bazie danych <myDatabase>. Kopie zapasowe są tworzone w domyślnej lokalizacji instancji serwera Computer\Instance.

Backup-SqlDatabase -ServerInstance Computer\Instance -Database <myDatabase> -BackupAction Files -DatabaseFileGroup "FileGroup1","FileGroup2" 

Zobacz też

Przegląd kopii zapasowej (SQL Server)
BACKUP (Transact-SQL)
PRZYWRÓĆ (Transact-SQL)
Historia Kopii Zapasowych i Informacje Nagłówkowe (SQL Server)
tworzenie kopii zapasowej bazy danych (strona ogólna)
Kopia zapasowa bazy danych (Strona z opcjami kopii zapasowej)
Pełne kopie zapasowe plików (SQL Server)
Kopie Zapasowe Różnicowe (SQL Server)
przywracanie plików (pełny model odzyskiwania)
Przywracanie plików (prosty model przywracania)