Variables de sesión NPS
Existen tres clases de variables de sesión NPS® que se aplican a la replicación: variables específicas de replicación, variables replicadas y variables no replicadas.
SALES.USER1(USER1)=> \setVariables de sesión NPS específicas de la replicación
- REPLICAR_SIEMPRE_POR_VALOR
El estado de la variable de sesión REPLICATE_ALWAYS_BY_VALUE determina si la replicación se realiza únicamente by-value o tanto by-value como by-sql. La configuración por defecto y, con mucho, la más común es OFF. Cuando la variable está en OFF, el sistema determina si alguna sentencia de una transacción incluye funciones no deterministas. Si una sentencia contiene funciones no deterministas, se procesan utilizando la replicación por valor (valor de cambio). Si una sentencia no los contiene, se procesa utilizando la replicación by-SQL (sentencia SQL).
Cuando la variable REPLICATE_ALWAYS_BY_VALUE está en ON, el software utiliza la replicación por valor para todas las transacciones. Hay ciertas cargas de trabajo que contienen funciones no deterministas y se beneficiarían de estar siempre replicadas por valor. El caso más común involucra transacciones de múltiples sentencias que realizan grandes cargas deterministas que son seguidas por sentencias que contienen llamadas a funciones no deterministas u otros disparadores by-value. Estos pueden generar grandes cantidades de tráfico de disco y de red que se duplica cuando el sistema opta por la replicación por valores. Los datos de carga se transfieren al gestor de colas de replicación, lo que requiere espacio en disco y ancho de banda de red. Sin embargo, debido a la replicación por valores, las mismas filas se descargan de las tablas y se duplican. Si establece el valor de la variable REPLICATE_ALWAYS_BY_VALUE en ON, los archivos de carga no se copian en el gestor de colas de replicación ni a través de la red, lo que permite ahorrar recursos. El siguiente ejemplo utiliza secuencias no deterministas:begin; INSERT INTO replTable SELECT * FROM external table ... ; INSERT INTO replTable1 SELECT * FROM external table ... ; ... INSERT INTO replTableN SELECT * FROM external table ... ; UPDATE replTable set c1 = NEXT VALUE FOR mySeq; commit;- REPLICATION_NONDETERM_CHECK (obsoleto)
- La variable REPLICATION_NONDETERM_CHECK controla las acciones que se toman en las modificaciones de datos replicados que utilizan SQL no determinista. Esta variable tiene ámbito de sesión y puede especificarse en el archivo de configuración de Postgres postgresql.conf.
Variables de sesión NPS replicadas
- enable_dsid_joins
- enable_factrel_planner
- enable_random_table_distribute
- enable_restore_mode
- enable_sequence_cachesize
- factrel_size_threshold
- max_table_versions
Variables de sesión NPS no replicadas
Todas las variables de sesión de NPS que no aparecen en ninguna de las secciones anteriores no se replican y no afectan a la replicación.