Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule opisano sposób zarządzania i monitorowania baz danych programu SQL Server, których kopia zapasowa jest tworzona przez usługę Azure Backup przy użyciu interfejsu API REST. Do zarządzania kopiami zapasowymi bazy danych SQL można również użyć interfejsu wiersza polecenia platformy Azure i witryny Azure Portal .
Aby wyświetlić scenariusze tworzenia kopii zapasowych i przywracania, które obecnie obsługujemy, zobacz macierz wsparcia. Często zadawane pytania można znaleźć w często zadawanych pytaniach.
Monitorowanie zadań
Usługa Azure Backup wyzwala zadania uruchamiane w tle. Obejmuje to scenariusze, takie jak wyzwalanie kopii zapasowej, operacje przywracania i wyłączanie kopii zapasowej. Możesz śledzić te zadania przy użyciu ich identyfikatorów. Dowiedz się więcej o zarządzaniu zadaniami tworzenia kopii zapasowych i przywracania.
Pobierz informacje o zadaniu z działań operacyjnych
Operacja, taka jak wyzwalanie kopii zapasowej, zwraca identyfikator zadania w odpowiedzi.
Na przykład końcowa odpowiedź operacji REST API uruchamiającej kopię zapasową jest następująca:
{
"id": "cd2a3b13-d392-4e81-86ac-02ea91cc70b9",
"name": "cd2a3b13-d392-4e81-86ac-02ea91cc70b9",
"status": "Succeeded",
"startTime": "2018-05-28T11:43:21.6516182Z",
"endTime": "2018-05-28T11:43:21.6516182Z",
"properties": {
"objectType": "OperationStatusJobExtendedInfo",
"jobId": "c22eca5d-0c1c-48a0-a40d-69bef708d92a"
}
}
Zadanie tworzenia kopii zapasowej można zidentyfikować za pomocą pola jobId i śledzić zgodnie z opisem w tym miejscu przy użyciu żądania GET.
Śledzenie zadania
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupJobs/{jobName}?api-version=2016-12-01
{jobName} to jest jobId wymieniony powyżej. Odpowiedzią jest 200 (OK) z polem stanu wskazującym stan zadania. Po Zakończeniu lub ZakończoneZeostrzeżeniami sekcja extendedInfo zawiera więcej szczegółów zadania.
GET https://management.azure.com/subscriptions/00000000-0000-0000-0000-0000000000/resourceGroups/SQLServerSelfHost/providers/Microsoft.RecoveryServices/vaults/SQLServer2012/backupJobs/c22eca5d-0c1c-48a0-a40d-69bef708d92a?api-version=2016-12-01
Odpowiedź
| Nazwa | Typ | Opis |
|---|---|---|
| 200 OK | ZadanieResource | OK |
Przykład odpowiedzi
Po przesłaniu identyfikatora URI GET zostanie zwrócona odpowiedź 200.
HTTP/1.1 200 OK
Pragma: no-cache
X-Content-Type-Options: nosniff
x-ms-request-id: e057b496-8ceb-45b6-bd9e-367f7dd73d6d
x-ms-client-request-id: 1ffda117-b2c0-4a80-a9ba-43ba66eaec9b; 1ffda117-b2c0-4a80-a9ba-43ba66eaec9b
Strict-Transport-Security: max-age=31536000; includeSubDomains
x-ms-ratelimit-remaining-subscription-reads: 14999
x-ms-correlation-request-id: e057b496-8ceb-45b6-bd9e-367f7dd73d6d
x-ms-routing-request-id: SOUTHINDIA:20180528T115536Z:e057b496-8ceb-45b6-bd9e-367f7dd73d6d
Cache-Control: no-cache
Date: Mon, 28 May 2018 11:55:35 GMT
Server: Microsoft-IIS/8.0
X-Powered-By: ASP.NET
{
"id": "/subscriptions/00000000-0000-0000-0000-0000000000/resourceGroups/SQLServerSelfHost/providers/microsoft.recoveryservices/vaults/SQLServer2012/backupJobs/c22eca5d-0c1c-48a0-a40d-69bef708d92a",
"name": "c22eca5d-0c1c-48a0-a40d-69bef708d92a",
"type": "Microsoft.RecoveryServices/vaults/backupJobs",
"properties": {
"jobType": "AzureWorkloadJob",
"workloadType": "SQLDataBase",
"duration": "00:03:13.6439467",
"actionsInfo": [
1
],
"errorDetails": [
{
"errorCode": 510008,
"errorString": "Operation cancelled as a conflicting operation was already running on the same database.",
"errorTitle": "OperationCancelledBecauseConflictingOperationRunningUserError",
"recommendations": [
"Please try again after sometime."
]
}
],
"extendedInfo": {
"tasksList": [
{
"taskId": "Transfer data to vault",
"status": "Failed"
}
],
"propertyBag": {
"Data Transferred (in MB)": "0"
}
},
"entityFriendlyName": "MSSQLSERVER/msDB [sqlserver-0.contoso.com]",
"backupManagementType": "AzureWorkload",
"operation": "Backup (Full)",
"status": "Failed",
"startTime": "2018-05-28T11:43:21.6516182Z",
"endTime": "2018-05-28T11:46:35.2955649Z",
"activityId": "6b033cf6-f875-4c03-8985-9add07ec2845"
}
}
}
Wymień chronione instancje SQL i bazy danych
Aby wymienić instancje SQL i ich bazy danych pod kątem ochrony przed snapshotami na poziomie instancji, użyj API version 2024-01-31-preview. Zamień zastępcze identyfikatory URI na dane skarbca. Poniższe przykłady pokazują wybrane pola odpowiedzi.
Lista chronionych instancji SQL
Filtruj chronione elementy według itemType eq 'SQLInstance':
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupProtectedItems?api-version=2024-01-31-preview&$filter=backupManagementType eq 'AzureWorkload' and itemType eq 'SQLInstance'
Odpowiedź zawiera tablicę value . Każda instancja zawiera nazwę chronionego elementu, nazwę kontenera, bazy danych potomnych oraz status ochrony. Na przykład:
{
"value": [
{
"name": "SQLInstance;mssqlserver",
"properties": {
"childDBList": ["MSSQLSERVER;testdb", "MSSQLSERVER;testdb1", "MSSQLSERVER;testdb2"],
"instanceProtectionReadiness": "Ready",
"friendlyName": "mssqlserver",
"serverName": "sqlserver-0",
"protectedItemType": "AzureVmWorkloadSQLInstance",
"backupManagementType": "AzureWorkload",
"workloadType": "SQLInstance",
"containerName": "VMAppContainer;Compute;SQLServerPMDemo;sqlserver-0",
"protectionStatus": "Healthy",
"protectionState": "IRPending",
"protectedItemDataSourceId": "2265943933205758867"
}
}
]
}
Zachowaj nazwy zwróconego kontenera i chronionego elementu na potrzeby kolejnych żądań. Na przykład zapytania dotyczące odzyskiwania do punktu w czasie, zapisz także protectedItemDataSourceId.
Wyświetl bazy danych chronione w instancji
Wymień chronione elementy bazy danych w sejfie:
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupProtectedItems?api-version=2024-01-31-preview&$filter=backupManagementType eq 'AzureWorkload' and itemType eq 'SQLDatabase'
W zwróconej tablicy value zidentyfikuj bazy danych z ustawieniem protectionLevel na DatabaseUnderInstance. Użyj parentProtectedItem, wraz z danymi kontenera i serwera, aby zidentyfikować instancję nadrzędną. Właściwości elementu bazy danych mogą obejmować:
{
"parentProtectedItem": "mssqlserver",
"protectionLevel": "DatabaseUnderInstance",
"friendlyName": "testdb",
"serverName": "sqlserver-0",
"parentName": "MSSQLSERVER",
"protectedItemType": "AzureVmWorkloadSQLDatabase",
"backupManagementType": "AzureWorkload",
"workloadType": "SQLDataBase"
}
Uzyskaj chronioną instancję SQL
Aby pobrać jedną instancję, użyj jej zwróconego kontenera i nazw chronionych elementów:
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/Azure/protectionContainers/{containerName}/protectedItems/{protectedItemName}?api-version=2024-01-31-preview
Na przykład {protectedItemName} może być SQLInstance;mssqlserver. Odpowiedź obejmuje childDBList, instanceProtectionReadiness, oraz protectionState. Jeśli element jest zaplanowany do odroczonego usunięcia, sprawdź isScheduledForDeferredDelete, deferredDeleteTimeInUTC, oraz softDeleteRetentionPeriod również.
Modyfikowanie zasad
Aby zmienić zasady, które chronią bazę danych, użyj tego samego formatu co włączanie ochrony. Podaj jednak nowy identyfikator zasad w treści żądania i prześlij żądanie. Aby na przykład zmienić zasady testVM z HourlyLogPolicy na ProdPolicy, podaj identyfikator ProdPolicy w treści żądania.
{
"properties": {
"backupManagementType": "AzureWorkload",
"workloadType": "SQLDataBase",
"policyId": "/subscriptions/00000000-0000-0000-0000-0000000000/resourceGroups/SQLServerSelfHost/providers/microsoft.recoveryservices/vaults/SQLServer2012/backupPolicies/ProdPolicy"
},
"location": "westcentralus"
}
Odpowiedź będzie w tym samym formacie, jak wspomniano do włączenia ochrony.
Zmodyfikuj politykę dla instancji chronionej migawką
Złóż zapytanie PUT dla chronionego elementu instancji i podaj nowy identyfikator zasad migawki:
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/Azure/protectionContainers/{containerName}/protectedItems/{protectedItemName}?api-version=2024-01-31-preview
{
"properties": {
"backupManagementType": "AzureWorkload",
"workloadType": "SQLInstance",
"protectedItemType": "AzureVmWorkloadSQLInstance",
"friendlyName": "MSSQLSERVER",
"policyId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupPolicies/{newPolicyName}",
"childDatabaseNameList": ["model"]
}
}
Zamień symbole zastępcze w treści JSON oraz w identyfikatorze URI. Użyj wybranych nazw baz danych instancji w childDatabaseNameList.
Wznów kopię zapasową dla instancji SQL
Aby wznowić kopię zapasową, złóż żądanie PUT do chronionego elementu instancji z identyfikatorem zasad migawki. Poniższy przykład wykorzystuje pusty element childDatabaseNameList w operacji wznawiania:
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/Azure/protectionContainers/{containerName}/protectedItems/{protectedItemName}?api-version=2024-01-31-preview
{
"properties": {
"backupManagementType": "AzureWorkload",
"workloadType": "SQLInstance",
"protectedItemType": "AzureVmWorkloadSQLInstance",
"friendlyName": "MSSQLSERVER",
"policyId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupPolicies/SQLInstanceSnapPolicy",
"childDatabaseNameList": []
}
}
Użyj nazwy elementu chronionego wystąpienia, takiej jak SQLInstance;mssqlserver, i zastąp symbole zastępcze identyfikatora zasad danymi magazynu. Śledź powstałą operację i zadanie zgodnie z opisem w Monitorowanie zadań.
Przestań chronić i zachowaj istniejące dane
Aby usunąć ochronę z chronionej bazy danych i zachować już kopie zapasowe danych, usuń zasadę w treści żądania, którą użyłeś do włączenia kopii zapasowej, i prześlij żądanie. Po usunięciu powiązania z zasadą, kopie zapasowe przestają być uruchamiane i nie są tworzone żadne nowe punkty odzyskiwania.
{
"properties": {
"protectedItemType": "AzureVmWorkloadSQLDatabase",
"protectionState": "ProtectionStopped",
"sourceResourceId":
"/subscriptions/00000000-0000-0000-0000-0000000000/resourceGroups/SQLServerPMDemo/providers/Microsoft.Compute/virtualMachines/sqlserver-0",
"policyId": ""
}
}
Przykładowa odpowiedź
Zatrzymywanie ochrony bazy danych jest operacją asynchroniczną. Operacja tworzy kolejną operację, która musi być śledzona. Zwraca ona dwie odpowiedzi: 202 (Zaakceptowane) podczas tworzenia innej operacji i 200 po zakończeniu tej operacji.
Nagłówek odpowiedzi po pomyślnym zaakceptowaniu operacji:
Status Code:
OK
Headers:
Pragma : no-cache
X-Content-Type-Options : nosniff
x-ms-request-id : 388c9359-e237-4644-8f6c-38ae5eb0dfcb
x-ms-client-request-id : 5ef896e6-d812-431a-ad58-9d9ee1bb8bb3,5ef896e6-d812-431a-ad58-9d9ee1bb8bb3
Strict-Transport-Security : max-age=31536000; includeSubDomains
x-ms-ratelimit-remaining-subscription-resource-requests: 107
x-ms-correlation-request-id : 388c9359-e237-4644-8f6c-38ae5eb0dfcb
x-ms-routing-request-id : SOUTHINDIA:20211126T054036Z:388c9359-e237-4644-8f6c-38ae5eb0dfcb
Cache-Control : no-cache
Date : Fri, 26 Nov 2021 05:40:36 GMT
Server : Microsoft-IIS/10.0
X-Powered-By : ASP.NET
Body:
{
"id": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
"name": "TestOBJ",
"status": "Succeeded",
"startTime": "2021-11-26T05:36:36.5262731Z",
"endTime": "2021-11-26T05:36:36.5262731Z",
"properties": {
"objectType": "OperationStatusJobExtendedInfo",
"jobId": "68178d86-d564-460b-9643-829046aac1b1"
}
}
Następnie śledź wynikową operację przy użyciu nagłówka lokalizacji lub nagłówka Azure-AsyncOperation za pomocą polecenia GET :
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupoperations/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e?api-version=2016-12-01
Ciało odpowiedzi
{
"id": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
"name": "TestOBJ",
"status": "Succeeded",
"startTime": "2021-11-26T05:36:36.5262731Z",
"endTime": "2021-11-26T05:36:36.5262731Z",
"properties": {
"objectType": "OperationStatusJobExtendedInfo",
"jobId": "68178d86-d564-460b-9643-829046aac1b1"
}
}
Zatrzymaj ochronę bazy danych chronionej w ramach instancji
Dla bazy danych chronionej polityką snapshotów instancji należy przesłać żądanie PUT do chronionego elementu database, a nie do elementu instancji:
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/Azure/protectionContainers/{containerName}/protectedItems/SQLDatabase;MSSQLSERVER;tdb2?api-version=2024-01-31-preview
Ustaw ProtectionStopped na protectionState i uwzględnij identyfikator polityki migawki instancji:
{
"properties": {
"backupManagementType": "AzureWorkload",
"workloadType": "SQLDataBase",
"friendlyName": "MSSQLSERVER;tdb2",
"protectedItemType": "AzureVmWorkloadSQLDatabase",
"protectionState": "ProtectionStopped",
"policyId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupPolicies/SQLInstanceSnapPolicy"
}
}
Zamień przykładową nazwę elementu bazy danych nazwą zwróconą dla twojej bazy i zamień zastępcze identyfikatory zasad. Ta operacja zatrzymuje ochronę przy jednoczesnym zachowaniu istniejących danych kopii zapasowych. Śledź działanie asynchroniczne opisane wcześniej w tej sekcji.
Zatrzymaj ochronę i usuń dane kopii zapasowych
Aby usunąć ochronę z chronionego udziału plików i usunąć również dane kopii zapasowej, wykonaj operację usuwania.
DELETE https://management.azure.com/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectionContainers/{containerName}/protectedItems/{protectedItemName}?api-version=2019-05-13
Parametry containerName i protectedItemName są ustawione w kroku konfigurowania kopii zapasowej w tym artykule.
Odpowiedzi
Usuwanie ochrony jest operacją asynchroniczną. Operacja tworzy kolejną operację, która musi być śledzona oddzielnie. Zwraca dwie odpowiedzi: 202 (Zaakceptowane) podczas tworzenia innej operacji i 204 (NoContent) po zakończeniu tej operacji.