Variables de la session NPS
Il existe trois catégories de variables de session NPS® qui s'appliquent à la réplication : les variables spécifiques à la réplication, les variables répliquées et les variables non répliquées.
SALES.USER1(USER1)=> \setVariables de session NPS spécifiques à la réplication
- RÉPLIQUER_TOUJOURS_PAR_VALEUR
L'état de la variable de session REPLICATE_ALWAYS_BY_VALUE détermine si la réplication se fait uniquement par valeur ou à la fois par valeur et by-sql. Le réglage par défaut et de loin le plus courant est OFF. Lorsque la variable est désactivée (OFF), le système détermine si une instruction d'une transaction comprend des fonctions non déterministes. Si une déclaration contient des fonctions non déterministes, elles sont traitées en utilisant la réplication par valeur (valeur de modification). Si une déclaration ne les contient pas, elle est traitée en utilisant la réplication by-SQL (déclaration SQL).
Lorsque la variable REPLICATE_ALWAYS_BY_VALUE est activée, le logiciel utilise la réplication par valeur pour toutes les transactions. Certaines charges de travail contiennent des fonctions non déterministes et gagneraient à être toujours répliquées par valeur. Le cas le plus courant est celui des transactions à énoncés multiples qui effectuent des charges déterministes importantes, suivies d'énoncés contenant des appels de fonctions non déterministes ou d'autres déclencheurs de valeurs partielles. Ceux-ci peuvent générer de grandes quantités de trafic sur le disque et le réseau, qui sont dupliquées lorsque le système choisit la réplication par valeur. Les données de charge sont transférées au gestionnaire de file d'attente de réplication, ce qui nécessite de l'espace disque et de la bande passante. Cependant, en raison de la réplication par valeur, les mêmes lignes sont déchargées des tables et dupliquées. Si vous attribuez la valeur ON à la variable REPLICATE_ALWAYS_BY_VALUE, les fichiers de chargement ne sont pas copiés dans le gestionnaire de file d'attente de réplication ou sur le réseau, ce qui permet d'économiser des ressources. L'exemple suivant utilise des séquences non déterministes :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 (obsolète)
- La variable REPLICATION_NONDETERM_CHECK contrôle les actions qui sont prises sur les modifications de données répliquées qui utilisent un langage SQL non déterministe. Cette variable a une portée de session et vous pouvez la spécifier dans le fichier de configuration de postgresql.conf Postgres.
Variables de session NPS répliquées
- enable_dsid_joins
- enable_factrel_planner
- enable_random_table_distribute
- enable_restore_mode
- enable_sequence_cachesize
- factrel_size_threshold
- max_table_versions
Variables de session NPS non répliquées
Toutes les variables de session NPS qui ne figurent pas dans l'une ou l'autre des sections précédentes ne sont pas répliquées et n'affectent pas la réplication.