Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se explica cómo realizar copias de seguridad de una base de datos de Azure PostgreSQL utilizando Azure PowerShell.
En este artículo aprenderá a:
Creación de un almacén de Backup
Crear una directiva de copia de seguridad
Configuración de una copia de seguridad de una instancia de Azure Database for PostgreSQL: servidor flexible
Ejecutar un trabajo de copia de seguridad a petición.
Para obtener información sobre los escenarios y limitaciones admitidos por el servidor flexible de Azure Database for PostgreSQL, consulte la matriz de compatibilidad.
Creación de un almacén de Backup
El almacén de Backup es una entidad de almacenamiento de Azure. Almacena los datos de copia de seguridad de las nuevas cargas de trabajo que admite Azure Backup. Por ejemplo, Azure Database para PostgreSQL: servidores flexibles, blobs en una cuenta de almacenamiento y Azure Disks. Los almacenes de Backup facilitan la tarea de organizar los datos de copia de seguridad, al mismo tiempo que reducen al mínimo la sobrecarga administrativa. Los almacenes de copias de seguridad se basan en el modelo de Azure Resource Manager de Azure, que proporciona características para proteger los datos de las copias de seguridad.
Antes de crear un almacén de copia de seguridad, elija la redundancia del almacenamiento de los datos dentro del almacén. Después, continúe con la creación del almacén de copia de seguridad con esa redundancia de almacenamiento y la ubicación.
En este artículo, se creará el almacén de copia de seguridad TestBkpVault en la región westus en el grupo de recursos testBkpVaultRG. Use el comando New-AzDataProtectionBackupVault para crear un almacén de copia de seguridad. Obtenga más información sobre cómo crear un almacén de Backup.
$storageSetting = New-AzDataProtectionBackupVaultStorageSettingObject -Type LocallyRedundant/GeoRedundant -DataStoreType VaultStore
New-AzDataProtectionBackupVault -ResourceGroupName testBkpVaultRG -VaultName TestBkpVault -Location westus -StorageSetting $storageSetting
$TestBkpVault = Get-AzDataProtectionBackupVault -VaultName TestBkpVault
$TestBKPVault | fl
ETag :
Id : /subscriptions/00001111-aaaa-2222-bbbb-3333cccc4444/resourceGroups/testBkpVaultRG/providers/Microsoft.DataProtection/backupVaults/TestBkpVault
Identity : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.DppIdentityDetails
IdentityPrincipalId :
IdentityTenantId :
IdentityType :
Location : westus
Name : TestBkpVault
ProvisioningState : Succeeded
StorageSetting : {Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.StorageSetting}
SystemData : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.SystemData
Tag : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.DppTrackedResourceTags
Type : Microsoft.DataProtection/backupVaults
Una vez creado el almacén, vamos a crear una directiva de copia de seguridad para proteger Azure PostgreSQL: bases de datos de servidor flexible.
Crear una directiva de copia de seguridad
Comprender PostgreSQL: directiva flexible de copias de seguridad del servidor
Vamos a comprender el objeto de directiva de copia de seguridad para PostgreSQL: servidor flexible.
- Regla de directiva
- Regla de copia de seguridad
- Parámetro de copia de seguridad
- Tipo de copia de seguridad (una copia de seguridad completa del servido r de la base de datos en este caso)
- Almacén de datos inicial (al que llegan inicialmente las copias de seguridad)
- Desencadenador (cómo se desencadena la copia de seguridad)
- Basada en una programación
- Criterios de etiquetado predeterminados (una "etiqueta" predeterminada para todas las copias de seguridad programadas. Esta etiqueta vincula las copias de seguridad a la regla de retención)
- Parámetro de copia de seguridad
- Regla de retención predeterminada (regla que se aplica a todas las copias de seguridad, de manera predeterminada, en el almacén de datos inicial)
- Regla de copia de seguridad
Por lo tanto, este objeto define qué tipo de copias de seguridad se desencadenan, cómo se desencadenan (a través de una programación), con qué se etiquetan, a dónde llegan (un almacén de datos) y el ciclo de vida de los datos de copia de seguridad en un almacén de datos. El objeto predeterminado para PostgreSQL: el servidor flexible indica que se desencadena una copia de seguridad completa cada semana y que llegarán al almacén, donde se almacenan durante tres meses.
Recuperación de la plantilla de directiva
Para comprender los componentes internos de una directiva de copia de seguridad para Azure PostgreSQL: copia de seguridad de la base de datos del servidor flexible, recupere la plantilla de directiva con el comando Get-AzDataProtectionPolicyTemplate. Este comando devuelve una plantilla de directiva predeterminada para un tipo de origen de datos determinado. Use esta plantilla para crear una directiva.
$policyDefn = Get-AzDataProtectionPolicyTemplate -DatasourceType AzureDatabaseForPGFlexServer
$policyDefn | fl
DatasourceType : {Microsoft.DBforPostgreSQL/flexibleServers/databases}
ObjectType : BackupPolicy
PolicyRule : {BackupWeekly, Default}
$policyDefn.PolicyRule | fl
BackupParameter : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210701.AzureBackupParams
BackupParameterObjectType : AzureBackupParams
DataStoreObjectType : DataStoreInfoBase
DataStoreType : VaultStore
Name : BackupWeekly
ObjectType : AzureBackupRule
Trigger : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210701.ScheduleBasedTriggerCo
ntext
TriggerObjectType : ScheduleBasedTriggerContext
IsDefault : True
Lifecycle : {Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210701.SourceLifeCycle}
Name : Default
ObjectType : AzureRetentionRule
La plantilla de directiva consta de un desencadenador (que decide lo que desencadena la copia de seguridad) y un ciclo de vida (que decide cuándo se debe eliminar, copiar o trasladar la copia de seguridad). En Azure PostgreSQL: copia de seguridad de la base de datos del servidor flexible, el valor predeterminado del desencadenador es un desencadenador semanal programado (una copia de seguridad cada siete días) y conservar cada copia de seguridad durante tres meses.
$policyDefn.PolicyRule[0].Trigger | fl
ObjectType : ScheduleBasedTriggerContext
ScheduleRepeatingTimeInterval : {R/2021-08-22T02:00:00+00:00/P1W}
ScheduleTimeZone : UTC
TaggingCriterion : {Default}
$policyDefn.PolicyRule[1].Lifecycle | fl
DeleteAfterDuration : P3M
DeleteAfterObjectType : AbsoluteDeleteOption
SourceDataStoreObjectType : DataStoreInfoBase
SourceDataStoreType : VaultStore
TargetDataStoreCopySetting : {}
Modificación de la plantilla de directiva
Modificación de la programación
La plantilla de directiva predeterminada ofrece una copia de seguridad una vez por semana. Puede modificar la programación para que la copia de seguridad se realice varios días a la semana. Para cambiar la programación, use el comandoEdit-AzDataProtectionPolicyTriggerClientObject
En el ejemplo siguiente se modifica la copia de seguridad semanal para realizar una copia de seguridad que se realice todos los domingos, miércoles y viernes de cada semana. La matriz de fechas de programación menciona las fechas y los días de la semana de esas fechas se toman como días de la semana. También debe especificar que estas programaciones se repitan cada semana. Por lo tanto, el intervalo de programación es "1" y el tipo de intervalo es "semanal".
$schDates = @(
(
(Get-Date -Year 2021 -Month 08 -Day 15 -Hour 22 -Minute 0 -Second 0)
),
(
(Get-Date -Year 2021 -Month 08 -Day 18 -Hour 22 -Minute 0 -Second 0)
),
(
(Get-Date -Year 2021 -Month 08 -Day 20 -Hour 22 -Minute 0 -Second 0)
)
)
$trigger = New-AzDataProtectionPolicyTriggerScheduleClientObject -ScheduleDays $schDates -IntervalType Weekly -IntervalCount 1
Edit-AzDataProtectionPolicyTriggerClientObject -Schedule $trigger -Policy $policyDefn
Adición de una nueva regla de retención
La plantilla predeterminada tiene un ciclo de vida para el almacén de datos inicial bajo la regla de retención predeterminada. En este escenario, la regla indica que se eliminarán los datos de copia de seguridad después de tres meses. Utilice el comando New-AzDataProtectionRetentionLifeCycleClientObject para crear nuevos ciclos de vida y el comando Edit-AzDataProtectionPolicyRetentionRuleClientObject para asociarlos con las nuevas reglas o con las reglas existentes.
En el ejemplo siguiente se crea una nueva regla de retención denominada Mensual, donde la primera copia de seguridad correcta de cada mes se debe conservar en el almacén durante seis meses.
$VaultLifeCycle = New-AzDataProtectionRetentionLifeCycleClientObject -SourceDataStore VaultStore -SourceRetentionDurationType Months -SourceRetentionDurationCount 6
Edit-AzDataProtectionPolicyRetentionRuleClientObject -Policy $policyDefn -Name Monthly -LifeCycles $VaultLifeCycle -IsDefault $false
Agregue una etiqueta y los criterios pertinentes
Una vez creada una regla de retención, debe crear una etiqueta correspondiente en la propiedad Desencadenador de la directiva de copia de seguridad. Utilice el comando New-AzDataProtectionPolicyTagCriteriaClientObject para crear el nuevo criterio de etiquetado y utilice el comando Edit-AzDataProtectionPolicyTagClientObject para actualizar la etiqueta existente o crear una nueva etiqueta.
En el ejemplo siguiente se crea una nueva etiqueta junto con los criterios (que es la primera copia de seguridad correcta del mes) con el mismo nombre que la regla de retención correspondiente que se va a aplicar.
En este ejemplo, el criterio de la etiqueta debería denominarse Mensual.
$tagCriteria = New-AzDataProtectionPolicyTagCriteriaClientObject -AbsoluteCriteria FirstOfMonth
Edit-AzDataProtectionPolicyTagClientObject -Policy $policyDefn -Name Monthly -Criteria $tagCriteria
Si la programación es de varias copias de seguridad por semana (todos los domingos, miércoles y jueves, como se especifica en el ejemplo) y desea archivar las copias de seguridad de domingo y viernes, los criterios de etiquetado se pueden cambiar de la siguiente manera:
$tagCriteria = New-AzDataProtectionPolicyTagCriteriaClientObject -DaysOfWeek @("Sunday", "Friday")
Edit-AzDataProtectionPolicyTagClientObject -Policy $policyDefn -Name Monthly -Criteria $tagCriteria
Cree una nueva directiva de copia de seguridad de servidor flexible de PostgreSQL.
Una vez modificada la plantilla según los requisitos, use el comando New-AzDataProtectionBackupPolicy para crear una directiva con la plantilla modificada.
$polOss = New-AzDataProtectionBackupPolicy -ResourceGroupName testBkpVaultRG -VaultName TestBkpVault -Name "TestOSSPolicy" -Policy $policyDefn
Configuración de la copia de seguridad
Una vez que se crean el almacén y la directiva, hay tres puntos críticos que debe tener en cuenta para proteger una base de datos de Azure PostgreSQL.
Entidades clave implicadas
PostgreSQL: servidor flexible que se va a proteger
Capture el identificador de Azure Resource Manager (identificador de Azure Resource Manager) de PostgreSQL: servidor flexible que se va a proteger. Este identificador actúa como identificador del servidor de bases de datos. Se usa un ejemplo de PostgreSQL: servidor flexible testpgflex, que está presente en el grupo de recursos ossrg en una suscripción diferente.
$ossId = "/subscriptions/00001111-aaaa-2222-bbbb-3333cccc4444/resourcegroups/ossrg/providers/Microsoft.DBforPostgreSQL/flexibleServers/testpgflex
#### Backup vault
You need to connect the Backup vault to the PostgreSQL - flexbile server. Access is granted to the Backup vault's MSI.
See the [permissions] (/backup-azure-database-postgresql-flex-overview.md#permissions-for-backup) you should grant to the Managed System Identity (MSI) of the Backup Vault on the PostgreSQL - flexible server.
### Prepare the request
Once all the relevant permissions are set, the configuration of the backup is performed in two steps.
1. We prepare the relevant request by using the relevant vault, policy, PostgreSQL - flexible server using the [Initialize-AzDataProtectionBackupInstance](/powershell/module/az.dataprotection/initialize-azdataprotectionbackupinstance) command.
1. We submit the request to protect the database server using the [New-AzDataProtectionBackupInstance](/powershell/module/az.dataprotection/new-azdataprotectionbackupinstance) command.
```azurepowershell
$instance = Initialize-AzDataProtectionBackupInstance -DatasourceType AzureDatabaseForPostgreSQLFlexibleServer -DatasourceLocation $TestBkpvault.Location -PolicyId $polOss[0].Id -DatasourceId $ossId ConvertTo-Json -InputObject $instance -Depth 4
New-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupInstance $instance
Name Type BackupInstanceName
---- ---- ------------------
ossrg-testpgflex Microsoft.DataProtection/backupVaults/backupInstances ossrg-testpgflex
Ejecución de una copia de seguridad a petición
Capture la instancia de copia de seguridad pertinente en la que necesita desencadenar una copia de seguridad con el comando Get-AzDataProtectionBackupInstance.
$instance = Get-AzDataProtectionBackupInstance -SubscriptionId aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e -ResourceGroupName testBkpVaultRG -VaultName $TestBkpVault.Name -Name BackupInstanceName
Mientras desencadena la copia de seguridad, puede especificar una regla de retención. Para ver las reglas de retención de la directiva, desplácese por el objeto de directiva de reglas de retención. En el ejemplo siguiente, se muestra la regla con el nombre predeterminado. Usamos esa regla para la copia de seguridad a petición.
$ossPol.PolicyRule | fl
BackupParameter : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.AzureBackupParams
BackupParameterObjectType : AzureBackupParams
DataStoreObjectType : DataStoreInfoBase
DataStoreType : OperationalStore
Name : BackupHourly
ObjectType : AzureBackupRule
Trigger : Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.ScheduleBasedTriggerContext
TriggerObjectType : ScheduleBasedTriggerContext
IsDefault : True
Lifecycle : {Microsoft.Azure.PowerShell.Cmdlets.DataProtection.Models.Api20210201Preview.SourceLifeCycle}
Name : Default
ObjectType : AzureRetentionRule
Para desencadenar una copia de seguridad a petición, utilice el comandobackup-AzDataProtectionBackupInstanceAdhoc.
$AllInstances = Get-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name
Backup-AzDataProtectionBackupInstanceAdhoc -BackupInstanceName $AllInstances[0].Name -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupRuleOptionRuleName "Default"
Seguimiento de trabajos
Realice el seguimiento de todos los trabajos mediante el comando Get-AzDataProtectionJob. Puede enumerar todos los trabajos y capturar un detalle de trabajo determinado.
También puede usar Az.ResourceGraph para realizar el seguimiento de todos los trabajos en todos los almacenes de copia de seguridad. Use el comando Search-AzDataProtectionJobInAzGraph para buscar el trabajo pertinente, que puede encontrarse en cualquier almacén de copia de seguridad.
$job = Search-AzDataProtectionJobInAzGraph -Subscription $sub -ResourceGroupName "testBkpVaultRG" -Vault $TestBkpVault.Name -DatasourceType AzureDatabaseForPGFlexServer -Operation OnDemandBackup