Správa databází SQL na virtuálním počítači Azure pomocí Azure CLI

Azure CLI se používá k vytváření a správě prostředků Azure z příkazového řádku nebo prostřednictvím skriptů. Tento článek popisuje, jak spravovat zálohovanou databázi SQL na virtuálním počítači Azure pomocí Azure CLI. Tyto akce můžete provádět také pomocí Azure Portal.

V tomto článku se naučíte:

  • Monitorování úloh zálohování a obnovení
  • Ochrana nových databází přidaných do instance SQL
  • Změna zásad
  • Zastavení ochrany
  • Obnovení ochrany

Pokud jste k zálohování databáze SQL použili Zálohování databáze SQL v Azure pomocí rozhraní příkazového řádku , pak používáte následující prostředky:

  • Skupina prostředků s názvem SQLResourceGroup
  • Trezor s názvem SQLVault
  • Chráněný kontejner S názvem VMAppContainer; Vypočítat; SQLResourceGroup, testSQLVM
  • Zálohovaná databáze nebo položka s názvem sqldatabase, mssqlserver, master
  • Zdroje v oblasti westus2

Azure CLI usnadňuje proces správy databáze SQL spuštěné na virtuálním počítači Azure, který se zálohuje pomocí Azure Backup. Následující části popisují jednotlivé operace správy.

Poznámka

Další informace o podporovaných konfiguracích a scénářích najdete v matici podpory zálohování SQL .

Monitorování úloh zálohování a obnovení

Pomocí příkazu az backup job list můžete monitorovat dokončené nebo aktuálně spuštěné úlohy (zálohování nebo obnovení). Rozhraní příkazového řádku také umožňuje pozastavit aktuálně spuštěnou úlohu nebo počkat na dokončení úlohy.

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

Výstup se zobrazí takto:

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

Změna zásady

Pokud chcete změnit zásadu, která je základem konfigurace zálohování SQL, použijte příkaz az backup policy set . Parametr name v tomto příkazu odkazuje na zálohovanou položku, jejíž zásadu chcete změnit. Tady nahraďte zásadu sqldatabase,mssqlserver;master databáze SQL novou zásadou newSQLPolicy. Nové zásady můžete vytvořit pomocí příkazu 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 \

Výstup se zobrazí takto:

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

Vytvoření zásady rozdílového zálohování

Pokud chcete vytvořit zásady rozdílového zálohování, použijte příkaz az backup policy create s následujícími parametry:

  • --backup-management-type: Úloha Azure.
  • --workload-type: SQL DataBase.
  • --name: Název zásady.
  • --policy: Soubor JSON s příslušnými podrobnostmi o plánu a uchovávání.
  • --resource-group: Skupina prostředků trezoru.
  • --vault-name: Název trezoru/

Příklad:

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

Ukázkový kód 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"
} 

Po úspěšném vytvoření zásady se ve výstupu příkazu zobrazí json zásady, který jste předali jako parametr při provádění příkazu.

V následující části zásad můžete určit požadovanou frekvenci zálohování a uchovávání rozdílových záloh.

Příklad:

{
  "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
  }
}

Příklad:

Pokud chcete mít rozdílové zálohy jenom v sobotu a uchovávat je po dobu 60 dnů, proveďte v zásadách následující změny:

  • Aktualizujte dobu uchování Na 60 dnů.
  • Jako ScheduleRunDays zadejte pouze sobotu.
 {
  "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
  }
}

Ochrana nových databází přidaných do instance SQL

Registrace instance SQL v trezoru služby Recovery Services automaticky zjistí všechny databáze v této instanci.

Pokud jste ale do instance SQL přidali nové databáze později, použijte příkaz az backup protectable-item initialize . Tento příkaz zjistí přidané nové databáze.

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

Pak pomocí rutiny az backup protectable-item list vypíšete seznam všech databází zjištěných v instanci SQL. Tento seznam však vyloučí databáze, u kterých už bylo nakonfigurované zálohování. Jakmile zjistíte databázi, která se má zálohovat, projděte si téma Povolení zálohování v databázi SQL.

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

V tomto seznamu se zobrazí nová databáze, kterou chcete zálohovat:

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

Zastavení ochrany databáze SQL

Ochranu databáze SQL můžete zastavit v následujících procesech:

  • Zastavte všechny budoucí úlohy zálohování a odstraňte všechny body obnovení.
  • Zastavte všechny budoucí úlohy zálohování a ponechte body obnovení beze změny.

Pokud se rozhodnete opustit body obnovení, mějte na paměti tyto podrobnosti:

  • Všechny body obnovení zůstanou navždy nedotčené a všechny vyřazení se zastaví při zastavení ochrany se zachováním dat.
  • Za chráněnou instanci a spotřebované úložiště se vám budou účtovat poplatky.
  • Pokud odstraníte zdroj dat bez zastavení zálohování, nové zálohy selžou.

Procesy zastavení ochrany jsou podrobně popsány níže.

Zastavení ochrany se zachováním dat

Pokud chcete zastavit ochranu se zachováním dat, použijte příkaz 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

Výstup se zobrazí takto:

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

Pokud chcete ověřit stav této operace, použijte příkaz az backup job show .

Zastavení ochrany bez uchovávání dat

Pokud chcete zastavit ochranu bez uchovávání dat, použijte příkaz 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

Výstup se zobrazí takto:

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

Pokud chcete ověřit stav této operace, použijte příkaz az backup job show .

Obnovení ochrany

Když zastavíte ochranu databáze SQL se zachováním dat, můžete ochranu obnovit později. Pokud zálohovaná data neuchováte, nebudete moct ochranu obnovit.

K obnovení ochrany použijte příkaz az backup protection resume .

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

Výstup se zobrazí takto:

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

Pokud chcete ověřit stav této operace, použijte příkaz az backup job show .

Další kroky