Marking a table for replication

Use the following procedure to mark tables for replication with any Replication Agent.

StepsMarking a table in the primary database for replication

  1. Log in to the Replication Agent instance with the administrator login.

  2. Use the pdb_setreptable command to determine if the table is already marked:

    pdb_setreptable pdb_table
    

    Here, pdb_table is the name of the table that you want to mark for replication.

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

    If the pdb_setreptable command 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, do one of the following:

    1. When the table in the replicate database has the same name as the table in the primary database, use the following command to mark a table for replication:

      pdb_setreptable pdb_table, mark
      

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

    2. When the table in the replicate database has a different name from the table in the primary database, use the following command to mark a table for replication:

      pdb_setreptable pdb_table, rep_table, mark
      

      Here, pdb_table is the name of the table in the primary database that you want to mark for replication, and 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 the following 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 the following command to mark a table for replication:

      pdb_setreptable pdb_table, mark
      

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

      NoteIf 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 the following command to mark a table for replication:

      pdb_setreptable pdb_table, rdpri_table, mark
      

      Here, pdb_table is the name of the table in the primary database that you want to mark for replication, and 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.

      NoteIf 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
    

    Here, pdb_table is the name of the table that you want to mark for replication.

    NoteThe 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. Consider the following:

    • If the value of the pdb_dflt_object_repl parameter is true, the table you marked for replication is ready for replication immediately after the pdb_setreptable command returns successfully.

    • The default value of the pdb_dflt_object_repl parameter is true.

    • If the value of the pdb_dflt_object_repl parameter is true, you can skip the following step for using pdb_setreptable to enable replication for a marked table.

    • If the value of the pdb_dflt_object_repl parameter is false, you must enable replication for the table, as described in the following step.

  7. Use the pdb_setreptable command to enable replication for a marked table:

    pdb_setreptable pdb_table, enable
    

    Here, pdb_table is the name of the marked table.

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