Descripción del registro de escritura previa
Cuando se realizan cambios en la base de datos, como INSERTS o DELETES, esos cambios se escriben primero en un registro y solo se escriben en archivos de datos en el disco. Esta operación se denomina registro de escritura anticipada, ya que los cambios se escriben en el registro, antes de confirmarlos en los archivos de datos. Si se produce un problema, como la pérdida de energía, el registro siempre contiene los datos más recientes y se puede usar para asegurarse de que la base de datos está en un estado coherente.
Una segunda ventaja es que, al escribir primero los cambios en el registro, los cambios en tablas e índices se pueden escribir en lotes, en lugar de individualmente. Este proceso reduce el número de escrituras de disco necesarias para mantener actualizadas las tablas y los índices. Las escrituras en el registro son rápidas porque se realizan secuencialmente. Las escrituras más lentas en tablas e índices se pueden realizar de forma segura en lotes, ya que todos los datos se pueden recuperar del registro. En el caso de las cargas de trabajo que normalmente implican muchas actualizaciones pequeñas, se mejora el rendimiento.
Nota
En el caso de las implementaciones locales de PostgreSQL, el archivo de registro se almacena en el directorio pg_wal . Azure Database for PostgreSQL no proporciona acceso al sistema de archivos, por lo que no tiene que preocuparse por el almacenamiento físico del archivo de registro.
Hay varios parámetros de servidor que permiten controlar cómo funciona el registro de escritura anticipada y optimizarlo para la carga de trabajo:
- commit_delay: el retraso entre la confirmación de transacción y el vaciado del registro en el disco.
- wal_buffers: número de búferes de páginas de disco en memoria compartida para el registro de escritura previa (WAL).
- max_wal_size: tamaño máximo para permitir que el WAL crezca antes de desencadenar el punto de control automático.
- wal_writer_delay: intervalo de tiempo entre vaciados de WAL realizados por el escritor de WAL.
- wal_compression: indica si las escrituras de página completa en el archivo WAL se comprimen.
- wal_level : determina la cantidad de información que se escribe en el WAL. Los valores permitidos son "REPLICA" o "LOGICAL".
Restauración a un momento dado
El propósito principal del registro de escritura anticipada (WAL) es garantizar la coherencia y la durabilidad de la base de datos si se produce un bloqueo. La versión local de PostgreSQL permite usar el registro como archivo, lo que le permite restaurar a un momento dado mediante las opciones de configuración archive_mode y archive_command.
Azure Database for PostgreSQL es un servicio administrado, que no permite el acceso al sistema de archivos subyacente. Sin embargo, incluye copias de seguridad completas automáticas del servidor, incluidas todas las bases de datos. Esta copia de seguridad permite volver a crear los datos en un momento dado. Las copias de seguridad se programan automáticamente y se realizan una vez al día. Si necesita restaurar, puede restaurar hasta el número de días especificados para conservar las copias de seguridad, hasta el máximo de 35 días. Para especificar cuánto tiempo deben conservarse las copias de seguridad:
- En Azure Portal, vaya al servidor flexible de Azure Database for PostgreSQL.
- En la sección Información general , seleccione la configuración.
- En Copias de seguridad, busque Período de retención de copia de seguridad (en días). La barra deslizante le permite seleccionar el número de días que desea que se conserven las copias de seguridad.
- Seleccione Guardar para conservar los cambios.