Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a cikk azt ismerteti, hogyan készíthet biztonsági másolatot a PostgreSQL-adatbázisokról az Azure Virtual Machinesben az Azure CLI használatával. A biztonsági mentést az Azure Portal, az Azure PowerShell és a REST API for PostgreSQL-adatbázisok használatával is konfigurálhatja.
További információ a támogatott forgatókönyvekről és az Azure Database for PostgreSQL biztonsági mentésével kapcsolatos gyakori kérdésekről .
Backup-tároló létrehozása
A Backup-tároló egy azure-beli tároló entitás. Tárolja a biztonsági mentési adatokat az Azure Backup által támogatott új számítási feladatokhoz, például az Azure Database for PostgreSQL-kiszolgálókhoz, a tárfiókban lévő blobokhoz és az Azure-lemezekhez. A biztonsági mentési tárolók segítenek a biztonsági mentési adatok rendszerezésében, miközben minimalizálják a felügyeleti többletterhelést. A biztonsági mentési tárolók az Azure Azure Resource Manager-modelljén alapulnak, amely továbbfejlesztett képességeket biztosít a biztonsági mentési adatok védelméhez.
A Backup-tároló létrehozása előtt válassza ki a tárolón belüli adatok tárolóredundanciát. Ezután hozza létre a biztonsági másolat tárolót a megadott tárredundanciával és helyszínen.
Ebben a cikkben létrehoz egy biztonsági mentési tárolót a TestBkpVault régióban, az westus erőforráscsoport alatt, a testBkpVaultRG nevű.
az dataprotection vault create A paranccsal hozzon létre egy Backup-tárolót.
További információ a Backup-tárolók létrehozásáról.
az dataprotection backup-vault create -g testBkpVaultRG --vault-name TestBkpVault -l westus --type SystemAssigned --storage-settings datastore-type="VaultStore" type="LocallyRedundant"
{
"eTag": null,
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/testBkpVaultRG/providers/Microsoft.DataProtection/BackupVaults/TestBkpVault",
"identity": {
"principalId": "aaaaaaaa-bbbb-cccc-1111-222222222222",
"tenantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"type": "SystemAssigned"
},
"location": "westus",
"name": "TestBkpVault",
"properties": {
"provisioningState": "Succeeded",
"storageSettings": [
{
"datastoreType": "VaultStore",
"type": "LocallyRedundant"
}
]
},
"resourceGroup": "testBkpVaultRG",
"systemData": null,
"tags": null,
"type": "Microsoft.DataProtection/backupVaults"
}
Hozzon létre egy biztonsági mentési szabályzatot
A tároló létrehozása után létrehozhat egy biztonsági mentési szabályzatot a PostgreSQL-adatbázisok védelméhez. A REST API használatával a PostgreSQL-adatbázisokhoz biztonsági mentési szabályzatot is létrehozhat.
A PostgreSQL biztonsági mentési szabályzatának ismertetése
Míg a lemezes biztonsági mentés naponta több biztonsági mentést is biztosít, a blobok biztonsági mentése pedig folyamatos biztonsági mentés eseményindító nélkül, a PostgreSQL biztonsági mentése archív védelmet nyújt. Az elsőként a tárolóba küldött biztonsági mentési adatok egy meghatározott szabály vagy életciklus alapján áthelyezhetők az archív szintre.
Ebben a kontextusban a következő hierarchia segíthet megérteni a PostgreSQL biztonsági mentési házirend-objektumát:
- Szabályzatszabály
- Biztonsági mentési szabály
- Biztonsági mentési paraméter
- Biztonsági mentés típusa (ebben az esetben teljes adatbázis biztonsági mentése)
- Kezdeti adattár (ahol a biztonsági másolatok kezdetben kerülnek)
- Eseményindító (a biztonsági mentés aktiválása)
- Időbeosztás
- Alapértelmezett címkézési feltételek (alapértelmezett címke, amely az összes ütemezett biztonsági mentést az adatmegőrzési szabályhoz kapcsolja)
- Biztonsági mentési paraméter
- Alapértelmezett adatmegőrzési szabály (a kezdeti adattárban alapértelmezés szerint az összes biztonsági mentésre alkalmazott szabály)
- Biztonsági mentési szabály
A szabályzatobjektum határozza meg, hogy milyen típusú biztonsági mentések aktiválódnak, hogyan aktiválódnak (ütemezés szerint), mivel vannak megjelölve, hová kerülnek (adattár), és hogy milyen életciklussal rendelkeznek adataik egy adattárban.
A PostgreSQL alapértelmezett PowerShell-objektuma azt mondja, hogy minden héten teljes biztonsági mentést kell indítania. A biztonsági másolatok elérik a tárolót, ahol három hónapig vannak tárolva.
Ha hozzá szeretné adni az archív szintet a szabályzathoz, el kell döntenie, hogy mikor kerülnek át az adatok a tárolóból az archívumba, mennyi ideig maradnak az adatok az archívumban, és hogy az ütemezett biztonsági másolatok közül melyik legyen archiválható. Hozzá kell adnia egy adatmegőrzési szabályt, amely meghatározza a tárolóadattárban lévő biztonsági mentési adatok életciklusát az archív adattárban. Az adatmegőrzési szabály azt is meghatározza, hogy a biztonsági mentési adatok mennyi ideig maradnak az archív adattárban. Ezután fel kell vennie egy címkét, amely az ütemezett biztonsági másolatokat archiválásra jogosultként jelöli meg.
Az eredményül kapott PowerShell-objektum a következő:
- Szabályzatszabály
- Biztonsági mentési szabály
- Biztonsági mentési paraméter
- Biztonsági mentés típusa (ebben az esetben teljes adatbázis biztonsági mentése)
- Kezdeti adattár (ahol a biztonsági másolatok kezdetben kerülnek)
- Eseményindító (a biztonsági mentés aktiválása)
- Időbeosztás
- Alapértelmezett címkézési feltételek (alapértelmezett címke, amely az összes ütemezett biztonsági mentést az adatmegőrzési szabályhoz kapcsolja)
- Új címkézési feltételek az azonos nevű új adatmegőrzési szabályhoz
- Biztonsági mentési paraméter
- Alapértelmezett adatmegőrzési szabály (a kezdeti adattárban alapértelmezés szerint az összes biztonsági mentésre alkalmazott szabály)
- Új adatmegőrzési szabály
- Életciklus
- Forrásadattár
- A forrásadattárban történő törlés időtartama
- Másolás a céladattárba
- Életciklus
- Biztonsági mentési szabály
A szabályzatsablon lekérése
A PostgreSQL-adatbázis biztonsági mentési szabályzatának belső összetevőinek megismeréséhez kérje le a szabályzatsablont a az dataprotection backup-policy get-default-policy-template parancs használatával. Ez a parancs egy adatforrástípus alapértelmezett szabályzatsablonjának visszaadása. Ezzel a szabályzatsablonnal új szabályzatot hozhat létre.
az dataprotection backup-policy get-default-policy-template --datasource-type AzureDatabaseForPostgreSQL
{
"datasourceTypes": [
"Microsoft.DBforPostgreSQL/servers/databases"
],
"name": "OssPolicy1",
"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"
}
]
}
A szabályzatsablon egy eseményindítóból (amely dönti el, hogy mi aktiválja a biztonsági mentést) és egy életciklusból (amely dönti el, hogy mikor törli, másolja vagy helyezze át a biztonsági mentést). A PostgreSQL-adatbázisok biztonsági mentésében az eseményindító alapértelmezett értéke egy ütemezett heti eseményindító (hét naponta egy biztonsági mentés). Minden biztonsági mentést három hónapig őrizünk meg.
Ütemezett eseményindító
"trigger": {
"objectType": "ScheduleBasedTriggerContext",
"schedule": {
"repeatingTimeIntervals": [
"R/2021-08-15T06:30:00+00:00/P1W"
],
"timeZone": "UTC"
}
A fogva tartási szabály alapértelmezett életciklusa
{
"isDefault": true,
"lifecycles": [
{
"deleteAfter": {
"duration": "P3M",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
},
"targetDataStoreCopySettings": []
}
],
"name": "Default",
"objectType": "AzureRetentionRule"
}
A szabályzatsablon módosítása
Az Azure PowerShellben az objektumokat átmeneti helyként használhatja az összes módosítás végrehajtásához. Az Azure CLI-ben fájlokat kell használnia, mert az objektumok fogalma nem létezik. Minden szerkesztési műveletet át kell irányítani egy új fájlba, ahol a rendszer beolvassa a tartalmat a bemeneti fájlból, és átirányítja a kimeneti fájlba. Később szükség szerint átnevezheti a fájlt, miközben szkriptben használja.
Az ütemezés módosítása
Az alapértelmezett szabályzatsablon hetente egyszer nyújt biztonsági másolatot. Módosíthatja a biztonsági mentés ütemezését úgy, hogy hetente több napig történjen. Az ütemezés módosításához használja a az dataprotection backup-policy trigger set parancsot.
Az alábbi példa a heti biztonsági mentést minden hét vasárnapjára, szerdára és péntekére módosítja. Az ütemezési dátum tömb megemlíti a dátumokat, és ezeknek a dátumoknak a hét napjait úgy veszi figyelembe, mint a hét napjai. Azt is meg kell adnia, hogy ezek az ütemezések hetente ismétlődjenek. Tehát az ütemezési időköz 1, és az intervallum típusa Weekly.
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
Új adatmegőrzési szabály hozzáadása
Ha archív védelmet szeretne hozzáadni, módosítania kell a szabályzatsablont.
Az alapértelmezett sablon életciklussal rendelkezik a kezdeti adattárhoz az alapértelmezett adatmegőrzési szabály szerint. Ebben a forgatókönyvben a szabály azt mondja, hogy három hónap után törölje a biztonsági mentési adatokat. Adjon hozzá egy új adatmegőrzési szabályt, amely meghatározza, hogy az adatok mikor kerülnek át az archív adattárba. Vagyis a biztonsági mentési adatok először az archív adattárba lesznek másolva, majd törlődnek a tárolóadattárban.
A szabálynak azt is meg kell határoznia, hogy mennyi ideig őrizze meg az adatokat az archív adattárban. Új életciklusok létrehozásához használja a az dataprotection backup-policy retention-rule create-lifecycle parancsot. Ha ezeket az életciklusokat új vagy meglévő szabályokhoz szeretné társítani, használja a az dataprotection backup-policy retention-rule set parancsot.
Az alábbi példa egy új adatmegőrzési szabályt hoz létre.Monthly Ebben a szabályban minden hónap első sikeres biztonsági mentése hat hónapig megmarad a tárolóban, átkerül az archív szintre, és 24 hónapig az archív szinten marad.
az dataprotection backup-policy retention-rule create-lifecycle --retention-duration-count 6 --retention-duration-type Months --source-datastore VaultStore --target-datastore ArchiveStore --copy-option CopyOnExpiryOption > VaultToArchiveLifeCycle.JSON
az dataprotection backup-policy retention-rule create-lifecycle --retention-duration-count 24 --retention-duration-type Months -source-datastore ArchiveStore > OnArchiveLifeCycle.JSON
az dataprotection backup-policy retention-rule set --lifecycles .\VaultToArchiveLifeCycle.JSON .\OnArchiveLifeCycle.JSON --name Monthly --policy .\EditedOSSPolicy.JSON > AddedRetentionRulePolicy.JSON
Címke és a vonatkozó feltételek hozzáadása
Miután létrehozott egy adatmegőrzési szabályt, létre kell hoznia egy megfelelő címkét a Trigger biztonsági mentési szabályzat tulajdonságában. Új címkézési feltételek létrehozásához használja a az dataprotection backup-policy tag create-absolute-criteria parancsot. A meglévő címke frissítéséhez vagy új címke létrehozásához használja a az dataprotection backup-policy tag set parancsot.
Az alábbi példa egy új címkét hoz létre a feltételekkel együtt, amely a hónap első sikeres biztonsági mentése. A címke neve megegyezik az alkalmazandó megőrzési szabály nevével.
Ebben a példában a címkefeltételek neve Monthly:
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
Ha az ütemezés hetente több biztonsági mentést tartalmaz (minden vasárnap, szerdán és csütörtökön, az előző példában megadottak szerint), és archiválni szeretné a vasárnapi és a pénteki biztonsági mentéseket, a következő paranccsal módosíthatja a az dataprotection backup-policy tag create-generic-criteria címkézési feltételeket:
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
Új PostgreSQL biztonsági mentési szabályzat létrehozása
Miután módosította a sablont a követelményeknek megfelelően, a az dataprotection backup-policy create parancs használatával hozzon létre egy szabályzatot a módosított sablon használatával:
az dataprotection backup-policy create --backup-policy-name FinalOSSPolicy --policy AddedRetentionRuleAndTag.JSON --resource-group testBkpVaultRG --vault-name TestBkpVault
Biztonsági mentés konfigurálása
A tároló és a szabályzat létrehozása után három kritikus szempontot kell figyelembe vennie egy PostgreSQL-adatbázis biztonsági mentéséhez az Azure Database for PostgreSQL-ben.
A legfontosabb entitások ismertetése
PostgreSQL-adatbázis biztonsági mentése
Kérje le a PostgreSQL-adatbázis Resource Manager-azonosítóját a biztonsági mentéshez. Ez az azonosító szolgál az adatbázis azonosítójaként. Az alábbi példa egy PostgreSQL-kiszolgáló empdb11alatt elnevezett testposgresql adatbázist használ, amely egy másik előfizetésben található az erőforráscsoportbanossrg. A példa a Basht használja.
ossId="/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/ossrg/providers/Microsoft.DBforPostgreSQL/servers/archive-postgresql-ccy/databases/empdb11"
Kulcstároló
Az Azure Backup szolgáltatás nem tárolja a felhasználónevet és a jelszót a PostgreSQL-adatbázishoz való csatlakozáshoz. Ehelyett a biztonsági mentési rendszergazda a kulcsokat a kulcstartóba helyezi. Az Azure Backup szolgáltatás ezután hozzáfér a kulcstartóhoz, beolvassa a kulcsokat, és hozzáfér az adatbázishoz.
Az alábbi példa a Basht használja. Jegyezze fel a megfelelő kulcs titkos azonosítóját.
keyURI="https://testkeyvaulteus.vault.azure.net/secrets/ossdbkey"
Biztonsági mentési tárhely
A Backup-tárolónak csatlakoznia kell a PostgreSQL-kiszolgálóhoz, majd a kulcstartóban található kulcsokkal kell elérnie az adatbázist. A Backup-tárolónak tehát hozzá kell férnie a PostgreSQL-kiszolgálóhoz és a kulcstartóhoz. A hozzáférés a Backup-tároló felügyelt identitásához engedélyezett.
Olvassa el azokat az engedélyeket, amelyeket meg kell adnia a Backup-tároló felügyelt identitásának a PostgreSQL-kiszolgálón és az adatbázis kulcsait tároló kulcstartóban.
A kérés előkészítése
Miután beállította az összes vonatkozó engedélyt, hajtsa végre a biztonsági mentés konfigurálását két lépésben:
- Állítsa össze a kérést a megfelelő tároló, szabályzat és PostgreSQL-adatbázis használatával a
az dataprotection backup-instance initializeparancsban. - Küldje el az adatbázis biztonsági mentésére vonatkozó kérést a
az dataprotection backup-instance createparancs használatával.
az dataprotection backup-instance initialize --datasource-id $ossId --datasource-type AzureDatabaseForPostgreSQL -l <vault-location> --policy-id <policy_arm_id> --secret-store-type AzureKeyVault --secret-store-uri $keyURI > OSSBkpInstance.JSON
az dataprotection backup-instance create --resource-group testBkpVaultRG --vault-name TestBkpVault TestBkpvault --backup-instance .\OSSBkpInstance.JSON
Igény szerinti biztonsági mentések futtatása
A biztonsági mentés indításakor meg kell adnia egy adatmegőrzési szabályt. A szabályzat megőrzési szabályainak megtekintéséhez tallózzon a szabályzat JSON-fájljában. Az alábbi példában két adatmegőrzési szabály szerepel a nevek Default és Monthlya . Ez a cikk az Monthly igény szerinti biztonsági mentés szabályát használja.
az dataprotection backup-policy show -g ossdemorg --vault-name ossdemovault-1 --subscription e3d2d341-4ddb-4c5d-9121-69b7e719485e --name osspol5
{
"id": "/subscriptions/e3d2d341-4ddb-4c5d-9121-69b7e719485e/resourceGroups/ossdemorg/providers/Microsoft.DataProtection/backupVaults/ossdemovault-1/backupPolicies/osspol5",
"name": "osspol5",
"properties": {
"datasourceTypes": [
"Microsoft.DBforPostgreSQL/servers/databases"
],
"objectType": "BackupPolicy",
"policyRules": [
{
"backupParameters": {
"backupType": "Full",
"objectType": "AzureBackupParams"
},
"dataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
},
"name": "BackupWeekly",
"objectType": "AzureBackupRule",
"trigger": {
"objectType": "ScheduleBasedTriggerContext",
"schedule": {
"repeatingTimeIntervals": [
"R/2020-04-04T20:00:00+00:00/P1W",
"R/2020-04-01T20:00:00+00:00/P1W"
],
"timeZone": "UTC"
},
"taggingCriteria": [
{
"criteria": [
{
"absoluteCriteria": [
"FirstOfMonth"
],
"daysOfMonth": null,
"daysOfTheWeek": null,
"monthsOfYear": null,
"objectType": "ScheduleBasedBackupCriteria",
"scheduleTimes": null,
"weeksOfTheMonth": null
}
],
"isDefault": false,
"tagInfo": {
"eTag": null,
"id": "Monthly_",
"tagName": "Monthly"
},
"taggingPriority": 15
},
{
"criteria": null,
"isDefault": true,
"tagInfo": {
"eTag": null,
"id": "Default_",
"tagName": "Default"
},
"taggingPriority": 99
}
]
}
},
{
"isDefault": false,
"lifecycles": [
{
"deleteAfter": {
"duration": "P10Y",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
},
"targetDataStoreCopySettings": []
}
],
"name": "Monthly",
"objectType": "AzureRetentionRule"
},
{
"isDefault": true,
"lifecycles": [
{
"deleteAfter": {
"duration": "P1Y",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
},
"targetDataStoreCopySettings": []
}
],
"name": "Default",
"objectType": "AzureRetentionRule"
}
]
},
"resourceGroup": "ossdemorg",
"systemData": null,
"type": "Microsoft.DataProtection/backupVaults/backupPolicies"
}
Igény szerinti biztonsági mentés indításához használja a az dataprotection backup-instance adhoc-backup következő parancsot:
az dataprotection backup-instance adhoc-backup --name "ossrg-empdb11" --rule-name "Monthly" --resource-group testBkpVaultRG --vault-name TestBkpVault
Feladatok nyomon követése
Az összes feladat nyomon követése a az dataprotection job list parancs használatával. Listázhatja az összes feladatot, és lekérhet egy adott feladatrészletet.
Az összes feladat nyomon követésére is használható Az.ResourceGraph az összes Backup-tárolóban.
az dataprotection job list-from-resourcegraph A parancs használatával lekérje a megfelelő feladatokat a Backup-tárolók között:
az dataprotection job list-from-resourcegraph --datasource-type AzureDatabaseForPostgreSQL --status Completed
Kapcsolódó tartalom
- A PostgreSQL-adatbázisok visszaállítása az Azure CLI használatával.
- PostgreSQL-adatbázis visszaállítása az Azure Portal, az Azure PowerShell és a REST API használatával.
- Azure Database for PostgreSQL-kiszolgáló kezelése az Azure Portal használatával.