DDL Replication

Replication of data definition language (DDL) commands is supported, but only to Oracle databases. You cannot replicate DDL commands from Oracle to non-Oracle replicate databases.

Replication of DDL commands is enabled or disabled in Replication Agent using the pdb_setrepddl command. Replication Agent for Oracle can disable or enable the replication of specific DDL commands by object, owner, statement, or user. Replication Server uses the ddl_username parameter to execute DDL commands in the replicate database as the same user who executed the DDL commands in the primary database.
Note: By default, Replication Agent for Oracle filters SYS user DDL and if you want to replicate the SYS user DDL, you can manually remove the filter.

See Replication Agent Reference Manual > Command Reference > pdb_setrepddl and Replication Agent Reference Manual > Configuration Parameters > ddl_username for details on using pdb_setrepddl and ddl_username.

Oracle 10g, 11g, and 12c Privileges for DDL Replication

Note: Issuing GRANT ALL PRIVILEGES TO DDLUSER turns the DDL user into a superuser, like the SYS or SYSTEM user.
Different versions of Oracle have different permission requirements. For Oracle 10g, 11g, and 12c grant the DDL user permission to execute these commands:
  • GRANT ALTER ANY INDEX
  • GRANT ALTER ANY INDEXTYPE
  • GRANT ALTER ANY PROCEDURE
  • GRANT ALTER ANY TABLE
  • GRANT ALTER ANY TRIGGER
  • GRANT ALTER ANY TYPE
  • GRANT ALTER SESSION
  • GRANT BECOME USER
  • GRANT CREATE ANY INDEX
  • GRANT CREATE ANY INDEXTYPE
  • GRANT CREATE ANY PROCEDURE
  • GRANT CREATE ANY SYNONYM
  • GRANT CREATE ANY TABLE
  • GRANT CREATE ANY TRIGGER
  • GRANT CREATE ANY TYPE
  • GRANT CREATE ANY VIEW
  • GRANT CREATE INDEXTYPE
  • GRANT CREATE MATERIALIZED VIEW
  • GRANT CREATE PROCEDURE
  • GRANT CREATE PUBLIC SYNONYM
  • GRANT CREATE SYNONYM
  • GRANT CREATE TABLE
  • GRANT CREATE TRIGGER
  • GRANT CREATE TYPE
  • GRANT CREATE VIEW
  • GRANT DELETE ANY TABLE
  • GRANT DROP ANY INDEX
  • GRANT DROP ANY INDEXTYPE
  • GRANT DROP ANY MATERIALIZED VIEW
  • GRANT DROP ANY PROCEDURE
  • GRANT DROP ANY SYNONYM
  • GRANT DROP ANY TABLE
  • GRANT DROP ANY TRIGGER
  • GRANT DROP ANY TYPE
  • GRANT DROP ANY VIEW
  • GRANT DROP PUBLIC SYNONYM
  • GRANT INSERT ANY TABLE
  • GRANT SELECT ANY TABLE
  • GRANT UPDATE ANY TABLE