How to: Restore a Database to a New Location and Name (Transact-SQL)

W tym temacie wyjaśniono, jak przywrócić pełny bazy danych kopia zapasowa do nowej lokalizacji i, opcjonalnie, pod nową nazwą.Procedura ta pozwala na przenoszenie bazy danych lub utworzyć kopię bazy danych dla tego samego wystąpienie serwera lub wystąpienie innego serwera.Aby uzyskać informacje dotyczące informacje dotyczące przenoszenia bazy danych zobacz Copying Databases with Backup and Restore.

Wymagania wstępne i zalecenia

  • Aby przywrócić bazę danych, które są szyfrowane, użytkownik musi mieć dostęp do certyfikat lub klucz asymetrycznego, który został użyty do zaszyfrowania bazy danych.Bez certyfikat i klucz asymetrycznego nie można przywrócić bazy danych.W rezultacie certyfikat, który jest używany do szyfrowanie klucz szyfrowanie bazy danych muszą być przechowywane tak długo, jak Kopia zapasowa jest potrzebny.Aby uzyskać więcej informacji zobaczSQL Server Certificates and Asymmetric Keys.

  • Ze względów bezpieczeństwa zaleca się nie dołączenie lub przywracanie baz danych z nieznanych lub niezaufanych źródeł.Takie bazy danych może zawierać złośliwy kod, który może być wykonać niezamierzone Transact-SQL Kod lub powodować błędy przez zmodyfikowanie schematu lub struktury fizycznej bazy danych. Aby korzystać z bazy danych z nieznanych lub niepewnych urządzenie źródłowe, uruchamianie DBCC CHECKDB w bazie danych na serwerze nonproduction i również sprawdzić kod, takie jak procedury przechowywane lub inny kod zdefiniowany przez użytkownika w bazie danych.

Poziom zgodności bazy danych po uaktualnieniu

Poziom zgodności tempdb, Model, msdb and Zasób baz danych są ustawione na 100, po uaktualnieniu.The master system database retains the compatibility poziom it had before upgrade, unless that poziom was less than 80.Jeśli poziom zgodności wzorzec była mniejsza niż 80 przed uaktualnieniem, jest on zestaw do 80 po uaktualnieniu.

Jeśli poziom zgodności baza danych użytkownika 80 lub 90 przed uaktualnieniem, pozostaje taka sama po uaktualnieniu.Jeżeli poziom zgodności był 70 lub mniej przed uaktualnieniem uaktualnionej bazy danych, to poziom zgodności zestaw do 80, która jest poziom najniższy obsługiwanych zgodności w SQL Server 2008.

Uwaga

Nowy użytkownik bazy danych będzie dziedziczyć poziom zgodności Model bazy danych.

Procedury

Aby przywracanie bazy danych do nowej lokalizacji i nazwy

  1. Opcjonalnie można określić logicznej i fizycznej nazwy plików w zestaw kopii zapasowych zawierający pełny bazy danych kopia zapasowa, którą chcesz przywrócić.Ta instrukcja zwraca listę bazy danych i pliki dziennika są zawarte w kopia zapasowa zestawu.Podstawowa składnia jest następująca:

    PRZYWRACANIE FILELISTONLY Z <backup_device> Z PLIKIEM = backup_set_file_number

    Uwaga

    Można uzyskać backup_set_file_number ustawić przy użyciu kopia zapasowa PRZYWRACANIE HEADERONLY instrukcja.

    To instrukcja obsługuje również liczbę z opcji.Aby uzyskać więcej informacji zobaczRESTORE FILELISTONLY (Transact-SQL).

  2. Użycie PRZYWRACANIE BAZY DANYCH instrukcję, aby przywrócić kopię zapasową pełnego bazy danych.Domyślnie pliki dziennika i dane są przywracane do ich oryginalnych lokalizacji.Aby przenieść bazę danych, należy użyć opcji MOVE, aby przenieść każdego z plików bazy danych i w celu uniknięcia kolizji z istniejącymi plikami.

    Podstawowe Transact-SQL Przywracanie bazy danych do nowej lokalizacji i nazwy składnia jest następująca:

    PRZYWRACANIE BAZY DANYCH new_database_name

    FROM backup_device [ ,...n ]

    Z

       {

            [ RECOVERY | NORECOVERY ]

       [ , ] [PLIKU = { backup_set_file_number | @backup\_set\_file\_number}

       [ , ] MOVE 'logical_file_name_in_backup' TO 'operating_system_file_name' [ ,...n ]

       }

    ;

    Uwaga

    Podczas przygotowywania przenieść bazę danych na innym dysku, należy sprawdzić, czy ilość miejsca jest dostępny i zidentyfikować wszelkie potencjalne kolizji z istniejącymi plikami.To polega na użyciu PRZYWRACANIE VERIFYONLY instrukcja, która określa te same parametry MOVE, który ma być używany w instrukcja RESTORE DATABASE.

    W poniższej tabela opisano argumenty tej instrukcja przywracanie w odniesieniu do przywracanie bazy danych do nowej lokalizacji.Aby uzyskać więcej informacji na temat tych argumentów zobacz przywracanie (języka Transact-SQL).

    • new_database_name
      Nowa nazwa bazy danych.

      Uwaga

      Podczas przywracania bazy danych do wystąpienie inny serwer, można użyć oryginalnej nazwy bazy danych, zamiast nazwy.

    • backup_device [ ,...n ]
      Określa rozdzielaną przecinkami listę od 1 do 64 urządzeń kopii zapasowych, z którego ma zostać przywrócony kopia zapasowa bazy danych.Można określić fizyczne urządzenie kopia zapasowa, lub można określić odpowiednie urządzenie logiczne kopia zapasowa, jeśli została zdefiniowana.Aby określić fizyczne urządzenie kopia zapasowa, należy użyć opcji DISK lub TAPE:

      { DISK | TAPE } **=**physical_backup_device_name

      Aby uzyskać więcej informacji zobaczBackup Devices.

    • { ODZYSKIWANIE | NORECOVERY}
      Jeśli baza danych używa pełny model odzyskiwanie, konieczne może być zastosowane kopie zapasowe dziennik transakcji, po przywróceniu bazy danych.W takim przypadek należy określić opcję NORECOVERY.

      W przeciwnym wypadku należy użyć opcji przywrócenia, co jest ustawieniem domyślnym.

    • FILE = { backup_set_file_number | @backup\_set\_file\_number }
      Identyfikuje kopia zapasowa zestaw do przywrócenia.Na przykład backup_set_file_number z 1 wskazuje pierwszą kopia zapasowa ustawić kopia zapasowa nośnik i backup_set_file_number z 2 wskazuje drugi kopia zapasowa zestawu.Można uzyskać backup_set_file_number z kopia zapasowa ustawić przy użyciu PRZYWRACANIE HEADERONLY instrukcja.

      Gdy ta opcja nie zostanie określony, ustawieniem domyślnym jest pierwszy za pomocą kopia zapasowa ustawić kopia zapasowa urządzenia.

      Aby uzyskać więcej informacji zobacz "Określanie a kopia zapasowa zestawu," w RESTORE Arguments (Transact-SQL).

    • MOVE 'logical_file_name_in_backup' TO 'operating_system_file_name' [ ,...n ]
      Określa, że plik danych lub dziennika określony przez logical_file_name_in_backup ma być przywrócony do lokalizacji określonej przez operating_system_file_name. Określanie instrukcja MOVE dla każdego pliku logicznego, które mają być przywrócone z kopia zapasowa ustawione do nowej lokalizacji.

      Opcja

      Description

      logical_file_name_in_backup

      Określa logiczną nazwę pliku danych lub dziennika w kopia zapasowa zestawu.Nazwa pliku logicznego w pliku danych lub dziennika kopia zapasowa zestaw pasuje do nazwy logiczne w bazie danych podczas kopia zapasowa zestaw został utworzony.

      NoteNote:
      Logiczne plików z listy kopia zapasowa ustawienie, należy użyć PRZYWRACANIE FILELISTONLY.

      operating_system_file_name

      Określa nową lokalizację dla pliku określonego przez logical_file_name_in_backup. Plik zostanie przywrócony do tej lokalizacji.

      Opcjonalnie, operating_system_file_name Określa nową nazwę pliku dla przywróconych plików.Jest to konieczne, jeśli tworzysz kopię istniejącej bazy danych na tym samym wystąpieniu serwera.

      n

      Jest symbol zastępczy wskazujący, że można określić dodatkowe instrukcje MOVE.

Uwaga

Po przywróceniu bazy danych programu SQL Server 2005 lub SQL Server 2000 do programu SQL Server 2008 baza danych jest dostępna natychmiast i jest automatycznie uaktualniana.Jeśli baza danych zawiera indeksy pełnotekstowe, są one podczas procesu uaktualniania importowane, resetowane lub odbudowywane, w zależności od ustawienia właściwości serwera upgrade_option.Gdy wybraną opcją uaktualnienia będzie opcja importu (upgrade_option = 2) lub odbudowywania (upgrade_option = 0), indeksy pełnotekstowe będą niedostępne w czasie uaktualniania.W zależności od ilości indeksowanych danych importowanie może trwać kilka godzin, a odbudowywanie może trwać do dziesięciu razy dłużej.Należy zauważyć, że w sytuacji, gdy wybraną opcją uaktualnienia będzie opcja importu, a wykaz pełnotekstowy będzie niedostępny, skojarzone indeksy pełnotekstowe zostaną odbudowane.Aby zmienić ustawienie właściwości serwera upgrade_option, należy użyć procedury składowanej sp_fulltext_service.

Przykład

Description

W tym przykładzie jest tworzona nowa baza danych o nazwie MyAdvWorks.MyAdvWorks to kopia istniejącej bazy danych AdventureWorks, która zawiera dwa pliki: AdventureWorks_Data i AdventureWorks_Log.W tej bazie danych jest używany model odzyskiwania prostego.Baza danych AdventureWorks istnieje już w wystąpieniu serwera, więc pliki z kopii zapasowej muszą zostać przywrócone do nowej lokalizacji.Instrukcja RESTORE FILELISTONLY służy do określania liczby i nazw plików w przywracanej bazie danych.Kopia zapasowa bazy danych jest pierwszym zestawem kopii zapasowych na urządzeniu kopii zapasowej.

Uwaga

Na przykład sposób tworzenia wykonać pełną kopię zapasową bazy danych z AdventureWorks bazy danych, zobacz How to: Create a Full Database Backup (Transact-SQL).

Uwaga

Przykłady wykonywania kopii zapasowych i przywracania dziennik transakcji, w tym przywraca punktu w czasie, należy użyć MyAdvWorks_FullRM Baza danych, która jest tworzona na podstawie AdventureWorks Podobnie jak następujący MyAdvWorks przykład:. Jednak wynikowym MyAdvWorks_FullRM Baza danych musi zostać zmieniony, aby użyć model pełnego odzyskiwanie: ALTER DATABASE MyAdvWorks_FullRM SET RECOVERY FULL.

Code

USE master
GO
-- First determine the number and names of the files in the backup.
-- AdventureWorks_Backup is the name of the backup device.
RESTORE FILELISTONLY
   FROM AdventureWorks_Backup
-- Restore the files for MyAdvWorks.
RESTORE DATABASE MyAdvWorks
   FROM AdventureWorks_Backup
   WITH RECOVERY,
   MOVE 'AdventureWorks_Data' TO 'D:\MyData\MyAdvWorks_Data.mdf', 
   MOVE 'AdventureWorks_Log' TO 'F:\MyLog\MyAdvWorks_Log.ldf'
GO