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 describe cómo realizar una copia de seguridad de Azure Database for PostgreSQL mediante Azure PowerShell. También puede configurar la copia de seguridad mediante Azure Portal, la CLI de Azure y la API REST para bases de datos postgreSQL.
Obtenga más información sobre los escenarios admitidos y las preguntas más frecuentes sobre la copia de seguridad de bases de datos PostgreSQL en Azure Database for PostgreSQL.
Creación de un almacén de Backup
Un almacén de Backup es una entidad de almacenamiento en Azure. Almacena los datos de copia de seguridad de varias cargas de trabajo nuevas que admite Azure Backup, como servidores de Azure Database for PostgreSQL, discos de Azure y blobs de Azure. 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, creará un almacén de backup denominado TestBkpVault, en la región westus, en el grupo de recursos testBkpVaultRG. Use el comando New-AzDataProtectionBackupVault para crear un almacén de Backup.
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/xxxxxxxx-xxxx-xxxx-xxxx/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
Crear una directiva de copia de seguridad
Después de crear un almacén, puede crear una directiva de copia de seguridad para ayudar a proteger las bases de datos postgreSQL. También puede crear una directiva de copia de seguridad para bases de datos postgreSQL mediante la API REST.
Descripción de la directiva de copia de seguridad de PostgreSQL
Mientras que la copia de seguridad en disco ofrece varias copias de seguridad al día y la copia de seguridad de blobs es una copia de seguridad continua sin desencadenador, la copia de seguridad de PostgreSQL ofrece protección de archivo. Los datos de copia de seguridad que se envían por primera vez al almacén se pueden mover al nivel de acceso de archivo según una regla definida o un ciclo de vida.
En este contexto, la siguiente jerarquía puede ayudarle a comprender el objeto de directiva de copia de seguridad para PostgreSQL:
- Regla de política
- Regla de copia de seguridad
- Parámetro de copia de seguridad
- Tipo de copia de seguridad (una copia de seguridad completa de la base de datos en este caso)
- Almacén de datos inicial (donde las copias de seguridad llegan inicialmente)
- Desencadenador (cómo se desencadena la copia de seguridad)
- Programación
- Criterios de etiquetado predeterminados (una etiqueta predeterminada que vincula todas las copias de seguridad programadas a la regla de retención)
- Parámetro de copia de seguridad
- Regla de retención predeterminada (una regla que se aplica a todas las copias de seguridad, de forma predeterminada, en el almacén de datos inicial)
- Regla de copia de seguridad
El objeto de directiva define qué tipos de copias de seguridad se desencadenan, cómo se desencadenan (a través de una programación), con qué se etiquetan, dónde se almacenan (un almacén de datos) y el ciclo de vida de sus datos en un almacén de datos.
El objeto de PowerShell predeterminado para PostgreSQL dice que desencadena una copia de seguridad completa cada semana. Las copias de seguridad llegan a la bóveda, donde se almacenan durante tres meses.
Si desea agregar el nivel de archivo a la directiva, debe decidir cuándo se moverán los datos del almacén al archivo, cuánto tiempo permanecerán los datos en el archivo y cuál de las copias de seguridad programadas se deben etiquetar como archivables. Debe agregar una regla de retención que establezca el ciclo de vida útil de los datos de copia de seguridad desde el almacén de datos del depósito hasta el almacén de datos del archivo. La regla de retención también define cuánto tiempo permanecerán los datos de copia de seguridad en el almacén de datos de archivo. A continuación, debe agregar una etiqueta que marque las copias de seguridad programadas como aptas para archivarse.
El objeto de PowerShell resultante es el siguiente:
- Regla de política
- Regla de copia de seguridad
- Parámetro de copia de seguridad
- Tipo de copia de seguridad (una copia de seguridad completa de la base de datos en este caso)
- Almacén de datos inicial (donde las copias de seguridad llegan inicialmente)
- Desencadenador (cómo se desencadena la copia de seguridad)
- Programación
- Criterios de etiquetado predeterminados (una etiqueta predeterminada que vincula todas las copias de seguridad programadas a la regla de retención)
- Nuevos criterios de etiquetado para la nueva regla de retención con el mismo nombre
- Parámetro de copia de seguridad
- Regla de retención predeterminada (una regla que se aplica a todas las copias de seguridad, de forma predeterminada, en el almacén de datos inicial)
- Nueva regla de retención
- Ciclo vital
- Almacén de datos de origen
- Período de tiempo para la eliminación en el almacén de datos de origen
- Copia en el almacén de datos de destino
- Ciclo vital
- Regla de copia de seguridad
Recuperación de la plantilla de directiva
Para comprender los componentes internos de una directiva de copia de seguridad para la copia de seguridad de la base de datos de PostgreSQL, recupere la plantilla de directiva mediante el Get-AzDataProtectionPolicyTemplate comando . Este comando devuelve la plantilla de directiva predeterminada para un tipo de origen de datos. Usa esta plantilla para crear una nueva política.
$policyDefn = Get-AzDataProtectionPolicyTemplate -DatasourceType AzureDatabaseForPostgreSQL
$policyDefn | fl
DatasourceType : {Microsoft.DBforPostgreSQL/servers/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 qué desencadena la copia de seguridad) y un ciclo de vida (que decide cuándo eliminar, copiar o mover la copia de seguridad). En una copia de seguridad de base de datos postgreSQL, el valor predeterminado del desencadenador es un desencadenador semanal programado (una copia de seguridad cada siete días). Cada copia de seguridad se conserva 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 Edit-AzDataProtectionPolicyTriggerClientObject comando .
En el ejemplo siguiente se modifica la copia de seguridad semanal a domingo, 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 Weekly.
$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
Si desea agregar protección de archivo, debe modificar la plantilla de directiva.
La plantilla predeterminada tiene un ciclo de vida para el almacén de datos inicial en 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. Debe agregar una nueva regla de retención que defina cuándo se mueven los datos al almacén de datos de archivo. Es decir, los datos de copia de seguridad se copian primero en el almacén de datos de archivo y, a continuación, se eliminan en el almacén de datos.
Además, la regla debe definir cuánto tiempo se conservan los datos en el almacén de datos de archivo. Para crear nuevos ciclos de vida, use el New-AzDataProtectionRetentionLifeCycleClientObject comando . Para asociar esos ciclos de vida a reglas nuevas o existentes, use el Edit-AzDataProtectionPolicyRetentionRuleClientObject comando .
En el ejemplo siguiente se crea una nueva regla de retención denominada Monthly. En esta regla, la primera copia de seguridad correcta de cada mes se conserva en el almacén durante seis meses, se mueve al nivel de archivo y se mantiene en el nivel de archivo durante 24 meses.
$VaultToArchiveLifeCycle = New-AzDataProtectionRetentionLifeCycleClientObject -SourceDataStore VaultStore -SourceRetentionDurationType Months -SourceRetentionDurationCount 6 -TargetDataStore ArchiveStore -CopyOption CopyOnExpiryOption
$OnArchiveLifeCycle = New-AzDataProtectionRetentionLifeCycleClientObject -SourceDataStore ArchiveStore -SourceRetentionDurationType Months -SourceRetentionDurationCount 24
Edit-AzDataProtectionPolicyRetentionRuleClientObject -Policy $policyDefn -Name Monthly -LifeCycles $VaultToArchiveLifeCycle, $OnArchiveLifeCycleLifeCycle -IsDefault $false
Agregue una etiqueta y los criterios pertinentes
Después de crear una regla de retención, debe crear una etiqueta correspondiente en la Trigger propiedad de la directiva de copia de seguridad. Para crear nuevos criterios de etiquetado, use el New-AzDataProtectionPolicyTagCriteriaClientObject comando . Para actualizar la etiqueta existente o crear una etiqueta nueva, use el comando Edit-AzDataProtectionPolicyTagClientObject .
En el siguiente ejemplo, se crea una nueva etiqueta junto con el criterio, que es la primera copia de seguridad exitosa del mes. La etiqueta tiene el mismo nombre que la regla de retención correspondiente que se aplicará.
En este ejemplo, los criterios de etiqueta se denominan Monthly:
$tagCriteria = New-AzDataProtectionPolicyTagCriteriaClientObject -AbsoluteCriteria FirstOfMonth
Edit-AzDataProtectionPolicyTagClientObject -Policy $policyDefn -Name Monthly -Criteria $tagCriteria
Si la programación es varias copias de seguridad por semana (todos los domingos, miércoles y jueves, como se especifica en el ejemplo anterior) y desea archivar las copias de seguridad de domingo y viernes, puede cambiar los criterios de etiquetado de la siguiente manera:
$tagCriteria = New-AzDataProtectionPolicyTagCriteriaClientObject -DaysOfWeek @("Sunday", "Friday")
Edit-AzDataProtectionPolicyTagClientObject -Policy $policyDefn -Name Monthly -Criteria $tagCriteria
Creación de una nueva directiva de copia de seguridad de PostgreSQL
Después de modificar la plantilla según los requisitos, use el New-AzDataProtectionBackupPolicy comando para crear una directiva mediante la plantilla modificada:
$polOss = New-AzDataProtectionBackupPolicy -ResourceGroupName testBkpVaultRG -VaultName TestBkpVault -Name "TestOSSPolicy" -Policy $policyDefn
Configuración de la copia de seguridad
Después de crear la bóveda y la directiva, debe considerar tres puntos críticos para realizar una copia de seguridad de una base de datos en Azure Database for PostgreSQL.
Descripción de las entidades clave
Realizar copia de seguridad de la base de datos PostgreSQL
Obtener el identificador de Resource Manager de la base de datos PostgreSQL de la que se va a realizar una copia de seguridad. Este identificador actúa como identificador de la base de datos. En el ejemplo siguiente se usa una base de datos denominada empdb11 bajo el servidor testposgresqlpostgreSQL , que está presente en el grupo ossrg de recursos en otra suscripción:
$ossId = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx/resourcegroups/ossrg/providers/Microsoft.DBforPostgreSQL/servers/archive-postgresql-ccy/databases/empdb11"
Almacén de claves
El servicio Azure Backup no almacena el nombre de usuario y la contraseña para conectarse a la base de datos de PostgreSQL. En su lugar, el administrador de copia de seguridad deposita las claves en el almacén de claves. A continuación, el servicio Azure Backup accede al almacén de claves, lee las claves y accede a la base de datos. Anote el identificador secreto de la clave pertinente.
$keyURI = "https://testkeyvaulteus.vault.azure.net/secrets/ossdbkey"
Almacén de Backup
Debe conectar el almacén de Backup al servidor de PostgreSQL y, a continuación, acceder a la base de datos a través de las claves presentes en el almacén de claves. Por lo tanto, el almacén de Backup requiere acceso al servidor postgreSQL y al almacén de claves. Se concede acceso a la identidad administrada del almacén de Backup.
Obtenga información sobre los permisos adecuados que debe conceder a la identidad administrada del almacén de Backup en el servidor PostgreSQL y Azure Key Vault, donde se almacenan las claves de la base de datos.
Preparación de la solicitud
Después de establecer todos los permisos pertinentes, realice la configuración de la copia de seguridad en dos pasos:
- Prepare la solicitud mediante el almacén, la directiva y la base de datos de PostgreSQL pertinentes mediante el comando
Initialize-AzDataProtectionBackupInstance. - Envíe la solicitud para realizar una copia de seguridad de la base de datos mediante el
New-AzDataProtectionBackupInstancecomando .
$instance = Initialize-AzDataProtectionBackupInstance -DatasourceType AzureDatabaseForPostgreSQL -DatasourceLocation $TestBkpvault.Location -PolicyId $polOss[0].Id -DatasourceId $ossId -SecretStoreURI $keyURI -SecretStoreType AzureKeyVault
ConvertTo-Json -InputObject $instance -Depth 4
New-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupInstance $instance
Name Type BackupInstanceName
---- ---- ------------------
ossrg-empdb11 Microsoft.DataProtection/backupVaults/backupInstances ossrg-empdb11
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 mediante el Get-AzDataProtectionBackupInstance comando :
$instance = Get-AzDataProtectionBackupInstance -SubscriptionId "xxxx-xxx-xxx" -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Name "BackupInstanceName"
Puede especificar una regla de retención al desencadenar una copia de seguridad. Para ver las reglas de retención en una directiva, examine el objeto de directiva. En el ejemplo siguiente, se muestra la regla con el nombre Default . En este artículo se usa esa regla de ejemplo 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, use el Backup-AzDataProtectionBackupInstanceAdhoc comando :
$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 un seguimiento de todos los trabajos mediante el Get-AzDataProtectionJob comando . 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 copias de seguridad. Usa el Search-AzDataProtectionJobInAzGraph comando para buscar los trabajos pertinentes en cualquier bóveda de Backup.
$job = Search-AzDataProtectionJobInAzGraph -Subscription $sub -ResourceGroupName "testBkpVaultRG" -Vault $TestBkpVault.Name -DatasourceType AzureDisk -Operation OnDemandBackup
Contenido relacionado
- Restaure una base de datos postgreSQL mediante Azure PowerShell.
- Restaure una base de datos postgreSQL mediante Azure Portal, la CLI de Azure y la API REST.
- Administre un servidor de Azure Database for PostgreSQL mediante Azure Portal.