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 állíthatja vissza a PostgreSQL-adatbázisokat az Azure PowerShell használatával egy Azure Database for PostgreSQL-kiszolgálóra , amelyről az Azure Backupon keresztül biztonsági másolatot készít. A PostgreSQL-adatbázisokat az Azure Portal, az Azure CLI és a REST API használatával is visszaállíthatja.
Mivel a PostgreSQL-adatbázis szolgáltatásként nyújtott platform (PaaS) adatbázis, a Original-Location Helyreállítási (OLR) beállítás nem támogatott a meglévő adatbázis lecserélésével (ahonnan a biztonsági másolatokat készítették). A helyreállítási pontról visszaállítva létrehozhat egy új adatbázist ugyanabban az Azure Database for PostgreSQL-kiszolgálón vagy bármely más PostgreSQL-kiszolgálón. Ezt a lehetőséget Alternate-Location Recovery (ALR) néven nevezzük. Az ALR segít megőrizni a forrásadatbázist és a visszaállított (új) adatbázist is.
A cikkben szereplő példák az erőforráscsoport TestBkpVaultalatt elnevezett testBkpVaultRG meglévő Backup-tárolóra vonatkoznak:
$TestBkpVault = Get-AzDataProtectionBackupVault -VaultName TestBkpVault -ResourceGroupName "testBkpVaultRG"
Visszaállítás új PostgreSQL-adatbázis létrehozásához
Engedélyek beállítása
A Backup-tárolók felügyelt identitással férnek hozzá más Azure-erőforrásokhoz. A biztonsági mentésből való visszaállításhoz a Backup-tároló felügyelt identitásához engedélykészlet szükséges azon az Azure Database for PostgreSQL-kiszolgálón, amelyre az adatbázist vissza kell állítani.
Ha a tároló rendszer által hozzárendelt felügyelt identitásának megfelelő engedélyeket szeretne hozzárendelni a cél PostgreSQL-kiszolgálón, tekintse meg a PostgreSQL-adatbázisok biztonsági mentéséhez szükséges engedélyeket.
Ha fájlként szeretné visszaállítani a helyreállítási pontot egy tárfiókba, a Backup-tároló rendszer által hozzárendelt felügyelt identitásának hozzáférésre van szüksége a céltárfiókhoz.
Hozd be a megfelelő helyreállítási pontot
Kérje le az összes példányt a Get-AzDataProtectionBackupInstance parancs használatával, és azonosítsa a megfelelő példányt:
$AllInstances = Get-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name
Használhatja a Az.Resourcegraph és a Search-AzDataProtectionBackupInstanceInAzGraph parancsot a helyreállítási pontok keresésére példányok között, több tárolóban és előfizetésben.
$AllInstances = Search-AzDataProtectionBackupInstanceInAzGraph -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -DatasourceType AzureDatabaseForPostgreSQL -ProtectionStatus ProtectionConfigured
A keresési feltételek szűréséhez használja a PowerShell-ügyfél keresési képességeit:
Search-AzDataProtectionBackupInstanceInAzGraph -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -DatasourceType AzureDatabaseForPostgreSQL -ProtectionStatus ProtectionConfigured | Where-Object { $_.BackupInstanceName -match "empdb11"}
A példány azonosítása után kérje le a megfelelő helyreállítási pontot:
$rp = Get-AzDataProtectionRecoveryPoint -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupInstanceName $AllInstances[2].BackupInstanceName
Ha le szeretné kérni a helyreállítási pontot az archív rétegről, adjon hozzá egy ügyfélszűrőt:
Get-AzDataProtectionRecoveryPoint -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupInstanceName $AllInstances[2].BackupInstanceName | Where-Object {$_.Property.RecoveryPointDataStoresDetail[0].Type -match "Archive" }
A visszaállítási kérelem előkészítése
A PostgreSQL-adatbázisokhoz különböző visszaállítási lehetőségek állnak rendelkezésre. A helyreállítási pontot visszaállíthatja egy másik adatbázisként, vagy visszaállíthatja fájlként. A helyreállítási pont az archív szinten is lehet.
Adatbázisként visszaállítani
Hozza létre a létrehozandó új PostgreSQL-adatbázis Azure Resource Manager-azonosítóját (a célKént megadott PostgreSQL-kiszolgálóval, amelyhez engedélyek lettek rendelve, a korábban részletezett módon). Adja meg a szükséges PostgreSQL-adatbázisnevet. Egy PostgreSQL-adatbázis például egy másik előfizetéssel rendelkező erőforráscsoportban emprestored21 elnevezett targetossserver cél PostgreSQL-kiszolgáló alatt nevezhető eltargetrg:
$targetOssId = /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourceGroups/targetrg/providers/providers/Microsoft.DBforPostgreSQL/servers/targetossserver/databases/emprestored21
Initialize-AzDataProtectionRestoreRequest A paranccsal készítse elő a visszaállítási kérést az összes releváns részlettel:
$OssRestoreReq = Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureDatabaseForPostgreSQL -SourceDataStore VaultStore -RestoreLocation $TestBkpVault.Location -RestoreType AlternateLocation -RecoveryPoint $rps[0].Property.RecoveryPointId -TargetResourceId $targetOssId -SecretStoreURI "https://restoreoss-test.vault.azure.net/secrets/dbauth3" -SecretStoreType AzureKeyVault
Archívum alapú helyreállítási ponthoz a következőkre van szükség:
- Rehidratálás az archív adattárból a tárolóadattárba.
- Módosítsa a forrásadattárat.
- Adjon hozzá további paramétereket a rehidratálási prioritás megadásához.
- Adja meg azt az időtartamot, amelyre a rehidratált helyreállítási pontot meg kell őrizni a tárolóadattárban.
- Állítsa vissza az adatbázist ebből a helyreállítási pontból.
A következő paranccsal egyszerre készítse elő a kérést az összes korábban említett művelethez:
$OssRestoreFromArchiveReq = Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureDatabaseForPostgreSQL -SourceDataStore ArchiveStore -RestoreLocation $TestBkpVault.Location -RestoreType AlternateLocation -RecoveryPoint $rps[0].Property.RecoveryPointId -TargetResourceId $targetOssId -SecretStoreURI "https://restoreoss-test.vault.azure.net/secrets/dbauth3" -SecretStoreType AzureKeyVault -RehydrationDuration 12 -RehydrationPriority Standard
Fájlokként visszaállítás
A korábban részletezett módon kérje le annak a tárolónak az URI-ját a tárfiókban, amelyhez engedélyek lettek hozzárendelve. Az alábbi példa egy másik előfizetéssel rendelkező tárfiók alatt elnevezett testcontainerrestoretestossstorageaccount tárolót használ:
$contURI = "https://testossstorageaccount.blob.core.windows.net/testcontainerrestore"
Initialize-AzDataProtectionRestoreRequest A paranccsal készítse elő a visszaállítási kérést az összes releváns részlettel:
$OssRestoreAsFilesReq = Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureDatabaseForPostgreSQL -SourceDataStore VaultStore -RestoreLocation $TestBkpVault.Location -RestoreType RestoreAsFiles -RecoveryPoint $rps[0].Property.RecoveryPointId -TargetContainerURI $contURI -FileNamePrefix "empdb11_postgresql-westus_1628853549768"
Az archív helyreállítási pont esetében módosítsa a forrásadattárat. Adja hozzá a rehidratált helyreállítási pont rehidratálási prioritását és a megőrzési időtartamát, napokban:
$OssRestoreAsFilesFromArchiveReq = Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureDatabaseForPostgreSQL -SourceDataStore ArchiveStore -RestoreLocation $TestBkpVault.Location -RestoreType RestoreAsFiles -RecoveryPoint $rps[0].Property.RecoveryPointId -TargetContainerURI $contURI -FileNamePrefix "empdb11_postgresql-westus_1628853549768" -RehydrationDuration "14" -RehydrationPriority Standard
A visszaállítás indítása
Start-AzDataProtectionBackupInstanceRestore A paranccsal aktiválhatja a visszaállítást a korábban előkészített kéréssel:
Start-AzDataProtectionBackupInstanceRestore -BackupInstanceName $AllInstances[2].BackupInstanceName -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Parameter $OssRestoreReq
Feladatok nyomon követése
A parancs használatával nyomon követheti a Get-AzDataProtectionJob feladatokat. Felsorolhatja az összes munkát, és lekérheti egy adott munka részleteit.
A feladatok nyomon követésére is használható Az.ResourceGraph az összes Backup-tárolóban.
Search-AzDataProtectionJobInAzGraph A parancs használatával lekérheti az összes Backup-tárolóban található megfelelő feladatot:
$job = Search-AzDataProtectionJobInAzGraph -Subscription $sub -ResourceGroupName "testBkpVaultRG" -Vault $TestBkpVault.Name -DatasourceType AzureDatabaseForPostgreSQL -Operation OnDemandBackup