共用方式為


快速入門:使用 Azure CLI 建立適用於 PostgreSQL 的 Azure 資料庫的備份原則 - 彈性伺服器

本快速入門說明如何使用 Azure CLI 建立備份原則來保護適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器。

適用於 PostgreSQL 的 Azure 資料庫的 Azure 備份原則 - 彈性伺服器會定義如何和何時建立備份、恢復點的保留期間,以及數據保護和復原的規則。 Azure 備份 可讓您使用多個用戶端來備份 Azure PostgreSQL - 彈性伺服器,例如 Azure 入口網站PowerShellCLIAzure Resource ManagerBicepTerraform 等等。

先決條件

建立適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器備份原則之前,請確定符合下列必要條件:

建立備份原則

若要建立備份原則,請遵循下列步驟:

  1. 瞭解 PostgreSQL - 彈性伺服器備份原則
  2. 擷取原則範本
  3. 修改原則範本
  4. 建立原則

瞭解 PostgreSQL - 彈性伺服器備份原則

磁碟備份每天提供多次備份,而 blob 備份是連續備份,不需要觸發事件。 現在,讓我們來了解用於 PostgreSQL 彈性伺服器的備份政策物件。

  • PolicyRule
    • BackupRule
      • BackupParameter
        • BackupType (此案例中的完整資料庫備份)
        • 初始資料存放區 (備份一開始應該登陸的位置)
        • 觸發程序 (觸發備份的方式)
          • 依據排程
          • 預設標記準則 (所有已排程備份的預設「標記」。此標記會將備份連結至保留規則)
    • 預設保留規則 (預設會套用至初始資料存放區上所有備份的規則)

因此,此物件會定義:

  • 觸發的備份類型
  • 政策觸發的方式(透過時間排程)
  • 應用到備份原則的標記
  • 儲存資料的位置(資料存放區)
  • 數據存放區中備份數據的生命週期

PostgreSQL 的預設 PowerShell 物件 – 彈性伺服器每週會觸發一次完整備份,備份將被儲存在保存庫中,並保留 三個月

擷取原則範本

若要瞭解 Azure PostgreSQL – 彈性伺服器資料庫備份的備份原則內部元件,請使用 az dataprotection backup-policy get-default-policy-template 命令擷取原則範本。 此命令會傳回指定資料來源類型的預設原則範本。 使用此原則範本來建立新的原則。

az dataprotection backup-policy get-default-policy-template --datasource-type AzureDatabaseForPostgreSQLFlexibleServer

{
  "datasourceTypes": [
    "Microsoft.DBforPostgreSQL/flexibleServers"
  ],
  "name": "OssFlexiblePolicy1",
  "objectType": "BackupPolicy",
  "policyRules": [
    {
      "backupParameters": {
        "backupType": "Full",
        "objectType": "AzureBackupParams"
      },
      "dataStore": {
        "dataStoreType": "VaultStore",
        "objectType": "DataStoreInfoBase"
      },
      "name": "BackupWeekly",
      "objectType": "AzureBackupRule",
      "trigger": {
        "objectType": "ScheduleBasedTriggerContext",
        "schedule": {
          "repeatingTimeIntervals": [
            "R/2021-08-15T06:30:00+00:00/P1W"
          ],
          "timeZone": "UTC"
        },
        "taggingCriteria": [
          {
            "isDefault": true,
            "tagInfo": {
              "id": "Default_",
              "tagName": "Default"
            },
            "taggingPriority": 99
          }
        ]
      }
    },
    {
      "isDefault": true,
      "lifecycles": [
        {
          "deleteAfter": {
            "duration": "P3M",
            "objectType": "AbsoluteDeleteOption"
          },
          "sourceDataStore": {
            "dataStoreType": "VaultStore",
            "objectType": "DataStoreInfoBase"
          },
          "targetDataStoreCopySettings": []
        }
      ],
      "name": "Default",
      "objectType": "AzureRetentionRule"
    }
  ]
}

原則範本包含觸發程式(決定哪些觸發備份)和生命週期(決定何時刪除、複製、移動備份)。 在 Azure PostgreSQL – 彈性伺服器資料庫備份中,觸發程式的預設值是排定的 每周 觸發程式(每 7 天一次備份),並保留每個備份 三個月

預定的觸發器:

"trigger": {
        "objectType": "ScheduleBasedTriggerContext",
        "schedule": {
          "repeatingTimeIntervals": [
            "R/2021-08-15T06:30:00+00:00/P1W"
          ],
          "timeZone": "UTC"
        }

預設保留規則生命週期:


{
      "isDefault": true,
      "lifecycles": [
        {
          "deleteAfter": {
            "duration": "P3M",
            "objectType": "AbsoluteDeleteOption"
          },
          "sourceDataStore": {
            "dataStoreType": "VaultStore",
            "objectType": "DataStoreInfoBase"
          },
          "targetDataStoreCopySettings": []
        }
      ],
      "name": "Default",
      "objectType": "AzureRetentionRule"
    }

這很重要

備份排程遵循 ISO 8601 持續時間格式。 不過,不支援重複間隔前綴 R,因為備份已設定為無限期執行。 任何使用R指定的值都會被忽略。

修改原則範本

這很重要

在 Azure PowerShell 中,對象可作為預備位置來執行所有修改。 在 Azure CLI 中,我們必須使用檔案,因為沒有 Objects 的概念。 每個 編輯 作業都應該重新導向至新的檔案,其中內容會從 輸入 檔讀取,並重新導向至 輸出 檔案。 在指令碼中使用檔案時,您可視需要將其重新命名。

修改排程

預設原則範本每週備份一次。 您可以修改備份的排程,將其改為每週提供多次備份。 若要修改排程,請使用 az dataprotection backup-policy trigger set 命令。

下列範例會修改每週備份,在每週的每個星期日、星期三和星期五進行備份。 排程日期陣列會提及日期,一週的星期幾即會視這些日期為星期幾而定。 此外,請指定這些排程應該每周重複一次。 因此,排程間隔為 1,而間隔類型為 [每週]

az dataprotection backup-policy trigger create-schedule --interval-type Weekly --interval-count 1 --schedule-days 2021-08-15T22:00:00 2021-08-18T22:00:00 2021-08-20T22:00:00
[
  "R/2021-08-15T22:00:00+00:00/P1W",
  "R/2021-08-18T22:00:00+00:00/P1W",
  "R/2021-08-20T22:00:00+00:00/P1W"
]

az dataprotection backup-policy trigger set --policy .\OSSPolicy.json  --schedule R/2021-08-15T22:00:00+00:00/P1W R/2021-08-18T22:00:00+00:00/P1W R/2021-08-20T22:00:00+00:00/P1W > EditedOSSPolicy.json

新增保留規則

默認範本具有預設保留規則下初始數據存放區的生命週期。 在此案例中,此規則會在 三個月後刪除備份數據。 az dataprotection backup-policy retention-rule create-lifecycle使用 命令來建立新的生命週期,並使用 az dataprotection backup-policy retention-rule set 命令將它們與新規則或現有規則產生關聯。

下列範例會建立名為 Monthly的新保留規則,其中每個月的第一個成功備份應該保留在保存庫中 六個月

az dataprotection backup-policy retention-rule create-lifecycle --retention-duration-count 6 --retention-duration-type Months --source-datastore VaultStore > VaultLifeCycle.JSON

az dataprotection backup-policy retention-rule set --lifecycles .\VaultLifeCycle.JSON --name Monthly --policy .\EditedOSSPolicy.json > AddedRetentionRulePolicy.JSON

新增標記和相關準則

建立保留規則之後,您必須在備份原則的 Trigger 屬性中建立對應的標記。 az dataprotection backup-policy tag create-absolute-criteria使用 命令來建立新的標記準則,並使用 az dataprotection backup-policy tag set 命令來更新現有的標記或建立新的標記。

下列範例會針對當月的初次成功備份,建立新的標記和準則。 標記會與要套用的對應保留規則具有相同名稱。

在此範例中,標記準則應命名為「每月」

az dataprotection backup-policy tag create-absolute-criteria --absolute-criteria FirstOfMonth > tagCriteria.JSON
az dataprotection backup-policy tag set --criteria .\tagCriteria.JSON --name Monthly --policy .\AddedRetentionRulePolicy.JSON > AddedRetentionRuleAndTag.JSON

例如,如果排程是每周多個備份(如範例中指定的每個星期日、星期三、星期四),而且您想要封存星期日和星期五備份,則可以使用 az dataprotection backup-policy tag create-generic-criteria 命令來變更標記準則。

az dataprotection backup-policy tag create-generic-criteria --days-of-week Sunday Friday > tagCriteria.JSON
az dataprotection backup-policy tag set --criteria .\tagCriteria.JSON --name Monthly --policy .\AddedRetentionRulePolicy.JSON > AddedRetentionRuleAndTag.JSON

建立原則

根據需求修改範本之後,請使用 az dataprotection backup-policy create 命令來使用修改過的範本來建立原則。

az dataprotection backup-policy create --backup-policy-name FinalOSSPolicy --policy AddedRetentionRuleAndTag.JSON --resource-group testBkpVaultRG --vault-name TestBkpVault

下一步

使用 Azure CLI 為 Azure Database for PostgreSQL - 彈性伺服器設定備份