Udostępnij za pośrednictwem


Przywracanie plików do nowej lokalizacji (SQL Server)

Dotyczy:programu SQL Server

W tym temacie opisano sposób przywracania plików do nowej lokalizacji w programie SQL Server przy użyciu programu SQL Server Management Studio lub Języka Transact-SQL.

W tym temacie

Przed rozpoczęciem

Ograniczenia i ograniczenia

  • Administrator systemu przywracający pliki musi być jedyną osobą, która obecnie używa bazy danych do przywrócenia.

  • Funkcja RESTORE nie jest dozwolona w jawnej lub niejawnej transakcji.

  • W ramach pełnego lub zarejestrowanego zbiorczo modelu odzyskiwania przed przywróceniem plików należy utworzyć kopię zapasową aktywnego dziennika transakcji (znanego jako ogon dziennika). Aby uzyskać więcej informacji, zobacz Tworzenie kopii zapasowej dziennika transakcji (SQL Server).

  • Aby przywrócić zaszyfrowaną bazę danych, musisz mieć dostęp do certyfikatu lub klucza asymetrycznego, który został użyty do szyfrowania bazy danych. Bez certyfikatu lub klucza asymetrycznego nie można przywrócić bazy danych. W związku z tym certyfikat używany do szyfrowania klucza szyfrowania bazy danych musi być przechowywany tak długo, jak jest potrzebny do kopii zapasowej. Aby uzyskać więcej informacji, zobacz certyfikaty programu SQL Server i klucze asymetryczne.

Bezpieczeństwo

Uprawnienia

Jeśli przywracana baza danych nie istnieje, użytkownik musi mieć uprawnienia CREATE DATABASE, aby móc wykonać funkcję RESTORE. Jeśli baza danych istnieje, uprawnienia RESTORE domyślnie przysługują członkom stałych ról serwera sysadmin i dbcreator oraz właścicielowi bazy danych (dbo). Dla opcji FROM DATABASE_SNAPSHOT baza danych zawsze istnieje.

Uprawnienia RESTORE są przekazywane do ról, w których informacje o członkostwie są zawsze łatwo dostępne dla serwera. Ponieważ członkostwo w stałej roli bazy danych można sprawdzić tylko wtedy, gdy baza danych jest dostępna i nieuszkodzona, co nie zawsze jest możliwe przy wykonaniu operacji RESTORE, członkowie stałej roli bazy danych db_owner nie mają uprawnień do wykonywania operacji RESTORE.

Korzystanie z programu SQL Server Management Studio

Aby przywrócić pliki do nowej lokalizacji

  1. W Eksploratorze Obiektównawiąż połączenie z wystąpieniem silnika bazy danych SQL Server, rozwiń to wystąpienie, a następnie rozwiń Baz.

  2. Kliknij prawym przyciskiem myszy bazę danych, którą chcesz, wskaż Tasks, wskaż opcję Restore, a następnie kliknij pozycję Pliki i Grupy Plików.

  3. Na stronie Ogólne w polu listy Do bazy danych wprowadź bazę danych do przywrócenia. Możesz wprowadzić nową bazę danych lub wybrać istniejącą bazę danych z listy rozwijanej. Lista zawiera wszystkie bazy danych na serwerze, z wyłączeniem systemowych baz danych master i tempdb.

  4. Aby określić źródło i lokalizację zestawów kopii zapasowych do przywrócenia, kliknij jedną z następujących opcji:

    • z bazy danych

      Wprowadź nazwę bazy danych w polu listy. Ta lista zawiera tylko bazy danych, których kopia zapasowa została utworzona zgodnie z msdb historii kopii zapasowych.

    • z urządzenia

      Kliknij przycisk przeglądania. W oknie dialogowym Określanie urządzeń kopii zapasowych wybierz jeden z wymienionych typów urządzeń w polu listy Typ nośnika kopii zapasowej. Aby wybrać co najmniej jedno urządzenie w polu listy nośników kopii zapasowej , kliknij przycisk Dodaj.

      Po dodaniu urządzeń do listy nośnika kopii zapasowej, kliknij przycisk OK, aby powrócić do strony Ogólne.

  5. W siatce Wybierz zestawy kopii zapasowych do przywrócenia, wybierz kopie zapasowe do przywrócenia. Ta siatka wyświetla kopie zapasowe dostępne dla określonej lokalizacji. Domyślnie sugerowany jest plan odzyskiwania. Aby zastąpić proponowany plan odzyskiwania, możesz zmienić zaznaczone opcje w tabeli. Wszystkie kopie zapasowe, które zależą od zaznaczonej kopii zapasowej, są automatycznie usuwane.

    Nagłówek kolumny Wartości
    Przywróć Zaznaczone pola wyboru wskazują zestawy kopii zapasowych do przywrócenia.
    Nazwa Nazwa zestawu kopii zapasowych.
    Typ Pliku Określa typ danych w kopii zapasowej: Data, Loglub Filestream Data. Dane zawarte w tabelach znajdują się w plikach Data. Dane dziennika transakcji są w plikach dziennika . Dane dużych obiektów binarnych (BLOB) przechowywane w systemie plików znajdują się w plikach filestream data.
    typu Typ wykonywanej kopii zapasowej: Pełna, Różnicowalub Dziennik transakcji.
    Server Nazwa wystąpienia Database-Engine, które wykonało operację tworzenia kopii zapasowej.
    nazwa logiczna pliku Logiczna nazwa pliku.
    Baza danych Nazwa bazy danych zaangażowanej w operację tworzenia kopii zapasowej.
    data rozpoczęcia Data i godzina rozpoczęcia operacji tworzenia kopii zapasowej przedstawione w regionalnym ustawieniu klienta.
    Data Zakończenia Data i godzina zakończenia operacji tworzenia kopii zapasowej przedstawione w regionalnym ustawieniu klienta.
    rozmiar Rozmiar zestawu kopii zapasowych w bajtach.
    nazwa użytkownika Nazwa użytkownika, który wykonał operację tworzenia kopii zapasowej.
  6. W okienku Wybierz stronę kliknij na stronę Opcje.

  7. W Przywróć pliki bazy danych jako siatkę określ nową lokalizację dla pliku lub plików, które chcesz przenieść.

    Nagłówek kolumny Wartości
    oryginalna nazwa pliku Pełna ścieżka źródłowego pliku kopii zapasowej.
    Typ Pliku Określa typ danych w kopii zapasowej: Data, Loglub Filestream Data. Dane zawarte w tabelach znajdują się w plikach Data. Dane dziennika transakcji znajdują się w plikach dziennika . Dane dużych obiektów binarnych (BLOB) przechowywane w systemie plików znajdują się w plikach filestream data.
    przywracanie jako Pełna ścieżka pliku bazy danych do przywrócenia. Aby określić nowy plik przywracania, kliknij pole tekstowe i edytuj sugerowaną ścieżkę i nazwę pliku. Zmiana ścieżki lub nazwy pliku w kolumnie Restore As jest równoważna użyciu opcji MOVE w instrukcji Transact-SQL RESTORE.
  8. Wybierz pozycję OK.

Korzystanie z Transact-SQL

Aby przywrócić pliki do nowej lokalizacji

  1. Opcjonalnie wykonaj instrukcję RESTORE FILELISTONLY, aby określić liczbę i nazwy plików w pełnej kopii zapasowej bazy danych.

  2. Wykonaj instrukcję RESTORE DATABASE, aby przywrócić pełną kopię zapasową bazy danych, określając:

    • Nazwa bazy danych do przywrócenia.

    • Urządzenie kopii zapasowej, z którego zostanie przywrócona pełna kopia zapasowa bazy danych.

    • Klauzula MOVE dla każdego pliku w celu przywrócenia do nowej lokalizacji.

    • Klauzula NORECOVERY.

  3. Jeśli pliki zostały zmodyfikowane po utworzeniu kopii zapasowej pliku, wykonaj instrukcję RESTORE LOG, aby zastosować kopię zapasową dziennika transakcji, określając:

    • Nazwa bazy danych, do której zostanie zastosowany dziennik transakcji.

    • Urządzenie kopii zapasowej, z którego zostanie przywrócona kopia zapasowa dziennika transakcji.

    • Klauzula NORECOVERY, jeśli masz inną kopię zapasową dziennika transakcji, która ma być stosowana po bieżącym; w przeciwnym razie określ klauzulę RECOVERY.

      Kopie zapasowe dziennika transakcji, jeśli są stosowane, muszą obejmować czas tworzenia kopii zapasowych plików i grup plików.

Przykład (Transact-SQL)

W tym przykładzie przywrócono dwa pliki bazy danych MyNwind, które pierwotnie znajdowały się na dysku C, do nowych lokalizacji na dysku D. Zostaną również zastosowane dwa dzienniki transakcji w celu przywrócenia bazy danych do bieżącego czasu. Instrukcja RESTORE FILELISTONLY służy do określania liczby i nazw logicznych i fizycznych plików w przywracanej bazie danych.

USE master;  
GO  
-- First determine the number and names of the files in the backup.  
RESTORE FILELISTONLY  
   FROM MyNwind_1;  
-- Restore the files for MyNwind.  
RESTORE DATABASE MyNwind  
   FROM MyNwind_1  
   WITH NORECOVERY,  
   MOVE 'MyNwind_data_1' TO 'D:\MyData\MyNwind_data_1.mdf',   
   MOVE 'MyNwind_data_2' TO 'D:\MyData\MyNwind_data_2.ndf';  
GO  
-- Apply the first transaction log backup.  
RESTORE LOG MyNwind  
   FROM MyNwind_log1  
   WITH NORECOVERY;  
GO  
-- Apply the last transaction log backup.  
RESTORE LOG MyNwind  
   FROM MyNwind_log2  
   WITH RECOVERY;  
GO  

Zobacz też

przywracanie kopii zapasowej bazy danych przy użyciu programu SSMS
RESTORE (Transact-SQL)
kopiowanie baz danych za pomocą tworzenia kopii zapasowych i przywracania
przywracanie plików i grup plików (SQL Server)