Marking a Table in the Primary Database for Replication

Mark tables for replication with any Replication Agent instance.

Prerequisites

Before you can mark tables for replication, you must create the Replication Agent transaction log objects.

Task
  1. Log in to the Replication Agent instance with the administrator login.
  2. Determine if the table is marked in the primary database:
    pdb_setreptable pdb_table

    where pdb_table is the name of the primary database table that you want to mark for replication.

    If pdb_setreptable returns information that the specified table is marked for replication, you do not need to continue this procedure.

    If pdb_setreptable returns information that the specified table is not marked, continue this procedure to mark the table for replication.

  3. If there is no table replication definition, only a database replication definition, and no table replication definition is to be added before replication, either:
    1. When the table in the replicate database has the same name as the table in the primary database, use:
      pdb_setreptable pdb_table, mark
    2. When the table in the replicate database has a different name from the table in the primary database, use:
      pdb_setreptable pdb_table, rep_table, mark

      where rep_table is the name of the table in the replicate database.

  4. If there is a table replication definition or one is to be added before replication, do one of this regardless of whether or not there is also a database replication definition:
    1. When the primary table in the table replication definition has the same name as the table in the primary database, use:
      pdb_setreptable pdb_table, mark
      Note: If the table in the replicate database has the same name as the primary table in the table replication definition, you can use the with all tables named clause in the replication definition in the primary Replication Server. For example,
      create replication definition my_table_repdef
      with primary at data_server.database
      with all tables named pdb_table ...

      If the table in the replicate database has a different name from the primary table in the table replication definition, the table replication definition must map to the table in the replicate database. For example,

      create replication definition my_table_repdef
      with primary at data_server.database
      with primary table named pdb_table
      with replicate table named rep_table ...
    2. When the primary table in the table replication definition has a different name from the table in the primary database, use:
      pdb_setreptable pdb_table, rdpri_table, mark

      where rdpri_table is the name of the primary table in the table replication definition. The table replication definition must map to the table in the replicate database.

      Note: If the table in the replicate database has the same name as the primary table in the table replication definition, you can use the with all tables named clause in the replication definition in the primary Replication Server. For example,
      create replication definition my_table_repdef
      with primary at data_server.database
      with all tables named rdpri_table ...

      If the table in the replicate database has a different name from the primary table in the table replication definition, the table replication definition must map to the table in the replicate database. For example,

      create replication definition my_table_repdef
      with primary at data_server.database
      with primary table named rdpri_table
      with replicate table named rep_table ...
  5. When you mark a table for replication, optionally specify that the table owner must be included when matching to an owner-qualified replication definition.
    • If the owner mode is set, then the owner name is used when matching the replication definition in Replication Agent.

    • If the owner mode is not set, then the owner name is not used by Replication Agent for replication definition name matching.

    To specify that the table owner must be included when matching to an owner-qualified replication definition, use the owner keyword after the mark keyword:
    pdb_setreptable pdb_table, mark, owner

    wherepdb_table is the name of the table that you want to mark for replication.

    Note: The table owner name returned from the primary database must be the same as the owner name specified in the replication definition for the table.
  6. If pdb_dflt_object_repl is:
    • true (the default), the table you marked for replication is ready for replication immediately after pdb_setreptable returns successfully. You can skip the next step for using pdb_setreptable to enable replication for a marked table.

    • false, you must enable replication for the table, as described in the next step.

  7. Enable replication for the table:
    pdb_setreptable pdb_table, enable

After replication is enabled for the table, the Replication Agent can begin replicating transactions that affect data in that table.