Tworzenie kopii zapasowych baz danych SQL na maszynie wirtualnej platformy Azure przy użyciu interfejsu wiersza polecenia platformy Azure

Interfejs wiersza polecenia platformy Azure służy do tworzenia zasobów platformy Azure i zarządzania nimi z poziomu wiersza polecenia lub za pośrednictwem skryptów. W tym artykule opisano sposób tworzenia kopii zapasowej bazy danych SQL na maszynie wirtualnej platformy Azure i wyzwalania kopii zapasowych na żądanie przy użyciu interfejsu wiersza polecenia platformy Azure. Te akcje można również wykonać przy użyciu Azure Portal.

W tym artykule założono, że masz już bazę danych SQL zainstalowaną na maszynie wirtualnej platformy Azure. (Możesz również utworzyć maszynę wirtualną przy użyciu interfejsu wiersza polecenia platformy Azure).

Ten artykuł obejmuje następujące zagadnienia:

  • Tworzenie magazynu usługi Recovery Services
  • Rejestrowanie serwera SQL i odnajdywanie baz danych na nim
  • Włączanie tworzenia kopii zapasowej w bazie danych SQL
  • Wyzwalanie kopii zapasowej na żądanie

Zobacz aktualnie obsługiwane scenariusze dla usługi SQL na maszynie wirtualnej platformy Azure.

Wymagania wstępne

Tworzenie magazynu usługi Recovery Services

Magazyn usługi Recovery Services to logiczny kontener, który przechowuje dane kopii zapasowej dla każdego chronionego zasobu, takiego jak maszyny wirtualne platformy Azure lub obciążenia uruchomione na maszynach wirtualnych platformy Azure — na przykład bazy danych SQL lub HANA. Gdy zadanie tworzenia kopii zapasowej chronionego zasobu zostaje uruchomione, tworzony jest punkt odzyskiwania w magazynie usługi Recovery Services. Następnie można użyć jednego z tych punktów odzyskiwania w celu przywrócenia danych do danego punktu w czasie.

Utwórz magazyn usługi Recovery Services za pomocą polecenia az backup vault create . Użyj grupy zasobów i lokalizacji jako maszyny wirtualnej, którą chcesz chronić. Dowiedz się, jak utworzyć maszynę wirtualną przy użyciu interfejsu wiersza polecenia platformy Azure, korzystając z tego przewodnika Szybki start.

W tym artykule użyjemy:

  • Grupa zasobów o nazwie SQLResourceGroup
  • Maszyna wirtualna o nazwie testSQLVM
  • Zasoby w lokalizacji westus2 .

Uruchom następujące polecenie, aby utworzyć magazyn o nazwie SQLVault.

az backup vault create --resource-group SQLResourceGroup \
    --name SQLVault \
    --location westus2

Domyślnie magazyn usługi Recovery Services jest ustawiony na magazyn geograficznie nadmiarowy. Geo-Redundant magazynu gwarantuje, że dane kopii zapasowej są replikowane do pomocniczego regionu świadczenia usługi Azure, nawet jeśli jest to setki kilometrów od regionu podstawowego. Jeśli należy zmodyfikować ustawienie nadmiarowości magazynu, użyj polecenia az backup-properties set magazynu kopii zapasowych .

az backup vault backup-properties set \
    --name SQLVault  \
    --resource-group SQLResourceGroup \
    --backup-storage-redundancy "LocallyRedundant/GeoRedundant"

Aby sprawdzić, czy magazyn został pomyślnie utworzony, użyj polecenia az backup vault list . Odpowiedź jest wyświetlana jako:

Location   Name             ResourceGroup
---------  ---------------  -------------  
westus2    SQLVault     	SQLResourceGroup

Rejestrowanie i ochrona SQL Server

Aby zarejestrować SQL Server w magazynie usługi Recovery Services, użyj polecenia az backup container register. VMResourceId to identyfikator zasobu maszyny wirtualnej utworzonej do zainstalowania programu SQL.

az backup container register --resource-group SQLResourceGroup \
    --vault-name SQLVault \
    --workload-type SQLDataBase \
    --backup-management-type AzureWorkload \
    --resource-id VMResourceId

Uwaga

Jeśli maszyna wirtualna nie znajduje się w tej samej grupie zasobów co magazyn, sqlResourceGroup używa grupy zasobów, w której utworzono magazyn.

Zarejestrowanie serwera SQL automatycznie odnajduje wszystkie bieżące bazy danych. Aby jednak odnaleźć nowe bazy danych, które mogą zostać dodane w przyszłości, zobacz sekcję Odnajdywanie nowych baz danych dodanych do zarejestrowanego serwera SQL .

Użyj polecenia az backup container list , aby sprawdzić, czy wystąpienie SQL zostało pomyślnie zarejestrowane w magazynie. Odpowiedź jest wyświetlana jako:

Name                                                    Friendly Name    Resource Group        Type           Registration Status
------------------------------------------------------  --------------   --------------------  ---------      ----------------------
VMAppContainer;Compute;SQLResourceGroup;testSQLVM   	testSQLVM        SQLResourceGroup  		AzureWorkload  Registered

Uwaga

Nazwa kolumny w powyższych danych wyjściowych odnosi się do nazwy kontenera. Ta nazwa kontenera jest używana w następnych sekcjach, aby umożliwić tworzenie kopii zapasowych i ich wyzwalanie. Na przykład VMAppContainer; Obliczyć; SQLResourceGroup;testSQLVM.

Włączanie tworzenia kopii zapasowej w bazie danych SQL

Polecenie az backup protectable-item list wyświetla listę wszystkich baz danych odnalezionych w wystąpieniu SQL zarejestrowanym w poprzednim kroku.

az backup protectable-item list --resource-group SQLResourceGroup \
    --vault-name SQLVault \
    --workload-type SQLDataBase \
	--backup-management-type AzureWorkload \
	--protectable-item-type SQLDataBase
    --output table

Baza danych powinna znajdować się na tej liście, której kopię zapasową chcesz utworzyć, która jest wyświetlana jako:

Name                           		Protectable Item Type    ParentName    ServerName    	IsProtected
-----------------------------  		----------------------   ------------  -----------   	------------
sqldatabase;mssqlserver;master      SQLDataBase              MSSQLServer   testSQLVM        NotProtected  
sqldatabase;mssqlserver;model       SQLDataBase              MSSQLServer   testSQLVM        NotProtected  
sqldatabase;mssqlserver;msdb        SQLDataBase              MSSQLServer   testSQLVM        NotProtected  

Teraz skonfiguruj kopię zapasową dla bazy danych sqldatabase;mssqlserver;master database.

Aby skonfigurować i chronić kopie zapasowe w bazie danych, pojedynczo użyj polecenia az backup protection enable-for-azurewl . Podaj nazwę zasad, których chcesz użyć. Aby utworzyć zasady przy użyciu interfejsu wiersza polecenia, użyj polecenia az backup policy create . W tym artykule użyliśmy zasad testSQLPolicy .

az backup protection enable-for-azurewl --resource-group SQLResourceGroup \
    --vault-name SQLVault \
    --policy-name SQLPolicy \
    --protectable-item-name "sqldatabase;mssqlserver;master"  \
    --protectable-item-type SQLDataBase \
    --server-name testSQLVM \
    --workload-type SQLDataBase \
    --output table

Możesz użyć tego samego polecenia, jeśli masz zawsze włączoną grupę dostępności SQL i chcesz zidentyfikować chronione źródło danych w grupie dostępności. W tym miejscu typ elementu, który można chronić, to SQLAG.

Aby sprawdzić, czy powyższa konfiguracja kopii zapasowej została ukończona, użyj polecenia az backup job list . Dane wyjściowe są wyświetlane jako:

Name                                  Operation         Status     Item Name   Start Time UTC
------------------------------------  ---------------   ---------  ----------  -------------------  
e0f15dae-7cac-4475-a833-f52c50e5b6c3  ConfigureBackup   Completed  master         2019-12-03T03:09:210831+00:00  

Polecenie az backup job list wyświetla wszystkie zadania tworzenia kopii zapasowej (zaplanowane lub na żądanie), które zostały uruchomione lub są obecnie uruchomione w chronionej bazie danych, oprócz innych operacji, takich jak rejestrowanie, konfigurowanie kopii zapasowej i usuwanie danych kopii zapasowej.

Uwaga

Azure Backup nie dostosowuje się automatycznie do zmian czasu letniego podczas tworzenia kopii zapasowej bazy danych SQL działającej na maszynie wirtualnej platformy Azure.

Ręcznie zmodyfikuj zasady zgodnie z potrzebami.

Włączanie ochrony automatycznej

W przypadku bezproblemowej konfiguracji kopii zapasowej wszystkie bazy danych dodane w przyszłości mogą być automatycznie chronione przy użyciu określonych zasad. Aby włączyć automatyczną ochronę, użyj polecenia az backup protection auto-enable-for-azurewl .

Ponieważ instrukcja polega na utworzeniu kopii zapasowej wszystkich przyszłych baz danych, operacja jest wykonywana na poziomie sqlInstance .

az backup protection auto-enable-for-azurewl --resource-group SQLResourceGroup \
    --vault-name SQLVault \
    --policy-name SQLPolicy \
    --protectable-item-name "sqlinstance;mssqlserver"  \
    --protectable-item-type SQLInstance \
    --server-name testSQLVM \
    --workload-type MSSQL\
    --output table

Wyzwalanie kopii zapasowej na żądanie

Aby wyzwolić kopię zapasową na żądanie, użyj polecenia az backup protection backup-now .

Uwaga

Okres przechowywania tej kopii zapasowej zależy od typu uruchomionej kopii zapasowej na żądanie.

  • Pełne kopie zapasowe na żądanie są przechowywane przez co najmniej 45 dni i maksymalnie 99 lat.
  • Kopiowanie na żądanie akceptuje tylko każdą wartość przechowywania.
  • Różnicowa różnica na żądanie zachowuje kopię zapasową zgodnie z przechowywaniem zaplanowanych różnicowych ustawionych w zasadach.
  • Dziennik na żądanie zachowuje kopie zapasowe zgodnie z przechowywaniem zaplanowanych dzienników ustawionych w zasadach.
az backup protection backup-now --resource-group SQLResourceGroup \
    --item-name sqldatabase;mssqlserver;master \
    --vault-name SQLVault \
    --container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
    --backup-type Full
    --retain-until 01-01-2040
    --output table

Dane wyjściowe są wyświetlane jako:

Name                                  ResourceGroup
------------------------------------  -------------
e0f15dae-7cac-4475-a833-f52c50e5b6c3  sqlResourceGroup

Odpowiedź zawiera nazwę zadania. Możesz użyć tej nazwy zadania do śledzenia stanu zadania za pomocą polecenia az backup job show .

Następne kroki