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 restaurar Azure Database for PostgreSQL: servidor flexible mediante Azure PowerShell.
Nota:
La opción Recuperación de ubicación original (OLR) no es compatible con las bases de datos PaaS. En su lugar, use el Alternate-Location Recovery (ALR) para restaurar desde un punto de recuperación y crear una nueva base de datos en el mismo o en otro servidor Flexible de Azure PostgreSQL, manteniendo tanto las bases de datos de origen como las restauradas.
Vamos a usar un almacén de Backup existente TestBkpVault, bajo el grupo de recursos testBkpVaultRG en los ejemplos.
$TestBkpVault = Get-AzDataProtectionBackupVault -VaultName TestBkpVault -ResourceGroupName "testBkpVaultRG"
Configuración de permisos para la restauración de Servidor Flexible de PostgreSQL
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 copias de seguridad requiere un conjunto de permisos sobre el servidor flexible de Azure PostgreSQL al que se debe restaurar la base de datos.
Para asignar los permisos pertinentes para la identidad administrada asignada por el sistema del almacén en el servidor flexible de PostgreSQL de destino, compruebe el conjunto de permisos necesarios para realizar copias de seguridad de la base de datos de Azure PostgreSQL: servidor flexible.
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.
Recupera el punto de recuperación relevante de PostgreSQL - servidor flexible
Capture todas las instancias mediante el cmdlet Get-AzDataProtectionBackupInstance e identifique la instancia pertinente.
$AllInstances = Get-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name
También puede usar Az.Resourcegraph y el cmdlet Search-AzDataProtectionBackupInstanceInAzGraph para buscar puntos de recuperación entre 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 siguientes funcionalidades de búsqueda de cliente de PowerShell:
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 para PostgreSQL: servidor flexible
Puede restaurar el punto de recuperación de una base de datos PostgreSQL Flexible Server solo como archivos.
Restaurar como archivos
Capture el identificador uniforme de recursos (URI) del contenedor, dentro de la cuenta de almacenamiento a la que se asignaron permisos. Por ejemplo, un contenedor denominado testcontainerrestore en una cuenta testossstorageaccount de almacenamiento con una suscripción diferente.
$contURI = "https://testossstorageaccount.blob.core.windows.net/testcontainerrestore"
Use el cmdlet 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 "empdb11_postgresql-westus_1628853549768"
Nota:
Una vez completada la restauración en la cuenta de almacenamiento de destino, puede usar la utilidad pg_restore para restaurar una base de datos de Servidor flexible de Azure Database for PostgreSQL desde el destino.
Para conectarse a un servidor flexible de PostgreSQL existente y una base de datos existente, use el siguiente cmdlet:
pg_restore -h <hostname> -U <username> -d <db name> -Fd -j <NUM> -C <dump directory>
En este script:
-
-Fd: el formato de directorio. -
-j: el número de trabajos. -
-C: inicia la salida con un cmdlet para crear la propia base de datos y, a continuación, volver a conectarse a ella.
En el ejemplo siguiente se muestra cómo puede aparecer la 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 cmdlet anterior para cada base de datos.
Además, mediante el uso de varios trabajos -jsimultáneos, 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 la cantidad de trabajos asignados al servidor de destino vCPUs.
Iniciar la restauración para PostgreSQL - servidor flexible
Para desencadenar la operación de restauración con la solicitud preparada, use el cmdlet .Start-AzDataProtectionBackupInstanceRestore
Start-AzDataProtectionBackupInstanceRestore -BackupInstanceName $AllInstances[2].BackupInstanceName -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Parameter $OssRestoreReq
Seguimiento de trabajos para la restauración del servidor flexible de PostgreSQL
Realice un seguimiento de todos los trabajos mediante el Get-AzDataProtectionJob cmdlet . 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 cmdlet Search-AzDataProtectionJobInAzGraph para obtener el trabajo relevante que se encuentra en todos los almacenes de copia de seguridad.
$job = Search-AzDataProtectionJobInAzGraph -Subscription $sub -ResourceGroupName "testBkpVaultRG" -Vault $TestBkpVault.Name -DatasourceType AzureDatabaseForPGFlexServer -Operation OnDemandBackup