Configuración de copias de seguridad y restauraciones continuas para el EDB Postgres servicio
Puede configurar EDB Postgres para permitir la copia de seguridad y la restauración con S3 almacenamiento.
Creación de una copia de seguridad con S3 almacenamiento
Puede crear una copia de seguridad de su instancia de base de datos en S3 almacenamiento.
- Establezca las variables de entorno siguientes:
- Establezca la variable de entorno EDB_INSTANCE_NAME con el nombre de la instancia de base de datos para la que desea crear una copia de seguridad.
export EDB_INSTANCE_NAME=<name> - Establezca la variable de entorno BACKUP_EDB_INSTANCE_NAME con el nombre de la instancia de la base de datos de copia de seguridad.
export BACKUP_EDB_INSTANCE_NAME=<name> - Establezca la variable de entorno EDB_INSTANCE_TYPE en el tipo EDB Postgres de base de datos. Los valores válidos son
EnterpriseoStandard.export EDB_INSTANCE_TYPE=<EDBInstanceType>
- Establezca la variable de entorno EDB_INSTANCE_NAME con el nombre de la instancia de base de datos para la que desea crear una copia de seguridad.
- Cree un secreto con credenciales de acceso al S3 almacenamiento.
kubectl create secret generic s3-creds \ --from-literal=ACCESS_KEY_ID=<access key> \ --from-literal=ACCESS_SECRET_KEY=<secret key> # --from-literal=ACCESS_SESSION_TOKEN=<session token> # if required - Modifique y aplique su archivo YAML de recursos personalizados de la base de datos con la siguiente
backupconfiguración bajo laspecclave:apiVersion: edb.cpd.ibm.com/v1 kind: CPDEdbInstance metadata: name: ${EDB_INSTANCE_NAME} spec: type: ${EDB_INSTANCE_TYPE} imageRepository: "cp.stg.icr.io/cp/cpd" # Travis pipeline will insert here members: 1 version: "12.9" blockStorageClass: nfs-client shutdown: false storageSize: 100Gi resources: requests: cpu: 1 memory: 4Gi limits: cpu: 1 memory: 4Gi backup: barmanObjectStore: destinationPath: <destination_path> endpointURL: <endpoint_url> s3Credentials: accessKeyId: key: ACCESS_KEY_ID name: <S3_secret_name> inheritFromIAMRole: false secretAccessKey: key: ACCESS_SECRET_KEY name: <S3_secret_name> - Ejecute el siguiente comando para aplicar una configuración de copia de seguridad:
cat <<EOF | oc apply -n ${PROJECT_CPD_INST_OPERANDS} -f - apiVersion: postgresql.k8s.enterprisedb.io/v1 kind: Backup metadata: name: ${BACKUP_EDB_INSTANCE_NAME} labels: icpdsupport/ignore-on-nd-backup: 'true' velero.io/exclude-from-backup: 'true' icpdsupport/addOnId: edb spec: cluster: name: ${EDB_INSTANCE_NAME}-edb-db EOF - Comprueba que tu ubicación S3 de almacenamiento contiene una copia de seguridad de tu instancia. La copia de seguridad se ubicará en la ruta de destino con las carpetas
walsybasecorrespondientes.
Restaurar a partir de una copia de seguridad
Puede restaurar datos desde una copia de seguridad de su instancia de base de datos que se encuentra en S3 almacenamiento.
- Asegúrese de que el secreto que creó al implementar la instancia de base de datos de respaldo exista en el espacio de nombres. Si no es así, tendrás que volver a crear el secreto. Asegúrate de que la configuración de la copia de seguridad se aplica a tu proyecto. Si no es así, deberá volver a aplicar la configuración de respaldo.
- Para restaurar su instancia de base de datos EDB desde una copia de seguridad almacenada en S3 storage, modifique y aplique la configuración de recursos personalizada de la siguiente manera:
apiVersion: edb.cpd.ibm.com/v1 kind: CPDEdbInstance metadata: name: ${EDB_INSTANCE_NAME} spec: type: ${EDB_INSTANCE_TYPE} imageRepository: "cp.stg.icr.io/cp/cpd" # Travis pipeline will insert here members: 1 version: "12.9" blockStorageClass: nfs-client shutdown: false storageSize: 100Gi resources: requests: cpu: 1 memory: 4Gi limits: cpu: 1 memory: 4Gi recovery: source: ${EDB_INSTANCE_NAME}-edb-db externalClusters: - name: ${EDB_INSTANCE_NAME}-edb-db barmanObjectStore: destinationPath: <destination_path> # Replace with your S3 url endpointURL: <endpoint_url> s3Credentials: accessKeyId: key: ACCESS_KEY_ID name: <S3_secret_name> secretAccessKey: key: ACCESS_SECRET_KEY name: <S3_secret_name> wal: maxParallel: 8