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.
Una directiva de copia de seguridad rige la retención y la programación de las copias de seguridad de base de datos de PostgreSQL en Azure Database for PostgreSQL. Azure Database for PostgreSQL ofrece retención a largo plazo de copias de seguridad de bases de datos y admite una copia de seguridad al día.
Puede reutilizar una directiva de copia de seguridad existente para configurar copias de seguridad de bases de datos de PostgreSQL en un almacén, o bien puede crear una directiva de copia de seguridad para un almacén de Azure Recovery Services mediante la API REST de Protección de datos para Azure Backup. En este artículo, creará una política de copia de seguridad.
Descripción de las directivas 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 primero al almacén pueden trasladarse al nivel de archivo de acuerdo con 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 directiva
- 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 activan, cómo se activan (a través de una programación), cómo se etiquetan, dónde se almacenan (en un almacén de datos) y el ciclo de vida de los 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 defina el ciclo de vida de los datos de copia de seguridad del almacén de datos del almacén al almacén de datos de 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 directiva
- 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
Crear una directiva
Importante
Actualmente, no se admite la actualización o modificación de una directiva existente. En su lugar, cree una nueva directiva con los detalles necesarios y asígnela a la instancia de copia de seguridad pertinente.
Para crear una directiva de copia de seguridad, use la siguiente PUT operación:
PUT https://management.azure.com/Subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DataProtection/backupVaults/{vaultName}/backupPolicies/{policyName}?api-version=2021-01-01
El URI proporciona los valores {policyName} y {vaultName}. El cuerpo de la solicitud proporciona información adicional.
Creación del cuerpo de la solicitud
Para crear una directiva para la copia de seguridad de PostgreSQL, el cuerpo de la solicitud necesita los siguientes componentes:
| Nombre | Obligatorio | Tipo | Descripción |
|---|---|---|---|
properties |
true |
BaseBackupPolicy: BackupPolicy |
propiedades de BaseBackupPolicyResource |
Para obtener la lista completa de definiciones en el cuerpo de la solicitud, consulte las directivas de copia de seguridad de la API REST.
Cuerpo de solicitud de ejemplo
La directiva indica:
- El desencadenador está programado para una copia de seguridad semanal en la hora de inicio elegida (hora +
P1W). - El almacén de datos es un repositorio seguro, porque las copias de seguridad se transfieren directamente al repositorio.
- Las copias de seguridad se conservan en la bóveda durante tres meses (
P3M).
{
"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"
}
]
}
Importante
Los formatos de hora solo admiten DateTime. No se admite Time. La hora del día indica la hora de inicio de la copia de seguridad, no la hora de finalización.
Vamos a actualizar el JSON anterior con dos cambios:
- Agregue copias de seguridad en varios días de la semana.
- Agregue un almacén de datos de archivo para la retención a largo plazo de copias de seguridad de bases de datos de PostgreSQL.
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 correspondientes a esas fechas se consideran 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.
Desencadenador programado
"trigger": {
"objectType": "ScheduleBasedTriggerContext",
"schedule": {
"repeatingTimeIntervals": [
"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"
],
"timeZone": "UTC"
}
Si desea agregar la protección de archivo, debe modificar el JSON de la directiva.
Ciclo de vida de retención
El JSON anterior tiene un ciclo de vida para el almacenamiento de datos inicial según 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 luego se eliminan en el almacén de datos de la bóveda.
Además, la regla debe definir las duraciones para mantener los datos en el almacén de datos de archivo. Vamos a asignar un nombre a esta nueva regla Monthly. Define que las copias de seguridad se deben conservar en el almacén de datos de la bóveda durante 6 meses y luego copiadas al almacén de datos de archivo. A continuación, elimine las copias de seguridad en el almacén de datos de bóveda y conserve los datos durante 24 meses en el almacén de datos de archivo. Por último, elimine los datos del almacén de datos de archivo.
"lifecycles": [
{
"deleteAfter": {
"duration": "P3M",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
},
"targetDataStoreCopySettings": []
}
],
"name": "Default",
"objectType": "AzureRetentionRule"
},
{
"isDefault": false,
"lifecycles": [
{
"deleteAfter": {
"duration": "P6M",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
},
"targetDataStoreCopySettings": {
"copyAfter": {
"objectType": "CopyOnExpiryOption"
},
"dataStore": {
"dataStoreType": "ArchiveStore",
"objectType": "DataStoreInfoBase"
}
}
},
{
"deleteAfter": {
"duration": "P24M",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "ArchiveStore",
"objectType": "DataStoreInfoBase"
},
"targetDataStoreCopySettings": null
}
],
"name": "Monthly",
"objectType": "AzureRetentionRule"
}
Criterios de etiquetado
Cada vez que agregue una regla de retención, debe añadir una etiqueta correspondiente en la propiedad Trigger de la directiva. En el ejemplo siguiente se crea una nueva etiqueta junto con los criterios (que es la primera copia de seguridad correcta del mes) con exactamente el mismo nombre que la regla de retención correspondiente que se va a aplicar.
En este ejemplo, los criterios de etiqueta deben denominarse Monthly:
{
"criteria": [
{
"absoluteCriteria": [
"FirstOfMonth"
],
"objectType": "ScheduleBasedBackupCriteria"
}
],
"isDefault": false,
"tagInfo": {
"tagName": "Monthly"
},
"taggingPriority": 15
}
Después de incluir todos los cambios, el JSON de la directiva aparece de la siguiente manera:
{
"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-15T22:00:00+00:00/P1W",
"R/2021-08-18T22:00:00+00:00/P1W",
"R/2021-08-20T22:00:00+00:00/P1W"
],
"timeZone": "UTC"
},
"taggingCriteria": [
{
"isDefault": true,
"tagInfo": {
"id": "Default_",
"tagName": "Default"
},
"taggingPriority": 99
},
{
"criteria": [
{
"absoluteCriteria": [
"FirstOfMonth"
],
"objectType": "ScheduleBasedBackupCriteria"
}
],
"isDefault": false,
"tagInfo": {
"tagName": "Monthly"
},
"taggingPriority": 15
}
]
}
},
{
"isDefault": true,
"lifecycles": [
{
"deleteAfter": {
"duration": "P3M",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
},
"targetDataStoreCopySettings": []
}
],
"name": "Default",
"objectType": "AzureRetentionRule"
},
{
"isDefault": false,
"lifecycles": [
{
"deleteAfter": {
"duration": "P6M",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
},
"targetDataStoreCopySettings": {
"copyAfter": {
"objectType": "CopyOnExpiryOption"
},
"dataStore": {
"dataStoreType": "ArchiveStore",
"objectType": "DataStoreInfoBase"
}
}
},
{
"deleteAfter": {
"duration": "P24M",
"objectType": "AbsoluteDeleteOption"
},
"sourceDataStore": {
"dataStoreType": "ArchiveStore",
"objectType": "DataStoreInfoBase"
},
"targetDataStoreCopySettings": null
}
],
"name": "Monthly",
"objectType": "AzureRetentionRule"
}
]
}
Para obtener más información sobre la creación de directivas, consulte Creación de una directiva de copia de seguridad.
Comprobación de la respuesta
La creación o actualización de la directiva de copia de seguridad es una operación sincrónica. Una vez que la operación se realiza correctamente, devuelve la siguiente respuesta de estado con el contenido de la directiva en el cuerpo de la respuesta.
| Nombre | Tipo | Descripción |
|---|---|---|
200 OK |
BaseBackupPolicyResource |
La operación se ha completado. |
Respuesta de ejemplo
{
"properties": {
"policyRules": [
{
"backupParameters": {
"backupType": "Full",
"objectType": "AzureBackupParams"
},
"trigger": {
"schedule": {
"repeatingTimeIntervals": [
"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"
],
"timeZone": "UTC"
},
"taggingCriteria": [
{
"tagInfo": {
"tagName": "Monthly",
"id": "Monthly_"
},
"taggingPriority": 15,
"isDefault": false,
"criteria": [
{
"absoluteCriteria": [
"FirstOfMonth"
],
"objectType": "ScheduleBasedBackupCriteria"
}
]
},
{
"tagInfo": {
"tagName": "Default",
"id": "Default_"
},
"taggingPriority": 99,
"isDefault": true
}
],
"objectType": "ScheduleBasedTriggerContext"
},
"dataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
},
"name": "BackupWeekly",
"objectType": "AzureBackupRule"
},
{
"lifecycles": [
{
"deleteAfter": {
"objectType": "AbsoluteDeleteOption",
"duration": "P6M"
},
"targetDataStoreCopySettings": [
{
"dataStore": {
"dataStoreType": "ArchiveStore",
"objectType": "DataStoreInfoBase"
},
"copyAfter": {
"objectType": "CopyOnExpiryOption"
}
}
],
"sourceDataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
}
},
{
"deleteAfter": {
"objectType": "AbsoluteDeleteOption",
"duration": "P24M"
},
"targetDataStoreCopySettings": [],
"sourceDataStore": {
"dataStoreType": "ArchiveStore",
"objectType": "DataStoreInfoBase"
}
}
],
"isDefault": false,
"name": "Monthly",
"objectType": "AzureRetentionRule"
},
{
"lifecycles": [
{
"deleteAfter": {
"objectType": "AbsoluteDeleteOption",
"duration": "P3M"
},
"targetDataStoreCopySettings": [],
"sourceDataStore": {
"dataStoreType": "VaultStore",
"objectType": "DataStoreInfoBase"
}
}
],
"isDefault": true,
"name": "Default",
"objectType": "AzureRetentionRule"
}
],
"datasourceTypes": [
"Microsoft.DBforPostgreSQL/servers/databases"
],
"objectType": "BackupPolicy"
},
"id": "/subscriptions/ef4ab5a7-c2c0-4304-af80-af49f48af3d1/resourceGroups/DebRG1/providers/Microsoft.DataProtection/backupVaults/DebBackupVault/backupPolicies/OssPolicy1",
"name": "OssPolicy1",
"type": "Microsoft.DataProtection/backupVaults/backupPolicies"
}
Contenido relacionado
- Realice una copia de seguridad de discos de Azure mediante la API REST de Protección de datos.
- API REST de Azure Backup Data Protection.
- Referencia de la API REST de Azure.
- Realice un seguimiento de los trabajos de copia de seguridad y restauración mediante la API REST en Azure Backup.
- Administre un servidor de Azure Database for PostgreSQL mediante Azure Portal.