Configuration parameter and table setting requirements v7
Depending on the multi-master replication system environment, you might need certain configuration settings for the conflict resolution process to operate properly.
The following are required only for the log-based method. These do not apply to the trigger-based method.
track_commit_timestamp. Any Postgres 10 and later database server containing a primary node must have itstrack_commit_timestampconfiguration parameter enabled. Thetrack_commit_timestampparameter is located in thepostgresql.conffile. Iftrack_commit_timestampisn't enabled, then update/update conflicts aren't automatically resolved such as by using the earliest timestamp of the conflicting transactions. As a result, these conflicting transactions are left in a pending state. See Automatic conflict resolution example for an example of how update/update conflicts are automatically resolved.REPLICA IDENTITY FULL. Ifupdate/update conflictsare expected to occur on a given publication table, then you must set theREPLICA IDENTITYsetting for the table toFULLon every primary node. The case where update transactions occur on separate primary nodes but updating different columns in the same row isn't considered an update/update conflict. However, ifREPLICA IDENTITYisn't set toFULL, then this case is recorded as an update/update conflict.
Set the REPLICA IDENTITY option to FULL using the ALTER TABLE command as shown by the following:
ALTER TABLE schema.table_name REPLICA IDENTITY FULL
The following is an example of the ALTER TABLE command:
ALTER TABLE edb.dept REPLICA IDENTITY FULL;
You can display the REPLICA IDENTITY setting with the PSQL utility using the \d+ command:
edb=# \d+ edb.dept
Table "edb.dept"
Column | Type | Modifiers | Storage | Stats target | Description
--------+-----------------------+-----------+----------+--------------+-------------
deptno | numeric(2,0) | not null | main | |
dname | character varying(14) | | extended | |
loc | character varying(13) | | extended | |
Indexes:
"dept_pk" PRIMARY KEY, btree (deptno)
"dept_dname_uq" UNIQUE CONSTRAINT, btree (dname)
Referenced by:
TABLE "emp" CONSTRAINT "emp_ref_dept_fk" FOREIGN KEY (deptno) REFERENCES dept(deptno)
TABLE "jobhist" CONSTRAINT "jobhist_ref_dept_fk" FOREIGN KEY (deptno) REFERENCES dept(deptno) ON DELETE SET NULL
Replica Identity: FULLNote
In addition to conflict resolution requirements, you might need the REPLICA IDENTITY FULL setting on publication tables for other reasons in Replication Server. See Table settings and restrictions for table filters for additional requirements.