Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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 przywracania kopii zapasowej bazy danych SQL na maszynie wirtualnej platformy Azure przy użyciu interfejsu wiersza polecenia platformy Azure. Te akcje można również wykonać przy użyciu witryny Azure Portal.
Użyj Azure Cloud Shell, aby uruchomić polecenia interfejsu CLI.
W tym artykule założono, że masz bazę danych SQL działającą na maszynie wirtualnej platformy Azure, której kopia zapasowa jest tworzona przy użyciu usługi Azure Backup. Jeśli wykonałeś kopię zapasową bazy danych SQL w Azure przez utworzenie kopii zapasowej bazy danych SQL przy użyciu CLI, używasz następujących zasobów:
- Grupa zasobów o nazwie
SQLResourceGroup. - Skarbiec o nazwie
SQLVault. - Chroniony kontener o nazwie
VMAppContainer;Compute;SQLResourceGroup;testSQLVM. - Kopia zapasowa bazy danych/elementu o nazwie
sqldatabase;mssqlserver;master. - Zasoby w
westusregionie.
Note
Aby dowiedzieć się więcej na temat obsługiwanych konfiguracji i scenariuszy, zobacz macierz wsparcia kopii zapasowych SQL.
Wyświetlanie punktów przywracania dla baz danych z kopii zapasowej
Aby wyświetlić listę wszystkich punktów odzyskiwania dla bazy danych, użyj polecenia az backup recoverypoint list jako:
az backup recoverypoint list --resource-group SQLResourceGroup \
--vault-name SQLVault \
--container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
--item-name sqldatabase;mssqlserver;master \
--output table
Lista punktów odzyskiwania jest wyświetlana jako:
Name Time BackupManagementType Item Name RecoveryPointType
------------------- --------------------------------- --------------------- ---------------------- ------------------
7660777527047692711 2019-12-10T04:00:32.346000+00:00 AzureWorkload sqldatabase;mssqlserver;master Full
7896624824685666836 2019-12-15T10:33:32.346000+00:00 AzureWorkload sqldatabase;mssqlserver;master Differential
DefaultRangeRecoveryPoint AzureWorkload sqldatabase;mssqlserver;master Log
Powyższa lista zawiera trzy punkty odzyskiwania: każdy dla pełnej kopii zapasowej, kopii zapasowej różnicowej i kopii zapasowej logów.
Note
Możesz również wyświetlić punkty początkowe i końcowe każdego niezałamanego łańcucha kopii zapasowych dzienników przy użyciu polecenia az backup recoverypoint show-log-chain .
Wymagania wstępne dotyczące przywracania bazy danych
Przed przywróceniem bazy danych upewnij się, że zostały spełnione następujące wymagania wstępne:
- Bazę danych można przywrócić tylko do instancji SQL w regionie lokalnym lub w innym regionie, jeśli przywracanie między regionami jest aktywowane w skarbcu.
- Wystąpienie docelowe musi być zarejestrowane w tym samym magazynie co źródło, z wyjątkiem przywracania między regionami i przywracania między subskrypcjami. .
Przywracanie bazy danych
Usługa Azure Backup może przywrócić bazy danych SQL uruchomione na maszynach wirtualnych platformy Azure jako:
- Przywróć do określonej daty lub godziny (do sekundy) przy użyciu kopii zapasowych dziennika. Usługa Azure Backup automatycznie określa i zarządza odpowiednimi pełnymi, różnicowymi kopiami zapasowymi oraz łańcuchem kopii zapasowych dzienników, które są wymagane do przywrócenia na podstawie wybranego czasu.
- Przywracanie do określonej pełnej lub różnicowej kopii zapasowej w celu przywrócenia do określonego punktu odzyskiwania.
Aby przywrócić bazę danych, użyj polecenia az restore-azurewl , które wymaga obiektu konfiguracji odzyskiwania jako jednego z danych wejściowych. Ten obiekt można wygenerować za pomocą polecenia az backup recoveryconfig show . Obiekt konfiguracji odzyskiwania zawiera wszystkie szczegóły dotyczące wykonywania przywracania. Jednym z nich jest tryb przywracania — OriginalWorkloadRestore lub AlternateWorkloadRestore.
Note
OriginalWorkloadRestore: przywraca dane do tego samego wystąpienia SQL co oryginalne źródło. Ta opcja zastępuje oryginalną bazę danych. AlternateWorkloadRestore: przywraca bazę danych do alternatywnej lokalizacji i przechowuje oryginalną źródłową bazę danych.
Przywracanie do lokalizacji alternatywnej
Aby przywrócić bazę danych do alternatywnej lokalizacji, użyj polecenia AlternateWorkloadRestore jako trybu przywracania. Następnie należy wybrać punkt przywracania, który może być poprzednim punktem w czasie lub dowolnym z wcześniejszych punktów przywracania.
Przejdźmy do przywrócenia do poprzedniego punktu przywracania. Wyświetl listę punktów przywracania dla bazy danych i wybierz punkt, który chcesz przywrócić. W tym miejscu użyjemy punktu przywracania z nazwą 7660777527047692711.
Przy użyciu powyższej nazwy punktu przywracania i trybu przywracania utwórz obiekt konfiguracji odzyskiwania za pomocą polecenia az backup recoveryconfig show . Sprawdź pozostałe parametry w tym poleceniu:
- --target-item-name: nazwa, która ma być używana przez przywróconą bazę danych. W tym scenariuszu użyliśmy nazwy restored_database.
- --target-server-name: nazwa serwera SQL, który został pomyślnie zarejestrowany w skrytce usługi Recovery Services i pozostaje w tym samym regionie, co baza danych, która ma zostać przywrócona. W tym miejscu przywracasz bazę danych do tego samego serwera SQL, który jest chroniony, o nazwie testSQLVM.
- --target-server-type: w przypadku przywracania baz danych SQL należy użyć klasy SQLInstance.
az backup recoveryconfig show --resource-group SQLResourceGroup \
--vault-name SQLVault \
--container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
--item-name SQLDataBase;mssqlserver;master \
--restore-mode AlternateWorkloadRestore \
--rp-name 7660777527047692711 \
--target-item-name restored_database \
--target-server-name testSQLVM \
--target-server-type SQLInstance \
--workload-type SQLDataBase \
--output json
Odpowiedź na powyższe zapytanie to obiekt konfiguracji odzyskiwania, który jest wyświetlany jako:
{
"container_id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SQLResourceGroup/providers/Microsoft.RecoveryServices/vaults/SQLVault/backupFabrics/Azure/protectionContainers/vmappcontainer;compute;SQLResourceGroup;testSQLVM",
"container_uri": "VMAppContainer;compute;SQLResourceGroup;testSQLVM",
"database_name": "MSSQLSERVER/restored_database",
"filepath": null,
"item_type": "SQL",
"item_uri": "SQLDataBase;mssqlserver;master",
"log_point_in_time": null,
"recovery_mode": null,
"recovery_point_id": "7660777527047692711",
"restore_mode": "AlternateLocation",
"source_resource_id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SQLResourceGroup/providers/Microsoft.Compute/virtualMachines/testSQLVM",
"workload_type": "SQLDataBase",
"alternate_directory_paths": []
}
Teraz, aby przywrócić bazę danych, uruchom polecenie az restore-azurewl . Aby użyć tego polecenia, wprowadź powyższe dane wyjściowe JSON zapisane w pliku o nazwie recoveryconfig.json.
az backup restore restore-azurewl --resource-group SQLResourceGroup \
--vault-name SQLVault \
--recovery-config recoveryconfig.json \
--output table
Dane wyjściowe są wyświetlane jako:
Name Operation Status Item Name Backup Management Type Start Time UTC Duration
------------------------------------ ----------- ---------- --------------------------------- ------------------------ -------------------------------- --------------
be7ea4a4-0752-4763-8570-a306b0a0106f Restore InProgress master [testSQLVM] AzureWorkload 2022-06-21T03:51:06.898981+00:00 0:00:05.652967
Odpowiedź zawiera nazwę zadania. Tej nazwy zadania można użyć do śledzenia stanu zadania za pomocą polecenia az backup job show .
Przywracanie i zastępowanie
Aby przywrócić do oryginalnej lokalizacji, użyj elementu OriginalWorkloadRestore jako trybu przywracania. Następnie należy wybrać punkt przywracania, który może być poprzednim punktem w czasie lub dowolnym z poprzednich punktów przywracania.
Na przykład wybierzmy poprzedni punkt w czasie "28-11-2019-09:53:00" w celu przywrócenia. Ten punkt przywracania można podać w następujących formatach: dd-mm-rrrr, dd-mm-rrrr-hh:mm:ss. Aby wybrać prawidłowy punkt w czasie do przywrócenia, użyj polecenia az backup recoverypoint show-log-chain , które wyświetla interwały niepowiązanych kopii zapasowych łańcucha dzienników.
az backup recoveryconfig show --resource-group SQLResourceGroup \
--vault-name SQLVault \
--container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
--item-name sqldatabase;mssqlserver;master \
--restore-mode OriginalWorkloadRestore \
--log-point-in-time 20-06-2022-09:02:41 \
--output json
Odpowiedź na powyższe zapytanie to obiekt konfiguracji odzyskiwania, który jest wyświetlany jako:
{
"alternate_directory_paths": null,
"container_id": null,
"container_uri": "VMAppContainer;compute;petronasinternaltest;sqlserver-11",
"database_name": null,
"filepath": null,
"item_type": "SQL",
"item_uri": "SQLDataBase;mssqlserver;msdb",
"log_point_in_time": "20-06-2022-09:02:41",
"recovery_mode": null,
"recovery_point_id": "DefaultRangeRecoveryPoint",
"restore_mode": "OriginalLocation",
"source_resource_id": "/subscriptions/62b829ee-7936-40c9-a1c9-47a93f9f3965/resourceGroups/petronasinternaltest/providers/Microsoft.Compute/virtualMachines/sqlserver-11",
"workload_type": "SQLDataBase"
}
Teraz, aby przywrócić bazę danych, uruchom polecenie az restore-azurewl . Aby użyć tego polecenia, wprowadź powyższe dane wyjściowe JSON zapisane w pliku o nazwie recoveryconfig.json.
az backup restore restore-azurewl --resource-group sqlResourceGroup \
--vault-name sqlVault \
--recovery-config recoveryconfig.json \
--output table
Dane wyjściowe są wyświetlane jako:
Name Operation Status Item Name Backup Management Type Start Time UTC Duration
------------------------------------ ----------- ---------- ------------------------------- ------------------------ -------------------------------- --------------
1730ec49-166a-4bfd-99d5-93027c2d8480 Restore InProgress master [testSQLVM] AzureWorkload 2022-06-21T04:04:11.161411+00:00 0:00:03.118076
Odpowiedź zawiera nazwę zadania. Tej nazwy zadania można użyć do śledzenia stanu zadania przy użyciu polecenia az backup job show .
Przywracanie do regionu pomocniczego
Aby przywrócić bazę danych do regionu zapasowego, określ docelowy magazyn i serwer znajdujący się w regionie zapasowym w konfiguracji przywracania.
az backup recoveryconfig show --resource-group SQLResourceGroup \
--vault-name SQLVault \
--container-name VMAppContainer;compute;SQLResourceGroup;testSQLVM \
--item-name sqldatabase;mssqlserver;master \
--restore-mode AlternateWorkloadRestore \
--from-full-rp-name 293170069256531 \
--rp-name 293170069256531 \
--target-server-name targetSQLServer \
--target-container-name VMAppContainer;compute;SQLResourceGroup;targetSQLServer \
--target-item-name testdb_restore_1 \
--target-server-type SQLInstance \
--workload-type SQLDataBase \
--target-resource-group SQLResourceGroup \
--target-vault-name targetVault \
--backup-management-type AzureWorkload
Odpowiedź to obiekt konfiguracji odzyskiwania, który jest wyświetlany jako:
{
"container_id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SQLResourceGroup/providers/Microsoft.RecoveryServices/vaults/targetVault/backupFabrics/Azure/protectionContainers/vmappcontainer;compute;SQLResourceGroup;targetSQLServer",
"container_uri": "VMAppContainer;compute;SQLResourceGroup;testSQLVM",
"database_name": "MSSQLSERVER/sqldatabase;mssqlserver;testdb_restore_1",
"filepath": null,
"item_type": "SQL",
"item_uri": "SQLDataBase;mssqlserver;master",
"log_point_in_time": null,
"recovery_mode": null,
"recovery_point_id": "932606668166874635",
"restore_mode": "AlternateLocation",
"source_resource_id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SQLResourceGroup/providers/Microsoft.Compute/virtualMachines/testSQLVM",
"workload_type": "SQLDataBase",
"alternate_directory_paths": [],
}
Użyj tej konfiguracji odzyskiwania w poleceniu az restore restore-azurewl. Wybierz flagę --use-secondary-region , aby przywrócić bazę danych do regionu pomocniczego.
az backup restore restore-azurewl --resource-group SQLResourceGroup \
--vault-name testSQLVault \
--recovery-config recoveryconfig.json \
--use-secondary-region \
--output table
Dane wyjściowe są wyświetlane jako:
Name Operation Status Item Name Backup Management Type Start Time UTC Duration
------------------------------------ ------------------ ---------- ------------------------- ------------------------ -------------------------------- --------------
0d863259-b0fb-4935-8736-802c6667200b CrossRegionRestore InProgress master [testSQLVM] AzureWorkload 2022-06-21T08:29:24.919138+00:00 0:00:12.372421
Note
Punkt odzyskiwania (RPO) dla danych kopii zapasowej, który ma być dostępny w regionie zapasowym, wynosi 12 godzin. W związku z tym po włączeniu funkcji CRR docelowy punkt odzyskiwania dla regionu pomocniczego wynosi 12 godzin plus czas trwania częstotliwości rejestrowania dzienników (który można ustawić na co najmniej 15 minut).
Przywróć jako pliki
Aby przywrócić dane kopii zapasowej jako pliki zamiast bazy danych, użyj polecenia RestoreAsFiles jako trybu przywracania. Następnie wybierz punkt przywracania, który może być wcześniejszym punktem czasowym lub jednym z wcześniejszych punktów przywracania. Gdy pliki zostaną wgrane do określonej ścieżki, możesz przenieść te pliki na dowolną maszynę SQL, aby je przywrócić jako bazę danych. Ponieważ można przenieść te pliki na dowolną maszynę, możesz teraz przywrócić dane między subskrypcjami i regionami.
W tym miejscu wybierz poprzedni punkt w czasie 28-11-2019-09:53:00 do przywrócenia oraz lokalizację, w której mają być zrzucane pliki kopii zapasowej jako /home/sql/restoreasfiles na tym samym serwerze SQL. Ten punkt przywracania można podać w jednym z następujących formatów: dd-mm-yyyy lub dd-mm-yyyy-hh:mm:ss. Aby wybrać prawidłowy punkt w czasie do przywrócenia, użyj polecenia az backup recoverypoint show-log-chain , które wyświetla interwały niepowiązanych kopii zapasowych łańcucha dzienników.
Przy użyciu powyższej nazwy punktu przywracania i trybu przywracania utwórz obiekt konfiguracji odzyskiwania za pomocą polecenia az backup recoveryconfig show . Sprawdź wszystkie pozostałe parametry w tym poleceniu:
- --target-container-name: nazwa serwera SQL, który został pomyślnie zarejestrowany w magazynie Recovery Services i znajduje się w tym samym regionie co baza danych do przywrócenia. Przywróćmy bazę danych jako pliki do tego samego serwera SQL, który był chroniony, o nazwie hxehost.
- --rp-name: dla przywracania do określonego punktu w czasie, nazwa punktu przywracania to DefaultRangeRecoveryPoint.
az backup recoveryconfig show --resource-group SQLResourceGroup \
--vault-name SQLVault \
--container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
--item-name sqldatabase;mssqlserver;master \
--restore-mode RestoreAsFiles \
--rp-name 932606668166874635 \
--target-container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
--filepath /sql/restoreasfiles \
--output json
Odpowiedź na powyższe zapytanie js obiekt konfiguracji odzyskiwania, który jest wyświetlany jako:
{
"alternate_directory_paths": null,
"container_id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SQLResourceGroup/providers/Microsoft.RecoveryServices/vaults/SQLVault/backupFabrics/Azure/protectionContainers/VMAppContainer;Compute;SQLResourceGroup;testSQLVM",
"container_uri": "VMAppContainer;compute;SQLResourceGroup;testSQLVM",
"database_name": null,
"filepath": "/sql/restoreasfiles",
"item_type": "SQL",
"item_uri": "SQLDataBase;mssqlserver;master",
"log_point_in_time": null,
"recovery_mode": "FileRecovery",
"recovery_point_id": "932606668166874635",
"restore_mode": "AlternateLocation",
"source_resource_id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SQLResourceGroup/providers/Microsoft.Compute/virtualMachines/testSQLVM",
"workload_type": "SQLDataBase"
}
Teraz, aby przywrócić bazę danych jako pliki, uruchom polecenie az restore-azurewl . Aby użyć tego polecenia, wprowadź dane wyjściowe JSON powyżej zapisane w pliku o nazwie recoveryconfig.json.
az backup restore restore-azurewl --resource-group SQLResourceGroup \
--vault-name SQLVault \
--restore-config recoveryconfig.json \
--output json
Dane wyjściowe są wyświetlane jako:
{
"eTag": null,
"id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SQLResourceGroup/providers/Microsoft.RecoveryServices/vaults/SQLVault/backupJobs/e9cd9e73-e3a3-425a-86a9-8dd1c500ff56",
"location": null,
"name": "e9cd9e73-e3a3-425a-86a9-8dd1c500ff56",
"properties": {
"actionsInfo": [
"1"
],
"activityId": "9e7c8ee4-f1ef-11ec-8a2c-3c52826c1a9a",
"backupManagementType": "AzureWorkload",
"duration": "0:00:04.304322",
"endTime": null,
"entityFriendlyName": "master [testSQLVM]",
"errorDetails": > [!NOTE]
> Information the user should notice even if skimmingnull,
"extendedInfo": {
"dynamicErrorMessage": null,
"propertyBag": {
"Job Type": "Restore as files"
},
"tasksList": [
{
"status": "InProgress",
"taskId": "Transfer data from vault"
}
]
},
"isUserTriggered": true,
"jobType": "AzureWorkloadJob",
"operation": "Restore",
"startTime": "2022-06-22T05:53:32.951666+00:00",
"status": "InProgress",
"workloadType": "SQLDataBase"
},
"resourceGroup": "SQLResourceGroup",
"tags": null,
"type": "Microsoft.RecoveryServices/vaults/backupJobs"
}
Odpowiedź zawiera nazwę zadania. Tej nazwy zadania można użyć do śledzenia stanu zadania przy użyciu polecenia az backup job show .
Note
Jeśli nie chcesz przywracać całego łańcucha, ale tylko podzbioru plików, wykonaj kroki opisane tutaj.
Przywracanie subskrypcji między kontami
W przypadku funkcji przywracania między subskrypcjami (CSR) możesz elastycznie przywracać dane do dowolnej subskrypcji i dowolnej skrytki w dzierżawie, o ile są dostępne uprawnienia przywracania. Domyślnie CSR jest włączone we wszystkich magazynach Recovery Services (zarówno istniejących, jak i nowo utworzonych magazynach).
Note
- Możesz wyzwolić przywracanie między subskrypcjami z magazynu usług odzyskiwania.
- CSR jest obsługiwane tylko w przypadku kopii strumieniowej i nie jest obsługiwane w przypadku kopii migawkowej.
- Przywracanie między regionami (CRR) z CSR nie jest obsługiwane.
az backup vault create
Dodaj parametr cross-subscription-restore-state, który umożliwia ustawienie stanu CSR magazynu podczas jego tworzenia i aktualizowania.
az backup recoveryconfig show
Dodaj parametr --target-subscription-id, który umożliwia podanie docelowej subskrypcji jako danych wejściowych podczas wyzwalania przywracania danych między subskrypcjami w źródłach danych SQL lub HANA.
Example:
az backup vault create -g {rg_name} -n {vault_name} -l {location} --cross-subscription-restore-state Disable
az backup recoveryconfig show --restore-mode alternateworkloadrestore --backup-management-type azureworkload -r {rp} --target-container-name {target_container} --target-item-name {target_item} --target-resource-group {target_rg} --target-server-name {target_server} --target-server-type SQLInstance --target-subscription-id {target_subscription} --target-vault-name {target_vault} --workload-type SQLDataBase --ids {source_item_id}
Next step
Related content
- Tworzenie kopii zapasowych baz danych programu SQL Server na maszynach wirtualnych platformy Azure przy użyciu usługi Azure Backup za pośrednictwem interfejsu API REST.
- Przywracanie baz danych programu SQL Server na maszynach wirtualnych platformy Azure przy użyciu interfejsu API REST.
- Zarządzanie bazami danych programu SQL Server na maszynach wirtualnych platformy Azure przy użyciu witryny Azure Portal, interfejsu wiersza polecenia platformy Azure, interfejsu API REST.