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 witryny Azure Portal.
W tym artykule założono, że na maszynie wirtualnej platformy Azure jest już zainstalowana baza danych SQL. (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 na nim baz danych
- Włączanie tworzenia kopii zapasowej w bazie danych SQL
- Wyzwalanie kopii zapasowej na żądanie
Zapoznaj się z aktualnie obsługiwanymi scenariuszami dla usługi SQL na maszynie wirtualnej platformy Azure.
Wymagania wstępne
Użyj środowiska powłoki Bash w usłudze Azure Cloud Shell. Aby uzyskać więcej informacji, zobacz Szybki start dotyczący powłoki Bash w usłudze Azure Cloud Shell.
Jeśli wolisz uruchamiać polecenia referencyjne interfejsu wiersza polecenia lokalnie, zainstaluj interfejs wiersza polecenia platformy Azure. Jeśli korzystasz z systemu Windows lub macOS, rozważ uruchomienie interfejsu wiersza polecenia platformy Azure w kontenerze Docker. Aby uzyskać więcej informacji, zobacz Jak uruchomić interfejs wiersza polecenia platformy Azure w kontenerze platformy Docker.
Jeśli korzystasz z instalacji lokalnej, zaloguj się do interfejsu wiersza polecenia platformy Azure za pomocą polecenia az login. Aby ukończyć proces uwierzytelniania, wykonaj kroki wyświetlane w terminalu. Aby uzyskać inne opcje logowania, zobacz Logowanie się przy użyciu interfejsu wiersza polecenia platformy Azure.
Po wyświetleniu monitu zainstaluj rozszerzenie interfejsu wiersza polecenia platformy Azure podczas pierwszego użycia. Aby uzyskać więcej informacji na temat rozszerzeń, zobacz Korzystanie z rozszerzeń w interfejsie wiersza polecenia platformy Azure.
Uruchom polecenie az version, aby znaleźć zainstalowane wersje i biblioteki zależne. Aby uaktualnić do najnowszej wersji, uruchom polecenie az upgrade.
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ą z systemem Windows i maszynę wirtualną z systemem Linux przy użyciu interfejsu wiersza polecenia platformy Azure.
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. Magazyn geograficznie nadmiarowy zapewnia, ż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 programu SQL Server
Aby zarejestrować program 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; Liczyć; SQLResourceGroup; testSQLVM.
Włączanie tworzenia kopii zapasowej w bazie danych SQL
Polecenie az backup protectable-item list zawiera 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ą bazy danych sqldatabase; mssqlserver; baza danych master .
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 testOWYCHSQLPolicy .
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
Usługa 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.
Zmodyfikuj zasady ręcznie 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 jest określany przez typ 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 dowolną wartość przechowywania.
- Różnicowa różnica na żądanie zachowuje kopię zapasową zgodnie z przechowywaniem zaplanowanych różnic 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. Tej nazwy zadania można użyć do śledzenia stanu zadania przy użyciu polecenia az backup job show .
Następne kroki
- Dowiedz się, jak przywrócić bazę danych SQL na maszynie wirtualnej platformy Azure przy użyciu interfejsu wiersza polecenia.
- Dowiedz się, jak utworzyć kopię zapasową bazy danych SQL uruchomionej na maszynie wirtualnej platformy Azure przy użyciu witryny Azure Portal.