Jak Przywracanie bazy danych do nowej lokalizacji i nazwy języka Transact-SQL)

W tym temacie omówiono sposoby przywracanie pełnej bazy danych kopia zapasowa do nowej lokalizacji i, opcjonalnie, pod nową nazwą.Ta procedura umożliwia przenoszenie bazy danych lub Utwórz kopię bazy danych tego samego wystąpienie serwera lub wystąpienie innego serwera.Informacji na temat zagadnień dotyczących przenoszenia bazy danych, zobacz Kopiowanie bazy danych z kopii zapasowej i przywracania.

Wymagania wstępne i zalecenia

  • Aby przywracanie bazy danych jest zaszyfrowany, musi mieć dostęp do certyfikat lub klucz asymetrycznego, który został użyty do zaszyfrowania bazy danych.Nie można przywrócić bazy danych bez certyfikat i klucz asymetrycznego.Certyfikat, który jest używany do szyfrowanie klucz szyfrowanie bazy danych muszą zostać zachowane w wyniku jak Kopia zapasowa jest potrzebny.Aby uzyskać więcej informacji, zobacz SQL Server certyfikaty i klucze asymetryczne.

  • Ze względów bezpieczeństwa zaleca się, można nie dołączać lub przywracanie bazy danych z nieznanych lub niezaufanych źródeł.Takie bazy danych może zawierać złośliwy kod, który może wykonać niezamierzone Transact-SQL Kod lub powodować błędy przez zmodyfikowanie schematu lub fizycznych struktura bazy danych.Przed użyciem bazy danych z nieznanych lub niezaufanych źródło, uruchomić dbcc checkdb bazy danych na serwerze Nieprodukcyjne 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

Poziomy zgodności z tempdb, model, msdb i zasobów bazy danych są zestaw do 100, po uaktualnieniu.Wzorca bazy danych systemu zachowuje poziom zgodności, jak przed uaktualnieniem, chyba że poziom był mniejszy niż 80.Jeśli poziom zgodności wzorca była mniejsza niż 80 przed uaktualnieniem, jest 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śli poziom zgodności został 70 lub mniej przed uaktualnieniem uaktualnionej bazy danych, poziom zgodności jest zestaw do 80, który jest poziom najniższej obsługiwanych zgodności w SQL Server 2008.

Ostrzeżenie

Nowych baz danych użytkowników będą dziedziczyły poziom zgodności model bazy danych.

Procedury

Aby przywracanie bazy danych do nowej lokalizacji i nazwy

  1. Opcjonalnie można określić fizyczne i logiczne nazwy plików z zestaw kopii zapasowych, który zawiera pełnej kopia zapasowa, którą chcesz przywracanie.Ta instrukcja zwraca listę bazy danych i pliki dziennika są zawarte w zestaw kopii zapasowych.Podstawowa składnia jest następująca:

    Przywracanie Z FILELISTONLY <backup_device> = plik backup_set_file_number

    Ostrzeżenie

    Można uzyskać backup_set_file_number z zestaw kopii zapasowych za pomocą RESTORE headeronly instrukcja.

    To instrukcja obsługuje również wiele opcji.Aby uzyskać więcej informacji, zobacz Przywracanie FILELISTONLY (Transact-SQL).

  2. Użyj przywracanie bazę danych instrukcja w celu przywrócenia pełnej kopia zapasowa.Domyślnie pliki danych i pliki dziennika są przywracane do ich oryginalnych lokalizacji.Aby przenieść bazę danych, aby przenieść wszystkie pliki bazy danych i w celu uniknięcia kolizji z istniejącymi plikami opcji PRZENOSZENIA.

    Podstawowe Transact-SQL jest składnia Przywracanie bazy danych do nowej lokalizacji i nazwy:

    PRZYWRACANIE BAZY DANYCH new_database_name

    FROM backup_device ,...n

    Z

       {

    RECOVERY | NORECOVERY]

    , [ FILE ={ backup_set_file_number | @backup_set_file_number } ]

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

       }

    ;

    Ostrzeżenie

    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.Obejmuje to za pomocą RESTORE verifyonly instrukcja, która określa te same parametry PRZENOSZENIA, które zamierzasz używać w instrukcji PRZYWRÓĆ bazę danych.

    W poniższej tabela opisano argumenty tej instrukcja PRZYWRACANIA w zakresie Przywracanie bazy danych do nowej lokalizacji.Aby uzyskać więcej informacji o tych argumentów, zobacz RESTORE (Transact-SQL).

    • new_database_name
      Nowa nazwa bazy danych.

      Ostrzeżenie

      Jeśli przywracasz wystąpienie innego serwera bazy danych, można użyć oryginalna nazwa bazy danych zamiast nową nazwę.

    • backup_device**,**...n
      Określa rozdzielaną przecinkami listę od 1 do 64 urządzenia kopia zapasowa, z których kopię zapasową bazy danych zostanie przywrócone.Można określić fizycznego urządzenie kopia zapasowa, lub można określić odpowiednie logiczne urządzenie kopia zapasowa, jeśli została zdefiniowana.Aby określić fizycznego urządzenie kopia zapasowa, użyj opcji dysku lub taśmy:

      { DISK | TAPE } **=**physical_backup_device_name

      Aby uzyskać więcej informacji, zobacz Urządzenia kopii zapasowej.

    • { ODZYSKIWANIE | NORECOVERY}
      Jeśli baza danych używa model odzyskiwanie pełnego, może być konieczne zastosowanie kopie zapasowe dziennika transakcji po przywracanie bazy danych.W takim przypadek należy określić opcję NORECOVERY.

      W przeciwnym razie użyj opcji odzyskiwania, które jest ustawieniem domyślnym.

    • FILE = { backup_set_file_number| @backup_set_file_number}
      Identyfikuje zestaw kopii zapasowych do przywrócenia.Na przykład backup_set_file_number z 1 wskazuje pierwszej kopia zapasowa ustawić na nośnik kopii zapasowych i backup_set_file_number z 2 wskazuje drugi zestaw kopii zapasowych.Można uzyskać backup_set_file_number z zestaw kopii zapasowych za pomocą RESTORE headeronly instrukcja.

      Gdy ta opcja nie jest określony, domyślnie jest użycie pierwszego zestaw kopii zapasowych na tym urządzeniu.

      Aby uzyskać więcej informacji zobacz "Określanie zestawu kopii zapasowych" in Przywracanie argumenty (Transact-SQL).

    • PRZENIEŚĆ 'logical_file_name_in_backup" do 'operating_system_file_name" ,...n
      Określa, że plik danych lub dziennika określony przez logical_file_name_in_backup jest przywrócone do lokalizacji określonej przez operating_system_file_name.Określanie instrukcja Przenoszenie dla każdego pliku logicznego, które chcesz przywracanie z zestaw do nowej lokalizacji kopia zapasowa.

      Opcja

      Opis

      logical_file_name_in_backup

      Określa logiczną nazwę pliku danych lub dziennika w kopii zapasowej zestaw.Nazwa pliku logicznego w pliku danych lub dziennika zestaw kopii zapasowych odpowiada jego nazwa logiczna w bazie danych podczas zestaw kopii zapasowych został utworzony.

      UwagaUwaga:
      Aby uzyskać listę plików logicznych z zestaw kopii zapasowych, użyj FILELISTONLY PRZYWRÓCIĆ.

      operating_system_file_name

      Określa nową lokalizację 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 przywracanego pliku.Jest to konieczne, jeśli tworzysz kopię istniejącej bazy danych dla tego samego wystąpienie serwera.

      n

      Jest symbolem zastępczym wskazującą, określić dodatkowe instrukcje przeniesienia.

Ostrzeżenie

Po przywracanie SQL Server 2005 lub SQL Server 2000 bazy danych do SQL Server 2008, bazy danych staje się natychmiast dostępne, a następnie zostanie automatycznie uaktualniony.If the database has full-text indexes, the upgrade process either imports, resets, or rebuilds them, depending on the setting of the upgrade_option server property.Jeśli opcja uaktualnienia zestaw do zaimportowania (upgrade_option = 2) lub odbudować (upgrade_option = 0), indeksy pełnotekstowe będzie niedostępny podczas uaktualniania systemu.Zależnie od ilości danych indeksowany, importowanie może potrwać kilka godzin i odbudowy może potrwać do dziesięciu razy dłużej.Należy zauważyć, że kiedy opcja uaktualnienia zestaw do importowania, odbudowa skojarzone indeksy pełnotekstowe Jeśli wykaz pełnotekstowy nie jest dostępny.Aby zmienić ustawienie upgrade_option właściwość serwera, należy zastosować sp_fulltext_service.

Przykład

Opis

This example creates a new database named MyAdvWorks.MyAdvWorks is a copy of the existing AdventureWorks2008R2 database that includes two files: AdventureWorks2008R2_Dataand AdventureWorks2008R2_Log.Ta baza danych używa model odzyskiwanie prostego.AdventureWorks2008R2 Baza danych już istnieje na serwerze wystąpienie, więc pliki w kopia zapasowa, musi zostać przywrócony do nowej lokalizacji.RESTORE FILELISTONLY instrukcja jest używany do określenia liczby i nazwy plików w bazie danych przywracana.Kopia zapasowa bazy danych jest pierwszym zestaw kopii zapasowych na tym urządzeniu.

Ostrzeżenie

Na przykład sposobu tworzenia kopia zapasowa bazy danych pełnego AdventureWorks2008R2 bazy danych, zobacz Jak Utwórz pełną kopię zapasową bazy danych (Transact-SQL).

Ostrzeżenie

Przykłady wykonywania kopii zapasowych i przywracanie dziennika transakcji, w tym punkcie-w-czas przywraca, użyj MyAdvWorks_FullRM bazy danych, która jest tworzona z AdventureWorks2008R2 podobnie jak następujący MyAdvWorks przykład.Jednak wynikowy MyAdvWorks_FullRM bazy danych musi zostać zmieniona na użyj pełnego model odzyskiwanie: ALTER DATABASE MyAdvWorks_FullRM SET RECOVERY FULL.

Kod

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