Configuración de los ajustes de parámetros para la extensión pgactive - Amazon Relational Database Service

Configuración de los ajustes de parámetros para la extensión pgactive

Puede utilizar la siguiente consulta para ver todos los parámetros asociados a la extensión pgactive.

app=> SELECT * FROM pg_settings WHERE name LIKE 'pgactive.%';

Puede configurar la extensión pgactive mediante varios parámetros. Estos parámetros se pueden configurar mediante AWS Management Console o la interfaz de la CLI de AWS.

Parámetros de extensión de pgactive principales

La siguiente tabla proporciona una referencia para los principales parámetros de la extensión pgactive:

Parámetro

Unidad

Predeterminado/a

Descripción

pgactive.conflict_logging_include_tuples

boolean

Registra la información completa de la tupla de la extensión pgactive.

nota

Es necesario reiniciar el servidor para que se apliquen los cambios.

pgactive.log_conflicts_to_table

boolean

Determina si la extensión pgactive registra los conflictos detectados en la tabla pgactive.pgactive_conflict_history. Para obtener más información, consulte registro de conflictos.

nota

Es necesario reiniciar el servidor para que se apliquen los cambios.

pgactive.log_conflicts_to_logfile

boolean

Determina si la extensión pgactive registra los conflictos detectados en el archivo de registro de PostgreSQL. Para obtener más información, consulte registro de conflictos.

nota

Es necesario reiniciar el servidor para que se apliquen los cambios.

pgactive.synchronous_commit

boolean

off

Determina el comportamiento de confirmación de los trabajadores de aplicación de pgactive. Cuando está desactivado, los trabajadores de aplicación realizan confirmaciones asíncronas, lo que mejora el rendimiento de PostgreSQL durante las operaciones de aplicación, pero retrasa las confirmaciones de reproducción hacia el nodo ascendente. Establecerlo en off siempre es seguro y no provocará pérdidas ni omisiones de transacciones. Esta configuración solo afecta al momento de las descargas a disco en el nodo descendente y cuándo se envían las confirmaciones al nodo ascendente. El sistema retrasa el envío de las confirmaciones de vaciado de reproducción hasta que las confirmaciones se vuelcan al disco mediante operaciones no relacionadas, como puntos de control o trabajos periódicos. Sin embargo, si el nodo ascendente tiene el nodo descendente en synchronous_standby_names, establecerlo en off hace que las confirmaciones sincrónicas en el nodo ascendente tarden más en informar del éxito al cliente. En este caso, establezca el parámetro en on.

nota

Incluso cuando este parámetro se establece en on con nodos en synchronous_standby_names, pueden producirse conflictos de replicación en las configuraciones activo-activo. Esto se debe a que el sistema carece de bloqueo entre nodos y de gestión global de instantáneas, lo que permite que las transacciones concurrentes en distintos nodos modifiquen la misma tupla. Además, las transacciones solo comienzan a replicarse después de confirmarse en el nodo ascendente. La habilitación de la confirmación sincrónica no transforma la extensión pgactive en un sistema siempre coherente.

pgactive.temp_dump_directory

string

Define la ruta de almacenamiento temporal necesaria para las operaciones de clonación de bases de datos durante la configuración inicial. En este directorio debe poder escribir el usuario de postgres y debe tener suficiente espacio de almacenamiento para contener un volcado completo de la base de datos. El sistema utiliza esta ubicación solo durante la configuración inicial de la base de datos con operaciones de copia lógica. Este parámetro no lo usa pgactive_init_copy command.

pgactive.max_ddl_lock_delay

milliseconds

-1

Especifica el tiempo máximo de espera para el bloqueo DDL antes de interrumpir por la fuerza las transacciones de escritura simultáneas. El valor predeterminado es -1, que adopta el valor establecido en max_standby_streaming_delay. Este parámetro acepta unidades de tiempo. Por ejemplo, puede configurarlo en 10 s para 10 segundos. Durante este periodo de espera, el sistema intenta adquirir bloqueos DDL mientras espera a que las transacciones de escritura en curso se confirmen o se reviertan. Para obtener más información, consulte Bloqueos DDL.

pgactive.ddl_lock_timeout

milliseconds

-1

Especifica cuánto tiempo espera un intento de bloqueo DDL para obtener el bloqueo. El valor predeterminado es -1, que utiliza el valor especificado en lock_timeout. Puede configurar este parámetro mediante unidades de tiempo como 10 s para 10 segundos. Este temporizador solo controla el periodo de espera para obtener un bloqueo DDL. Una vez que el sistema obtiene el bloqueo e inicia la operación DDL, el temporizador se detiene. Este parámetro no limita la duración total que puede mantenerse un bloqueo DDL ni el tiempo total de la operación DDL. Para controlar la duración total de la operación, utilice statement_timeout en su lugar. Para obtener más información, consulte Bloqueos DDL.

pgactive.debug_trace_ddl_locks_level

boolean

Invalida el nivel de registro de depuración predeterminado para las operaciones de bloqueo DDL en la extensión pgactive. Cuando se configura, esta configuración hace que los mensajes relacionados con el bloqueo DDL se emitan en el nivel de depuración LOG en lugar de en su nivel predeterminado. Utilice este parámetro para supervisar la actividad de bloqueo DDL sin activar los niveles de registro detallados DEBUG1 o DEBUG2 en todo el servidor.

Niveles de registro disponibles, en orden creciente de detalle:

  • none: los mensajes de bloqueo DDL aparecen solo en los niveles de registro del servidor DEBUG1 e inferiores.

  • statement: agrega la salida LOG para los intentos de adquisición de bloqueos DDL.

  • acquire_release: registra los eventos de adquisición, liberación y rechazo de bloqueos, y las aplicaciones de nodos del mismo nivel de bloqueos DDL remotos.

  • peers: proporciona detalles adicionales sobre las negociaciones de bloqueos DDL entre nodos del mismo nivel.

  • debug: registra todas las actividades relacionadas con los bloqueos DDL en el nivel de LOG.

Para obtener más información acerca de las opciones de supervisión, consulte Supervisión de bloqueos DDL globales.

nota

Los cambios en esta configuración surten efecto al volver a cargar la configuración. No es necesario reiniciar el servidor.

Parámetros de extensión de pgactive adicionales

La siguiente tabla presenta las opciones de configuración interna y las que se utilizan con menos frecuencia disponibles para la extensión pgactive.

Parámetro

Unidad

Predeterminado/a

Descripción

pgactive.debug_apply_delay

integer

Establece un retraso de aplicación (en milisegundos) para las conexiones configuradas que no tienen un retraso de aplicación explícito en su entrada pgactive.pgactive_connections. Este retraso se establece durante la creación o la unión del nodo, y pgactive no reproducirá una transacción en los nodos del mismo nivel hasta que hayan transcurrido al menos el número especificado de milisegundos desde que se confirmó.

Se utiliza principalmente para simular redes de alta latencia en entornos de prueba para facilitar la creación de conflictos. Por ejemplo, con un retraso de 500 ms en los nodos A y B, dispone de al menos 500 ms para realizar una inserción conflictiva en el nodo B tras insertar un valor en el nodo A.

nota

Requiere una recarga del servidor o un reinicio de los trabajadores de aplicación para que surta efecto.

pgactive.connectability_check_duration

integer

Especifica la duración (en segundos) durante la cual un trabajador de base de datos intenta establecer conexiones durante los intentos erróneos. El trabajador realiza un intento de conexión por segundo hasta que tiene éxito o alcanza este valor de tiempo de espera. Esta configuración resulta útil cuando el motor de base de datos se inicia antes de que el trabajador esté preparado para establecer conexiones.

pgactive.skip_ddl_replication

boolean

on

Controla cómo se replican o gestionan los cambios de DDL en Amazon RDS con pgactive habilitado. Cuando se establece en on, el nodo procesa los cambios de DDL como un nodo no pgactive. Los siguientes requisitos se aplican al trabajar con este parámetro:

  • Los nodos nuevos no pueden unirse a un grupo pgactive si su valor de skip_ddl_replication difiere del nodo ascendente.

  • Los nodos existentes no pueden iniciar trabajadores de pgactive si el valor de los parámetros no coincide con el nodo ascendente.

  • Todos los miembros de pgactive deben usar el mismo valor de parámetro.

Puede modificar este parámetro de dos formas con privilegios de superusuario: de forma global o local (nivel de sesión).

nota

Si se cambia este parámetro de forma incorrecta, se pueden interrumpir las configuraciones de replicación.

pgactive.do_not_replicate

boolean

Este parámetro es solo para uso interno. Cuando se establece este parámetro en una transacción, los cambios no se replican en otros nodos del clúster de base de datos.

nota

Si se cambia este parámetro de forma incorrecta, se pueden interrumpir las configuraciones de replicación.

pgactive.discard_mismatched_row_attributes

boolean

Este parámetro está destinado solo a uso especializado. Recomendamos usar este parámetro solo para solucionar problemas de replicación específicos. Utilice este parámetro cuando:

  • El flujo de replicación entrante contiene filas con más columnas que la tabla local.

  • Estas filas remotas contienen valores que no son nulos.

Esta configuración invalida el siguiente mensaje de error y permite que surja una divergencia de datos para permitir que la replicación continúe: cannot right-pad mismatched attributes; attno %u is missing in local table and remote row has non-null, non-dropped value for this attribute

nota

Si se cambia este parámetro de forma incorrecta, se pueden interrumpir las configuraciones de replicación.

pgactive.debug_trace_replay

boolean

Cuando se establece en on, emite un mensaje de registro para cada acción remota que se aplique posteriormente al proceso de los trabajadores. Los registros incluyen:

  • Cambio de tipo

  • Nombre de la tabla afectada

  • Número de cambios desde el inicio de la transacción

  • LSN de confirmación de transacción

  • Marca temporal de confirmación

  • Identificador de nodo ascendente

  • Identificador de nodo de reenvío (si corresponde)

Los registros también capturan los comandos DDL en cola y las tablas descartadas.

para>

De forma predeterminada, los registros no incluyen el contenido de los campos de fila. Para incluir valores de fila en los registros, debe volver a compilarlos con los siguientes indicadores habilitados:

  • VERBOSE_INSERT

  • VERBOSE_UPDATE

  • VERBOSE_DELETE

nota

La habilitación de esta configuración de registro puede afectar al rendimiento. Recomendamos habilitarla solo cuando sea necesario para solucionar problemas. Los cambios en esta configuración surten efecto al volver a cargar la configuración. No es necesario reiniciar el servidor.

pgactive.extra_apply_connection_options

Puede configurar los parámetros de conexión para todas las conexiones de nodos del mismo nivel con los nodos de pgactive. Estos parámetros controlan ajustes como keepalive y los modos SSL. De forma predeterminada, pgactive utiliza los siguientes parámetros de conexión:

  • connect_timeout=30

  • keepalives=1

  • keepalives_idle=20

  • keepalives_interval=20

  • keepalives_count=5

Para invalidar los parámetros predeterminados, utilice el siguiente comando similar:

pgactive.extra_apply_connection_options = 'keepalives=0'

Las cadenas de conexión de los nodos individuales tienen prioridad sobre estas configuraciones y sobre las opciones de conexión integradas de pgactive. Para obtener más información acerca de los formatos de cadenas de conexión, consulte cadenas de conexión libpq.

Recomendamos mantener habilitada la configuración predeterminada de keepalive. Desactive keepalive solo si tiene problemas al realizar grandes transacciones a través de redes poco fiables.

nota

Recomendamos mantener habilitada la configuración predeterminada de keepalive. Desactive keepalive solo si tiene problemas al realizar grandes transacciones a través de redes poco fiables. Los cambios en esta configuración surten efecto al volver a cargar la configuración. No es necesario reiniciar el servidor.

pgactive.init_node_parallel_jobs (int)

Especifica el número de trabajos paralelos que pg_dump y pg_restore pueden utilizar durante las uniones de nodos lógicos con la función pgactive.pgactive_join_group.

Los cambios en esta configuración surten efecto al volver a cargar la configuración. No es necesario reiniciar el servidor.

pgactive.max_nodes

int

4

Especifica el número máximo de nodos permitidos en un grupo de extensiones de pgactive. El valor predeterminado es 4 nodos. Debe tener en cuenta lo siguiente al configurar el valor de este parámetro:

  • Todos los nodos de un grupo de extensión de pgactive deben usar el mismo valor de parámetro.

  • Un nodo nuevo no se puede unir si el valor de su parámetro es diferente al del nodo ascendente.

  • Los nodos existentes no pueden iniciar los trabajadores de extensión de pgactive si el valor de sus parámetros es diferente al del nodo ascendente.

  • Los grupos más grandes requieren un esfuerzo adicional de supervisión y mantenimiento, por lo que debe establecer el valor de este parámetro con prudencia.

Puede configurar este parámetro de dos maneras: en el archivo de configuración, mediante el comando ALTER SYSTEM SET

El valor predeterminado de este parámetro es 4, lo que significa que puede haber un máximo de 4 nodos permitidos en el grupo de extensiones de pgactive en cualquier momento.

nota

El cambio surtirá efecto después de reiniciar el servidor.

pgactive.permit_node_identifier_getter_function_creation

boolean

Este parámetro está destinado solo a uso interno. Cuando está habilitada, la extensión pgactive permite la creación de la función de obtención del identificador de nodo de pgactive.