Compartir a través de


Restauración de Azure Database for PostgreSQL: servidor flexible mediante Azure PowerShell (versión preliminar)

En este artículo se explica cómo restaurar un servidor flexible de Azure Database for PostgreSQL en un servidor flexible de Azure Database for PostgreSQL con copia de seguridad de Azure Backup.

En este artículo, aprenderá a:

  • Restauración para crear un servidor flexible de PostgreSQL

  • Realizar el seguimiento del estado de la operación de restauración.

Haremos referencia a un almacén de copia de seguridad existente TestBkpVault en el grupo de recursos testBkpVaultRG en los ejemplos.

$TestBkpVault = Get-AzDataProtectionBackupVault -VaultName TestBkpVault -ResourceGroupName "testBkpVaultRG"

Restaurar para crear una nueva base de datos PostgreSQL

Configuración de permisos

El almacén de Backup usa la identidad administrada para obtener acceso a otros recursos de Azure. Para restaurar desde la copia de seguridad, la identidad administrada del almacén de Backup requiere un conjunto de permisos en la cuenta de almacenamiento a la que se restauraría el servidor.

Para asignar los permisos pertinentes para la identidad administrada asignada por el sistema del almacén en el servidor cuenta de almacenamiento de destino, consulte el conjunto de permisos necesarios para realizar una copia de seguridad de la base de datos de Azure PostgreSQL.

Para restaurar el punto de recuperación como archivos en una cuenta de almacenamiento, la identidad administrada asignada por el sistema del almacén de Backup necesita acceso a la cuenta de almacenamiento de destino.

Captura del punto de recuperación pertinente

Recupere todas las instancias mediante el comando Get-AzDataProtectionBackupInstance e identifique la instancia pertinente.

$AllInstances = Get-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name

También puede usar Az.Resourcegraph y el comando Search-AzDataProtectionBackupInstanceInAzGraph para buscar puntos de recuperación en instancias en muchos almacenes y suscripciones.

$AllInstances = Search-AzDataProtectionBackupInstanceInAzGraph -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -DatasourceType AzureDatabaseForPGFlexServer -ProtectionStatus ProtectionConfigured

Para filtrar los criterios de búsqueda, use las funcionalidades de búsqueda de cliente de PowerShell como se muestra a continuación:

Search-AzDataProtectionBackupInstanceInAzGraph -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -DatasourceType AzureDatabaseForPGFlexServer -ProtectionStatus ProtectionConfigured | Where-Object { $_.BackupInstanceName -match "testpgflex"}

Una vez identificada la instancia, capture el punto de recuperación pertinente.

$rp = Get-AzDataProtectionRecoveryPoint -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupInstanceName $AllInstances[2].BackupInstanceName

Preparación de la solicitud de restauración

Puede restaurar el punto de recuperación de una base de datos de servidor flexible de PostgreSQL como solo archivos.

Restaurar como archivos

Recupere el URI del contenedor, dentro de la cuenta de almacenamiento a la que se le asignaron permisos como se detalla arriba. Por ejemplo, un contenedor denominado testcontainerrestore en una cuenta de almacenamiento testossstorageaccount con una suscripción diferente.

$contURI = "https://testossstorageaccount.blob.core.windows.net/testcontainerrestore"

Use el comando Initialize-AzDataProtectionRestoreRequest para preparar la solicitud de restauración con todos los detalles pertinentes.

$OssRestoreAsFilesReq = Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureDatabaseForPGFlexServer -SourceDataStore VaultStore -RestoreLocation $TestBkpVault.Location -RestoreType RestoreAsFiles -RecoveryPoint $rps[0].Property.RecoveryPointId -TargetContainerURI $contURI -FileNamePrefix "testpgflex-westus_1628853549768" 

Desencadenamiento de la restauración

Use el comando Start-AzDataProtectionBackupInstanceRestore para desencadenar la restauración con la solicitud preparada anteriormente.

Start-AzDataProtectionBackupInstanceRestore -BackupInstanceName $AllInstances[2].BackupInstanceName -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Parameter $OssRestoreReq

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 los trabajos en todos los almacenes de copias de seguridad. Use el comando Search-AzDataProtectionJobInAzGraph para obtener 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

Creación de un servidor flexible a partir de una cuenta de almacenamiento restaurada

Una vez finalizada la restauración en la cuenta de almacenamiento de destino, puede utilizar la utilidad pg_restore para restaurar una base de datos de servidor flexible Azure Database para PostgreSQL desde el destino. Use el siguiente comando para conectarse a un servidor flexible de PostgreSQL existente y a una base de datos existente.

pg_restore -h <hostname> -U <username> -d <db name> -Fd -j <NUM> -C <dump directory>

-Fd: formato de directorio. -j: número de trabajos. -C: comience la salida con un comando para crear la propia base de datos y volver a ella.

Este es un ejemplo de cómo puede ser esta sintaxis:

pg_restore -h <hostname> -U <username> -j <Num of parallel jobs> -Fd -C -d <databasename> sampledb_dir_format

Si tiene más de una base de datos para restaurarla, vuelva a ejecutar el comando anterior para cada base de datos.

Además, con varios trabajos simultáneos-j, puede reducir el tiempo de restauración de una base de datos grande en un servidor de destino de varios núcleos virtuales. El número de trabajos puede ser igual o menor que el número de vCPU asignadas al servidor de destino.

Pasos siguientes