Delen via


SQL-databases in een Azure-VM beheren met behulp van Azure CLI

Azure CLI wordt gebruikt voor het maken en beheren van Azure-resources vanaf de opdrachtregel of door middel van scripts. In dit artikel wordt beschreven hoe u een back-up van een SQL-database op Een Azure-VM beheert met behulp van Azure CLI. U kunt deze acties ook uitvoeren met behulp van de Azure Portal.

In dit artikel leert u het volgende:

  • Taken voor back-up en herstel controleren
  • Nieuwe databases beveiligen die zijn toegevoegd aan een SQL-exemplaar
  • Het beleid wijzigen
  • Beveiliging stoppen
  • Beveiliging hervatten

Als u een back-up hebt gemaakt van een SQL-database in Azure met behulp van CLI om een back-up te maken van uw SQL-database, gebruikt u de volgende resources:

  • Een resourcegroep met de naam SQLResourceGroup
  • Een kluis met de naam SQLVault
  • Beveiligde container met de naam VMAppContainer; Berekenen; SQLResourceGroup;testSQLVM
  • Back-up van database/item met de naam sqldatabase;mssqlserver;master
  • Resources in de regio westus2

Azure CLI vereenvoudigt het beheerproces van een SQL-database die wordt uitgevoerd op een Azure-VM waarvan een back-up wordt gemaakt met behulp van Azure Backup. In de volgende secties worden alle beheerbewerkingen beschreven.

Notitie

Zie de ondersteuningsmatrix voor SQL-back-ups voor meer informatie over de ondersteunde configuraties en scenario's.

Taken voor back-up en herstel controleren

Gebruik de opdracht az backup job list om voltooide of actieve taken (back-up of herstel) te controleren. Met CLI kunt u ook een taak onderbreken die momenteel wordt uitgevoerd of wachten tot een taak is voltooid.

az backup job list --resource-group SQLResourceGroup \
    --vault-name SQLVault \
    --output table

De uitvoer wordt weergegeven als:

Name                                  Operation              Status      Item Name       			Start Time UTC
------------------------------------  ---------------        ---------   ----------      			-------------------  
e0f15dae-7cac-4475-a833-f52c50e5b6c3  ConfigureBackup        Completed   master [testSQLVM]         2019-12-03T03:09:210831+00:00  
ccdb4dce-8b15-47c5-8c46-b0985352238f  Backup (Full)          Completed   master [testSQLVM]   		2019-12-01T10:30:58.867489+00:00
4980af91-1090-49a6-ab96-13bc905a5282  Backup (Differential)  Completed   master [testSQLVM]			2019-12-01T10:36:00.563909+00:00
F7c68818-039f-4a0f-8d73-e0747e68a813  Restore (Log)          Completed   master [testSQLVM]			2019-12-03T05:44:51.081607+00:00

Een beleid wijzigen

Gebruik de opdracht az backup policy set om het beleid te wijzigen dat ten grondslag ligt aan de sql-back-upconfiguratie. De parameter name in deze opdracht verwijst naar het back-upitem waarvan u het beleid wilt wijzigen. Vervang hier het beleid van de SQL-database sqldatabase;mssqlserver;master door een nieuw beleid newSQLPolicy. U kunt nieuwe beleidsregels maken met de opdracht az backup policy create .

az backup item set-policy --resource-group SQLResourceGroup \
    --vault-name SQLVault \
    --container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
    --policy-name newSQLPolicy \
    --name sqldatabase;mssqlserver;master \

De uitvoer wordt weergegeven als:

Name                                  Operation        Status     Item Name    Backup Management Type    Start Time UTC                    Duration
------------------------------------  ---------------  ---------  -----------  ------------------------  --------------------------------  --------------
ba350996-99ea-46b1-aae2-e2096c1e28cd  ConfigureBackup  Completed  master       AzureWorkload             2022-06-22T08:24:03.958001+00:00  0:01:12.435765

Een beleid voor differentiële back-ups maken

Als u een differentiële back-upbeleid wilt maken, gebruikt u de opdracht az backup policy create met de volgende parameters:

  • --backup-management-type: Azure-workload.
  • --workload-type: SQL DataBase.
  • --name: naam van het beleid.
  • --policy: JSON-bestand met de juiste gegevens voor planning en retentie.
  • --resource-group: Resourcegroep van de kluis.
  • --vault-name: naam van de kluis/

Voorbeeld:

az backup policy create --resource-group SQLResourceGroup --vault-name SQLVault --name SQLPolicy --backup-management-type AzureWorkload --policy SQLPolicy.json --workload-type SQLDataBase

Voorbeeld van JSON (sqlpolicy.json):

  "eTag": null,
  "id": "/Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/SQLResourceGroup/providers/Microsoft.RecoveryServices/vaults/SQLVault/backupPolicies/SQLPolicy",
  "location": null,
  "name": "sqlpolicy",
  "properties": {
    "backupManagementType": "AzureWorkload",
    "workLoadType": "SQLDataBase",
    "settings": {
      "timeZone": "UTC",
      "issqlcompression": false,
      "isCompression": false
    },
    "subProtectionPolicy": [
      {
        "policyType": "Full",
        "schedulePolicy": {
          "schedulePolicyType": "SimpleSchedulePolicy",
          "scheduleRunFrequency": "Weekly",
          "scheduleRunDays": [
            "Sunday"
          ],
          "scheduleRunTimes": [
            "2022-06-13T19:30:00Z"
          ],
          "scheduleWeeklyFrequency": 0
        },
        "retentionPolicy": {
          "retentionPolicyType": "LongTermRetentionPolicy",
          "weeklySchedule": {
            "daysOfTheWeek": [
              "Sunday"
            ],
            "retentionTimes": [
              "2022-06-13T19:30:00Z"
            ],
            "retentionDuration": {
              "count": 104,
              "durationType": "Weeks"
            }
          },
          "monthlySchedule": {
            "retentionScheduleFormatType": "Weekly",
            "retentionScheduleWeekly": {
              "daysOfTheWeek": [
                "Sunday"
              ],
              "weeksOfTheMonth": [
                "First"
              ]
            },
            "retentionTimes": [
              "2022-06-13T19:30:00Z"
            ],
            "retentionDuration": {
              "count": 60,
              "durationType": "Months"
            }
          },
          "yearlySchedule": {
            "retentionScheduleFormatType": "Weekly",
            "monthsOfYear": [
              "January"
            ],
            "retentionScheduleWeekly": {
              "daysOfTheWeek": [
                "Sunday"
              ],
              "weeksOfTheMonth": [
                "First"
              ]
            },
            "retentionTimes": [
              "2022-06-13T19:30:00Z"
            ],
            "retentionDuration": {
              "count": 10,
              "durationType": "Years"
            }
          }
        }
      },
      {
        "policyType": "Differential",
        "schedulePolicy": {
          "schedulePolicyType": "SimpleSchedulePolicy",
          "scheduleRunFrequency": "Weekly",
          "scheduleRunDays": [
            "Monday",
            "Tuesday",
            "Wednesday",
            "Thursday",
            "Friday",
            "Saturday"
          ],
          "scheduleRunTimes": [
            "2022-06-13T02:00:00Z"
          ],
          "scheduleWeeklyFrequency": 0
        },
        "retentionPolicy": {
          "retentionPolicyType": "SimpleRetentionPolicy",
          "retentionDuration": {
            "count": 30,
            "durationType": "Days"
          }
        }
      },
      {
        "policyType": "Log",
        "schedulePolicy": {
          "schedulePolicyType": "LogSchedulePolicy",
          "scheduleFrequencyInMins": 120
        },
        "retentionPolicy": {
          "retentionPolicyType": "SimpleRetentionPolicy",
          "retentionDuration": {
            "count": 15,
            "durationType": "Days"
          }
        }
      }
    ],
    "protectedItemsCount": 0
  },
  "resourceGroup": "SQLResourceGroup",
  "tags": null,
  "type": "Microsoft.RecoveryServices/vaults/backupPolicies"
} 

Zodra het beleid is gemaakt, wordt in de uitvoer van de opdracht de beleids-JSON weergegeven die u als parameter hebt doorgegeven tijdens het uitvoeren van de opdracht.

U kunt de volgende sectie van het beleid wijzigen om de vereiste back-upfrequentie en retentie voor differentiële back-ups op te geven.

Bijvoorbeeld:

{
  "policyType": "Differential",
  "retentionPolicy": {
    "retentionDuration": {
      "count": 30,
      "durationType": "Days"
    },
    "retentionPolicyType": "SimpleRetentionPolicy"
  },
  "schedulePolicy": {
    "schedulePolicyType": "SimpleSchedulePolicy",
    "scheduleRunDays": [
      "Monday",
      "Tuesday",
      "Wednesday",
      "Thursday",
      "Friday",
      "Saturday"
    ],
    "scheduleRunFrequency": "Weekly",
    "scheduleRunTimes": [
      "2017-03-07T02:00:00+00:00"
    ],
    "scheduleWeeklyFrequency": 0
  }
}

Voorbeeld:

Als u differentiële back-ups alleen op zaterdag wilt hebben en deze 60 dagen wilt bewaren, voert u de volgende wijzigingen in het beleid uit:

  • Bewaarperiode bijwerkenAantal exemplaren tot 60 dagen.
  • Geef alleen zaterdag op als ScheduleRunDays.
 {
  "policyType": "Differential",
  "retentionPolicy": {
    "retentionDuration": {
      "count": 60,
      "durationType": "Days"
    },
    "retentionPolicyType": "SimpleRetentionPolicy"
  },
  "schedulePolicy": {
    "schedulePolicyType": "SimpleSchedulePolicy",
    "scheduleRunDays": [
      "Saturday"
    ],
    "scheduleRunFrequency": "Weekly",
    "scheduleRunTimes": [
      "2017-03-07T02:00:00+00:00"
    ],
    "scheduleWeeklyFrequency": 0
  }
}

De nieuwe databases beveiligen die zijn toegevoegd aan een SQL-exemplaar

Als u een SQL-exemplaar registreert bij een Recovery Services-kluis , worden automatisch alle databases in dit exemplaar gedetecteerd.

Als u later echter nieuwe databases aan het SQL-exemplaar hebt toegevoegd, gebruikt u de opdracht az backup protectable-item initialize . Met deze opdracht worden de nieuwe toegevoegde databases gedetecteerd.

az backup protectable-item initialize --resource-group SQLResourceGroup \
    --vault-name SQLVault \
    --container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
    --workload-type SQLDataBase

Gebruik vervolgens de cmdlet az backup protectable-item list om alle databases weer te geven die zijn gedetecteerd in uw SQL-exemplaar. Deze lijst bevat geen databases waarvoor al een back-up is geconfigureerd. Zodra de database waarvan een back-up moet worden gemaakt, is gedetecteerd, raadpleegt u Back-up inschakelen op SQL-database.

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

De nieuwe database waarvan u een back-up wilt maken, wordt weergegeven in deze lijst, die wordt weergegeven als:

Name                            Protectable Item Type    ParentName    ServerName    IsProtected
---------------------------     ----------------------   ------------  -----------   ------------
sqldatabase;mssqlserver;db1     SQLDataBase              mssqlserver   testSQLVM	 NotProtected  
sqldatabase;mssqlserver;db2     SQLDataBase              mssqlserver   testSQLVM	 NotProtected

Beveiliging voor een SQL-database stoppen

U kunt de beveiliging van een SQL-database stoppen in de volgende processen:

  • Alle toekomstige back-uptaken stoppen en alle herstelpunten verwijderen.
  • Alle toekomstige back-uptaken stoppen en de herstelpunten intact laten.

Als u ervoor kiest om herstelpunten te laten staan, moet u rekening houden met deze details:

  • Alle herstelpunten blijven voor altijd intact en alle verwijderingen stoppen bij het stoppen van de beveiliging met het bewaren van gegevens.
  • Er worden kosten in rekening gebracht voor het beveiligde exemplaar en de verbruikte opslag.
  • Als u een gegevensbron verwijdert zonder back-ups te stoppen, mislukken nieuwe back-ups.

De processen om de beveiliging te stoppen, worden hieronder beschreven.

Bescherming stoppen met gegevensbehoud

Als u de beveiliging met behoud van gegevens wilt stoppen, gebruikt u de opdracht az backup protection disable'.

az backup protection disable --resource-group SQLResourceGroup \
    --vault-name SQLVault \
    --container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
    --item-name sqldatabase;mssqlserver;master \
    --workload-type SQLDataBase \
    --output table

De uitvoer wordt weergegeven als:

Name                                  ResourceGroup
------------------------------------  ---------------  
g0f15dae-7cac-4475-d833-f52c50e5b6c3  SQLResourceGroup

Gebruik de opdracht az backup job show om de status van deze bewerking te controleren.

Beveiliging stoppen zonder gegevensbehoud

Als u de beveiliging wilt stoppen zonder gegevens te bewaren, gebruikt u de opdracht az backup protection disable .

az backup protection disable --resource-group SQLResourceGroup \
    --vault-name SQLVault \
    --container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
    --item-name sqldatabase;mssqlserver;master \
    --workload-type SQLDataBase \
    --delete-backup-data true \
    --output table

De uitvoer wordt weergegeven als:

Name                                  ResourceGroup
------------------------------------  ---------------  
g0f15dae-7cac-4475-d833-f52c50e5b6c3  SQLResourceGroup

Gebruik de opdracht az backup job show om de status van deze bewerking te controleren.

Beveiliging hervatten

Wanneer u de beveiliging voor de SQL-database stopt met het bewaren van gegevens, kunt u de beveiliging later hervatten. Als u de gegevens van de back-up niet bewaart, kunt u de beveiliging niet hervatten.

Gebruik de opdracht az backup protection resume om de beveiliging te hervatten.

az backup protection resume --resource-group SQLResourceGroup \
    --vault-name SQLVault \
    --container-name VMAppContainer;Compute;SQLResourceGroup;testSQLVM \
    --policy-name SQLPolicy \
    --output table

De uitvoer wordt weergegeven als:

Name                                  ResourceGroup
------------------------------------  ---------------  
b2a7f108-1020-4529-870f-6c4c43e2bb9e  SQLResourceGroup

Gebruik de opdracht az backup job show om de status van deze bewerking te controleren.

Volgende stappen