ACE Director Alum Daniel Morgan, founder of Morgan's Library, is scheduling
complimentary technical Workshops on Database Security for the first 30
Oracle Database customers located anywhere in North America, EMEA, LATAM, or
APAC that send an email to
asra_us@oracle.com. Request a Workshop for
your organization today.
Purpose
Provides interfaces to configure automatic conflict detection and resolution in an Oracle GoldenGate configuration that replicates tables between Oracle databases.
When more than one replica of a table allows changes to the table, a conflict can occur when a change is made to the same row in two different databases at nearly the same time. Oracle GoldenGate replicates changes using row logical change records (LCRs).
It detects a conflict by comparing the old values in the row LCR with the current values of the corresponding table row identified by the key columns. If any column value does not match, then there is a conflict.
After a conflict is detected, Oracle GoldenGate can resolve the conflict by overwriting values in the row with some values from the row LCR, ignoring the values in the row LCR, or computing a delta to update the row values.
Owned by SYS with EXECUTE granted to the EXECUTE_CATALOG_ROLE role and GGSYS.
Security on this package can be controlled either by granting EXECUTE on this package to selected users or roles or by granting EXECUTE_CATALOG_ROLE to selected users or roles.
If subprograms in the package are run from within a stored procedure, then the user who runs the subprograms must be granted EXECUTE privilege on the package directly. It cannot be granted through a role.
An Oracle GoldenGate administrator must be configured at each Oracle database in the table’s replication environment, and Oracle GoldenGate must be configured to replicate the table at each Oracle database.
You can configure an Oracle GoldenGate administrator using the GRANT_ADMIN_PRIVILEGE procedure in the DBMS_GOLDENGATE_ADM package.
Configure GoldenGate automatic conflict detection and resolution at the table level
dbms_goldengate_adm.add_auto_cdr(
schema_name IN VARCHAR2,
table_name IN VARCHAR2,
resolution_granularity IN VARCHAR2 DEFAULT 'ROW', -- alt. COLUMN
existing_data_timestamp IN TIMESTAMP WITH TIME ZONE DEFAULT NULL,
tombstone_deletes IN BOOLEAN DEFAULT TRUE,
fetchcols IN BOOLEAN DEFAULT TRUE,
record_conflicts IN BOOLEAN DEFAULT FALSE,
use_custom_handlers IN BINARY_INTEGER DEFAULT 0);
Adds a column group and configures GoldenGate automatic conflict detection and resolution for the column group
dbms_goldengate_adm.add_auto_cdr_column_group(
schema_name IN VARCHAR2,
table_name IN VARCHAR2,
column_list IN VARCHAR2,
column_group_name IN VARCHAR2 DEFAULT NULL,
existing_data_timestamp IN TIMESTAMP WITH TIME ZONE DEFAULT NULL);
Alter automatic conflict detection and resolution at the table level
dbms_goldengate_adm.alter_auto_cdr(
schema_name IN VARCHAR2,
table_name IN VARCHAR2,
tombstone_deletes IN BOOLEAN DEFAULT NULL,
fetchcols IN BOOLEAN DEFAULT NULL,
record_conflicts IN BOOLEAN DEFAULT NULL,
use_custom_handlers IN BINARY_INTEGER DEFAULT NULL);
Alters a column group for automatic conflict detection and resolution
dbms_goldengate_adm.alter_auto_cdr_column_group(
schema_name IN VARCHAR2,
table_name IN VARCHAR2,
column_group_name IN VARCHAR2,
add_column_list IN VARCHAR2,
remove_column_list IN VARCHAR2);
BEGIN
IF dbms_goldengate_adm.gg_procedure_replication_on = 1 THEN
dbms_output.put_line('Replication Is On');
ELSE
dbms_output.put_line('Replication Is Off');
END IF;
END;
/