Przywracanie kopii zapasowych baz danych programu SQL Server na maszynach wirtualnych platformy Azure

W tym artykule opisano sposób przywracania bazy danych programu SQL Server uruchomionej na maszynie wirtualnej platformy Azure, dla których kopia zapasowa usługi Azure Backup została utworzona w magazynie usługi Azure Backup Recovery Services.

W tym artykule opisano sposób przywracania baz danych programu SQL Server. Aby uzyskać więcej informacji, zobacz Tworzenie kopii zapasowych baz danych programu SQL Server na maszynach wirtualnych platformy Azure.

Uwaga

Zobacz macierz obsługi kopii zapasowych SQL, aby dowiedzieć się więcej na temat obsługiwanych konfiguracji i scenariuszy.

Przywracanie do czasu lub punktu odzyskiwania

Usługa Azure Backup może przywrócić bazy danych programu SQL Server uruchomione na maszynach wirtualnych platformy Azure w następujący sposób:

  • Przywróć do określonej daty lub godziny (do sekundy) przy użyciu kopii zapasowych dziennika transakcji. Usługa Azure Backup automatycznie określa odpowiednią pełną różnicową kopię zapasową i łańcuch kopii zapasowych dziennika, które są wymagane do przywrócenia na podstawie wybranego czasu.
  • Przywróć określoną pełną lub różnicową kopię zapasową, aby przywrócić do określonego punktu odzyskiwania.

Przywracanie wymagań wstępnych

Przed przywróceniem bazy danych zwróć uwagę na następujące kwestie:

  • Można przywrócić bazę danych do wystąpienia programu SQL Server w tym samym regionie platformy Azure.
  • Serwer docelowy musi zostać zarejestrowany w tym samym magazynie co źródło. Jeśli chcesz przywrócić kopie zapasowe do innego magazynu, włącz przywracanie między subskrypcjami.
  • Jeśli na serwerze działa wiele wystąpień, wszystkie wystąpienia powinny być uruchomione. W przeciwnym razie serwer nie będzie wyświetlany na liście serwerów docelowych, na których można przywrócić bazę danych. Aby uzyskać więcej informacji, zapoznaj się z krokami rozwiązywania problemów.
  • Aby przywrócić zaszyfrowaną bazę danych TDE do innego programu SQL Server, należy najpierw przywrócić certyfikat na serwerze docelowym.
  • Bazy danych z włączoną usługą CDC należy przywrócić przy użyciu opcji Przywróć jako pliki.
  • Zdecydowanie zalecamy przywrócenie bazy danych "master" przy użyciu opcji Przywróć jako pliki, a następnie przywrócenie przy użyciu poleceń języka T-SQL.
  • W przypadku wszystkich systemowych baz danych (model, msdb) zatrzymaj usługę agenta programu SQL Server przed wyzwoleniem przywracania.
  • Zamknij wszystkie aplikacje, które mogą próbować nawiązać połączenie z dowolną z tych baz danych.

Przywracanie bazy danych

Do przywrócenia potrzebne są następujące uprawnienia:

  • Uprawnienia operatora kopii zapasowej w magazynie, w którym wykonujesz przywracanie.
  • Dostęp współautora (zapisu) do źródłowej maszyny wirtualnej, która jest tworzona.
  • Dostęp współautora (zapisu) do docelowej maszyny wirtualnej:
    • Jeśli przywracasz kopię zapasową na tej samej maszynie wirtualnej, jest to źródłowa maszyna wirtualna.
    • Jeśli przywracasz w lokalizacji alternatywnej, jest to nowa docelowa maszyna wirtualna.

Przywróć w następujący sposób:

  1. W witrynie Azure Portal przejdź do centrum kopii zapasowej i kliknij pozycję Przywróć.

    Screenshot showing the start the restore process.

  2. Wybierz pozycję SQL na maszynie wirtualnej platformy Azure jako typ źródła danych, wybierz bazę danych do przywrócenia, a następnie kliknij przycisk Kontynuuj.

    Screenshot showing to select the datasource type.

  3. W obszarze Konfiguracja przywracania określ, gdzie (lub jak) przywrócić dane:

    • Lokalizacja alternatywna: przywróć bazę danych do alternatywnej lokalizacji i zachowaj oryginalną źródłową bazę danych.

    • Zastąp bazę danych: przywróć dane do tego samego wystąpienia programu SQL Server co oryginalne źródło. Ta opcja zastępuje oryginalną bazę danych.

      Ważne

      Jeśli wybrana baza danych należy do zawsze włączonej grupy dostępności, program SQL Server nie zezwala na zastąpienie bazy danych. Dostępna jest tylko lokalizacja alternatywna.

    • Przywróć jako pliki: Zamiast przywracać jako bazę danych, przywróć pliki kopii zapasowej, które można odzyskać jako bazę danych później na dowolnym komputerze, na którym znajdują się pliki przy użyciu programu SQL Server Management Studio.

Przywracanie do lokalizacji alternatywnej

  1. W menu Konfiguracja przywracania w obszarze Gdzie chcesz przywrócić wybierz pozycję Lokalizacja alternatywna.

  2. Wybierz nazwę i wystąpienie programu SQL Server, do którego chcesz przywrócić bazę danych.

  3. W polu Nazwa przywróconej bazy danych wprowadź nazwę docelowej bazy danych.

  4. Jeśli ma to zastosowanie, wybierz pozycję Zastąp, jeśli baza danych o tej samej nazwie już istnieje w wybranym wystąpieniu SQL.

  5. Wybierz pozycję Punkt przywracania i wybierz, czy chcesz przywrócić do określonego punktu w czasie , czy przywrócić do określonego punktu odzyskiwania.

    Screenshot showing to select Restore Point.

    Screenshot showing restore to point in time.

  6. W menu Konfiguracja zaawansowana:

    • Jeśli chcesz zachować bazę danych nieoperacyjną po przywróceniu, włącz opcję Przywróć z wartością NORECOVERY.

    • Jeśli chcesz zmienić lokalizację przywracania na serwerze docelowym, wprowadź nowe ścieżki docelowe.

      Enter target paths

  7. Wybierz przycisk OK , aby wyzwolić przywracanie. Śledź postęp przywracania w obszarze Powiadomienia lub śledź go w widoku Zadania kopii zapasowej w magazynie.

    Uwaga

    Przywracanie do punktu w czasie jest dostępne tylko w przypadku kopii zapasowych dzienników dla baz danych, które są w trybie odzyskiwania rejestrowanego zbiorczo.

Przywracanie i zastępowanie

  1. W menu Konfiguracja przywracania w obszarze Gdzie przywrócić wybierz pozycję Zastąp bazę danych>OK.

    Select Overwrite DB

  2. W obszarze Wybierz punkt przywracania wybierz pozycję Dzienniki (punkt w czasie), aby przywrócić do określonego punktu w czasie. Możesz też wybrać opcję Pełne i różnicowe , aby przywrócić do określonego punktu odzyskiwania.

    Uwaga

    Przywracanie do punktu w czasie jest dostępne tylko w przypadku kopii zapasowych dzienników dla baz danych, które są w trybie odzyskiwania rejestrowanego zbiorczo.

Przywracanie jako pliki

Aby przywrócić dane kopii zapasowej jako pliki .bak zamiast bazy danych, wybierz pozycję Przywróć jako pliki. Gdy pliki zostaną po cenach dumpingowych do określonej ścieżki, możesz przełączyć te pliki na dowolną maszynę, na której chcesz je przywrócić jako bazę danych. Ponieważ można przenosić te pliki na dowolną maszynę, możesz teraz przywrócić dane między subskrypcjami i regionami.

  1. W obszarze Gdzie i jak przywrócić wybierz pozycję Przywróć jako pliki.

  2. Wybierz nazwę programu SQL Server, do której chcesz przywrócić pliki kopii zapasowej.

  3. W ścieżce docelowej na serwerze wprowadź ścieżkę folderu na serwerze wybranym w kroku 2. Jest to lokalizacja, w której usługa będzie zrzucić wszystkie niezbędne pliki kopii zapasowej. Zazwyczaj ścieżka udziału sieciowego lub ścieżka zainstalowanego udziału plików platformy Azure, gdy jest określona jako ścieżka docelowa, umożliwia łatwiejszy dostęp do tych plików przez inne maszyny w tej samej sieci lub z tym samym udziałem plików platformy Azure zainstalowanym na nich.

    Uwaga

    Aby przywrócić pliki kopii zapasowej bazy danych w udziale plików platformy Azure zainstalowanym na docelowej zarejestrowanej maszynie wirtualnej, upewnij się, że serwer NT AUTHORITY\SYSTEM ma dostęp do udziału plików. Możesz wykonać poniższe kroki, aby udzielić uprawnień do odczytu/zapisu do usługi AFS zainstalowanej na maszynie wirtualnej:

    • Uruchom polecenie PsExec -s cmd , aby wprowadzić w powłoce NT AUTHORITY\SYSTEM
      • Wykonaj polecenie cmdkey /add:<storageacct>.file.core.windows.net /user:AZURE\<storageacct> /pass:<storagekey>
      • Weryfikowanie dostępu za pomocą polecenia dir \\<storageacct>.file.core.windows.net\<filesharename>
    • Rozpoczynanie przywracania jako plików z magazynu kopii zapasowych do \\<storageacct>.file.core.windows.net\<filesharename> jako ścieżki
      Narzędzie PsExec można pobrać ze strony Sysinternals .
  4. Wybierz przycisk OK.

    Select Restore As Files

  5. Wybierz pozycję Punkt przywracania i wybierz, czy chcesz przywrócić do określonego punktu w czasie , czy przywrócić do określonego punktu odzyskiwania.

  6. Podczas przywracania do punktu w czasie bazy danych SQL przy użyciu funkcji Przywróć jako pliki będą przechowywane wszystkie punkty odzyskiwania z pełnej kopii zapasowej do wybranego punktu w czasie. Następnie możesz przywrócić te pliki jako bazę danych na dowolnym komputerze, na którym się znajdują, przy użyciu programu SQL Server Management Studio.

    Restored Backup Files in Destination Path

Przywracanie do określonego punktu w czasie

Jeśli jako typ przywracania wybrano pozycję Dzienniki (punkt w czasie), wykonaj następujące czynności:

  1. W obszarze Przywróć datę/godzinę otwórz kalendarz. W kalendarzu daty z punktami odzyskiwania są wyświetlane w typie pogrubienia, a bieżąca data jest wyróżniona.

  2. Wybierz datę z punktami odzyskiwania. Nie można wybrać dat, które nie mają punktów odzyskiwania.

    Open the calendar

  3. Po wybraniu daty wykres osi czasu zawiera dostępne punkty odzyskiwania w ciągłym zakresie.

  4. Określ godzinę odzyskiwania na wykresie osi czasu lub wybierz godzinę. Następnie wybierz opcję OK.

Częściowe przywracanie jako pliki

Usługa Azure Backup decyduje o łańcuchu plików do pobrania podczas przywracania jako plików. Istnieją jednak scenariusze, w których możesz nie chcieć ponownie pobrać całej zawartości.

Na przykład, gdy masz zasady tworzenia kopii zapasowych cotygodniowych pełnych, codziennych różnic i dzienników, a pliki zostały już pobrane dla określonej różnicy. Okazało się, że nie jest to właściwy punkt odzyskiwania i podjęto decyzję o pobraniu różnicowego następnego dnia. Teraz wystarczy plik różnicowy, ponieważ masz już pełną zawartość. Dzięki możliwości częściowego przywracania jako plików udostępnianego przez usługę Azure Backup można teraz wykluczyć pełną z łańcucha pobierania i pobrać tylko różnicową.

Wykluczanie typów plików kopii zapasowej

Rozszerzenie UstawieniaOverrides.json to plik JSON (JavaScript Object Notation), który zawiera przesłonięcia dla wielu ustawień usługi Azure Backup dla języka SQL. W przypadku operacji "Przywracanie częściowe jako pliki" należy dodać nowe pole RecoveryPointTypesToBeExcludedForRestoreAsFiles JSON. To pole zawiera wartość ciągu, która wskazuje, które typy punktów odzyskiwania powinny być wykluczone w następnym przywracaniu jako operacja plików.

  1. Na maszynie docelowej, na której mają być pobierane pliki, przejdź do folderu "C:\Program Files\Azure Workload Backup\bin"

  2. Utwórz nowy plik JSON o nazwie "Extension UstawieniaOverrides.JSON", jeśli jeszcze nie istnieje.

  3. Dodaj następującą parę wartości klucza JSON

    {
    "RecoveryPointTypesToBeExcludedForRestoreAsFiles": "ExcludeFull"
    }
    
  4. Nie jest wymagane ponowne uruchomienie żadnej usługi. Usługa Azure Backup podejmie próbę wykluczenia typów kopii zapasowych w łańcuchu przywracania, jak wspomniano w tym pliku.

Tylko RecoveryPointTypesToBeExcludedForRestoreAsFiles przyjmuje określone wartości, które oznaczają punkty odzyskiwania, które mają być wykluczone podczas przywracania. W przypadku języka SQL następujące wartości to:

  • ExcludeFull (Inne typy kopii zapasowych, takie jak różnicowe i dzienniki, zostaną pobrane, jeśli znajdują się one w łańcuchu punktów przywracania)
  • ExcludeFullAndDifferential (inne typy kopii zapasowych, takie jak dzienniki, zostaną pobrane, jeśli znajdują się w łańcuchu punktów przywracania)
  • ExcludeFullAndIncremental (inne typy kopii zapasowych, takie jak dzienniki, zostaną pobrane, jeśli znajdują się w łańcuchu punktów przywracania)
  • ExcludeFullAndDifferentialAndIncremental (Inne typy kopii zapasowych, takie jak dzienniki, zostaną pobrane, jeśli znajdują się w łańcuchu punktów przywracania)

Przywracanie do określonego punktu przywracania

Jeśli jako typ przywracania wybrano opcję Pełny i różnicowy , wykonaj następujące czynności:

  1. Wybierz punkt odzyskiwania z listy, a następnie wybierz pozycję OK, aby ukończyć procedurę punktu przywracania.

    Choose a full recovery point

    Uwaga

    Domyślnie są wyświetlane punkty odzyskiwania z ostatnich 30 dni. Punkty odzyskiwania starsze niż 30 dni można wyświetlić, wybierając pozycję Filtr i wybierając zakres niestandardowy.

Przywracanie baz danych z dużą liczbą plików

Jeśli łączny rozmiar ciągu plików w bazie danych jest większy niż określony limit, usługa Azure Backup przechowuje listę plików bazy danych w innym składniku pit, aby nie można było ustawić docelowej ścieżki przywracania podczas operacji przywracania. Zamiast tego pliki zostaną przywrócone do domyślnej ścieżki SQL.

Restore Database with large file

Odzyskiwanie bazy danych z pliku .bak przy użyciu programu SSMS

Możesz użyć operacji Przywróć jako pliki , aby przywrócić pliki bazy danych w .bak formacie podczas przywracania z witryny Azure Portal. Dowiedz się więcej.

Po zakończeniu .bak przywracania pliku do maszyny wirtualnej platformy Azure można wyzwolić przywracanie przy użyciu poleceń TSQL za pośrednictwem programu SSMS.   Aby przywrócić pliki bazy danych do oryginalnej ścieżki na serwerze źródłowym, usuń klauzulę MOVE z zapytania przywracania TSQL.   Przykład

  USE [master] 
  RESTORE DATABASE [<DBName>] FROM  DISK = N'<.bak file path>'

Uwaga

Nie należy mieć tych samych plików bazy danych na serwerze docelowym (przywróć z zamianą).  Ponadto można włączyć natychmiastowe inicjowanie plików na serwerze docelowym, aby zmniejszyć obciążenie związane z inicjowaniem pliku.

Aby przenieść pliki bazy danych z docelowego serwera przywracania, możesz oprawić polecenie TSQL przy użyciu MOVE klauzul .

  USE [master] 
  RESTORE DATABASE [<DBName>] FROM  DISK = N'<.bak file path>'  MOVE N'<LogicalName1>' TO N'<TargetFilePath1OnDisk>',  MOVE N'<LogicalName2>' TO N'<TargetFilePath2OnDisk>' GO

Przykład

  USE [master] 
  RESTORE DATABASE [test] FROM  DISK = N'J:\dbBackupFiles\test.bak' WITH  FILE = 1,  MOVE N'test' TO N'F:\data\test.mdf',  MOVE N'test_log' TO N'G:\log\test_log.ldf',  NOUNLOAD,  STATS = 5 
  GO

Jeśli baza danych zawiera więcej niż dwa pliki, możesz dodać dodatkowe MOVE klauzule do zapytania przywracania. Można również użyć programu SSMS do odzyskiwania bazy danych przy użyciu .bak plików. Dowiedz się więcej.

Uwaga

W przypadku odzyskiwania dużej bazy danych zalecamy użycie instrukcji TSQL. Jeśli chcesz przenieść określone pliki bazy danych, zobacz listę plików bazy danych w formacie JSON utworzonym podczas operacji Przywróć jako pliki .

Przywracanie między regionami

W ramach jednej z opcji przywracania przywracanie między regionami (CRR) umożliwia przywracanie baz danych SQL hostowanych na maszynach wirtualnych platformy Azure w regionie pomocniczym, który jest sparowanym regionem platformy Azure.

Aby dołączyć do funkcji, przeczytaj sekcję Przed rozpoczęciem.

Aby sprawdzić, czy funkcja CRR jest włączona, postępuj zgodnie z instrukcjami w temacie Konfigurowanie przywracania między regionami

Wyświetlanie elementów kopii zapasowej w regionie pomocniczym

Jeśli tryb CRR jest włączony, możesz wyświetlić elementy kopii zapasowej w regionie pomocniczym.

  1. W portalu przejdź do pozycji Elementy kopii zapasowej magazynu>usługi Recovery Services.
  2. Wybierz pozycję Region pomocniczy, aby wyświetlić elementy w regionie pomocniczym.

Uwaga

Na liście będą wyświetlane tylko typy zarządzania kopiami zapasowymi obsługujące funkcję CRR. Obecnie dozwolona jest tylko obsługa przywracania danych regionu pomocniczego do regionu pomocniczego.

Backup items in secondary region

Databases in secondary region

Przywracanie w regionie pomocniczym

Środowisko użytkownika przywracania regionu pomocniczego będzie podobne do środowiska użytkownika przywracania regionu podstawowego. Podczas konfigurowania szczegółów w okienku Konfiguracja przywracania w celu skonfigurowania przywracania zostanie wyświetlony monit o podanie tylko parametrów regionu pomocniczego. Magazyn powinien istnieć w regionie pomocniczym, a serwer SQL powinien zostać zarejestrowany w magazynie w regionie pomocniczym.

Where and how to restore

Trigger restore in progress notification

Uwaga

  • Po wyzwoleniu przywracania i fazie transferu danych nie można anulować zadania przywracania.
  • Poziom roli/dostępu wymagany do wykonania operacji przywracania w wielu regionach to rola operatorów kopii zapasowych w ramach dostępu subskrypcji i współautora (zapisu) na źródłowych i docelowych maszynach wirtualnych. Aby wyświetlić zadania tworzenia kopii zapasowej, czytelnik kopii zapasowych jest minimalnym uprawnieniem wymaganym w ramach subskrypcji.
  • Cel punktu odzyskiwania dla danych kopii zapasowej, który ma być dostępny w regionie pomocniczym, wynosi 12 godzin. W związku z tym po włączeniu funkcji CRR cel punktu odzyskiwania dla regionu pomocniczego wynosi 12 godzin i czas trwania częstotliwości rejestrowania (który można ustawić na co najmniej 15 minut).

Dowiedz się więcej o minimalnych wymaganiach dotyczących roli dla przywracania między regionami.

Monitorowanie zadań przywracania w regionie pomocniczym

  1. W witrynie Azure Portal przejdź do obszaru Zadania tworzenia kopii zapasowej centrum>kopii zapasowej.

  2. Operacja filtrowania dla crossRegionRestore w celu wyświetlenia zadań w regionie pomocniczym.

    Screenshot showing the filtered Backup jobs.

Przywracanie między subskrypcjami

Usługa Azure Backup umożliwia teraz przywracanie bazy danych SQL do dowolnej subskrypcji (zgodnie z następującymi wymaganiami RBAC platformy Azure) z punktu przywracania. Domyślnie usługa Azure Backup przywraca do tej samej subskrypcji, w której są dostępne punkty przywracania.

W przypadku przywracania między subskrypcjami (CSR) masz elastyczność przywracania do dowolnej subskrypcji i dowolnego magazynu w dzierżawie, jeśli są dostępne uprawnienia przywracania. Domyślnie csr jest włączona we wszystkich magazynach usługi Recovery Services (istniejących i nowo utworzonych magazynach).

Uwaga

  • Przywracanie między subskrypcjami można wyzwolić z magazynu usługi Recovery Services.
  • Csr jest obsługiwane tylko w przypadku kopii zapasowych opartych na strumieniu i nie jest obsługiwane w przypadku kopii zapasowych opartych na migawkach.
  • Przywracanie między regionami (CRR) z csr nie jest obsługiwane.

Wymagania dotyczące kontroli dostępu opartej na rolach platformy Azure

Typ operacji Operator kopii zapasowych Magazyn usługi Recovery Services Operator alternatywny
Przywracanie bazy danych lub przywracanie jako plików Virtual Machine Contributor Źródłowa maszyna wirtualna, dla których utworzono kopię zapasową Zamiast roli wbudowanej można rozważyć rolę niestandardową, która ma następujące uprawnienia:

- Microsoft.Compute/virtualMachines/write
- Microsoft.Compute/virtualMachines/read
Virtual Machine Contributor Docelowa maszyna wirtualna, w której zostanie przywrócona baza danych, lub zostaną utworzone pliki. Zamiast roli wbudowanej można rozważyć rolę niestandardową, która ma następujące uprawnienia:

- Microsoft.Compute/virtualMachines/write
- Microsoft.Compute/virtualMachines/read
Backup Operator Docelowy magazyn usługi Recovery Services

Domyślnie csr jest włączona w magazynie usługi Recovery Services. Aby zaktualizować ustawienia przywracania magazynu usługi Recovery Services, przejdź do pozycji Właściwości>przywracanie między subskrypcjami i wprowadź wymagane zmiany.

Screenshot shows how to modify the Cross Subscription Restore settings on a Recovery Services vault for SQL database.

Następne kroki

Zarządzanie i monitorowanie baz danych programu SQL Server, których kopia zapasowa jest tworzona przez usługę Azure Backup.