Udostępnij za pośrednictwem


Jak Przywrócenie bazy danych do bazy danych migawki (Transact-SQL)

Migawki bazy danych nie są nadmiarowe magazynu i w rezultacie nie zapewniają ochrony przed błędów dysku lub inne uszkodzenia.Jednakże występuje błąd użytkownika w bazie danych online, można przywrócić bazy danych do migawka bazy danych, który jest starszy od błędu.

Ważna informacjaWażne:

Podjęcie regularnego wykonywania kopii zapasowych i przywracanie planu testowania są istotnymi elementami ochrony bazy danych.Jeśli należy przywrócić bazy danych źródłowych do punktu w czas , w której utworzono migawka bazy danych, wykonania kopii zapasowej polityki, która umożliwia.

Przywracanie zastępuje oryginalny źródłowa baza danych z wycofanej bazy danych.Powracanie do migawka porzuca wszystkie katalogi pełnego tekstu.

Ważna informacjaWażne:

Zanim przywracanie, należy zapoznać z informacjami w Powracanie do migawkę bazy danych.

Aby przywrócić bazę danych do bazy danychmigawka

  1. Zidentyfikować migawka bazy danych, do której chcesz przywrócić bazy danych.Można wyświetlać migawki na bazie w SQL Server Management Studio (zobacz Jak Wyświetlić migawkę bazy danych (SQL Server Management Studio)).Ponadto można zidentyfikować źródłowa baza danych widoku z source_database_id kolumna sys.Databases (Transact-SQL) wykazu widoku.

  2. Upuść innych migawek bazy danych.

    Informacji na upuszczenie migawek, zobacz Jak Upuść migawkę bazy danych (Transact-SQL).Jeśli baza danych używa pełnych model odzyskiwanie, zanim przywracanie, należy wykonać kopię zapasową dziennika.Aby uzyskać więcej informacji, zobacz Jak Wykonywanie kopii zapasowej dziennika transakcji (SQL Server Management Studio) lub Jak Wykonywanie kopii zapasowej dziennika transakcji, gdy baza danych jest uszkodzona (Transact-SQL).

  3. Wykonywanie operacji przywracania.

    Operacja przywracania wymaga uprawnień do PRZYWRACANIA bazy danych na źródłowa baza danych.Aby przywrócić bazę danych, należy użyć następujących Transact-SQL instrukcji:

    RESTORE DATABASE <database_name> FROM DATABASE_SNAPSHOT =<database_snapshot_name>

    Gdy <nazwa_bazy_danych> jest źródłowa baza danych i <database_snapshot_name> jest nazwą migawka, do którego chcesz przywrócić bazy danych.Powiadomienie, że w tej instrukcja należy określić nazwę migawka zamiast urządzenie kopia zapasowa.

    Aby uzyskać więcej informacji, zobacz RESTORE (Transact-SQL).

    Ostrzeżenie

    Podczas operacji przywracania zarówno migawka i źródłowa baza danych są niedostępne.źródłowa baza danych i migawkę zarówno oznaczonych jako "W Przywracanie". Jeżeli błąd wystąpi podczas operacji przywracania, próbuje zakończyć przywracanie, gdy baza danych jest ponownie uruchamiany.

  4. Właściciel bazy danych zmienione od czasu utworzenia migawka bazy danych, można zaktualizować właociciela wycofanej bazy danych.

    Ostrzeżenie

    Zachowuje wycofanej bazy danych, uprawnienia i konfiguracja (takich jak właściciel bazy danych i model odzyskiwanie) migawka bazy danych.

  5. Uruchomić bazę danych.

  6. Opcjonalnie zapasową wycofanej bazy danych, szczególnie jeśli korzysta z pełnej (lub bulk-logged) model odzyskiwanie.Informacje o tworzeniu kopii zapasowej bazy danych, zobacz Jak: Wykonywanie kopii zapasowej bazy danych (SQL Server Management Studio) lub Jak Utwórz pełną kopię zapasową bazy danych (Transact-SQL).

Przykład

Ta sekcja zawiera przykłady Przywracanie bazy danych w migawka bazy danych.

A.Przywracanie migawka na bazie AdventureWorks2008R2

W tym przykładzie założono, że migawka tylko jeden istnieje obecnie na AdventureWorks2008R2 bazy danych.Na przykład, który tworzy migawka , do którego bazy danych zostanie przywrócone tutaj, zobacz Jak Utworzyć migawkę bazy danych (Transact-SQL).

USE master;
-- Reverting AdventureWorks2008R2 to AdventureWorks2008R2_dbss1800
RESTORE DATABASE AdventureWorks2008R2 from 
DATABASE_SNAPSHOT = 'AdventureWorks2008R2_dbss1800';
GO

B.Przywracanie migawka w bazie danych Sprzedaż

W tym przykładzie założono, że dwie migawki istnieje obecnie na Sprzedaż bazy danych: sales_snapshot0600 i sales_snapshot1200.W przykładzie usuwa starsze migawka i przywraca bazę danych do nowszej migawka.

Kod dla tworzenia przykładowej bazy danych i od których zależy w tym przykładzie migawek zobacz:

--Test to see if sales_snapshot0600 exists and if it 
-- does, delete it.
IF EXISTS (SELECT dbid FROM sys.databases
    WHERE NAME='sales_snapshot0600')
    DROP DATABASE SalesSnapshot0600;
GO
-- Reverting Sales to sales_snapshot1200
USE master;
RESTORE DATABASE Sales FROM DATABASE_SNAPSHOT = 'sales_snapshot1200';
GO