cdr sync replicateset
ASDF The cdr sync replicateset command synchronizes data among replication servers to repair inconsistent data within a replicate set.
Syntax
Element | Purpose | Restrictions | Syntax |
---|---|---|---|
data_server | Name of the database server to use as the reference copy of the data. | Must be the name of an existing database server group in SQLHOSTS. | Long Identifiers |
number_processes | The number of parallel processes to use for the command. | The maximum number of processes Enterprise Replication can use is equal to the number of replicates in the replicate set. | |
repl_set | Name of the replicate set. Can be the name of a derived replicate set. | Long Identifiers | |
seconds | The number of seconds to wait for a disabled replication server to be recognized as active by other replication servers in the domain and how long to wait for control messages queued at peer servers to be applied at newly-enabled server. | Must be an integer value from 0 to 60. | |
target_server | Name of a database server group to check. | Must be the name of an existing database server group in SQLHOSTS. | Long Identifiers |
task_name | The name of the progress report task. | If you use an existing task name, the information
for that task is overwritten. Maximum name length is 127 bytes. |
Long Identifiers |
The following table describes the cdr sync replicateset options.
Long Form | Short Form | Meaning |
---|---|---|
--all | -a | Specifies that all servers defined for the replicate are checked. |
--allrepl | -A | Specifies that all replicates are synchronized. |
--excludeTimeSeries | Specifies to prevent the checking of time series data. | |
--extratargetrows= | -e | Specifies how to handle rows that are found on
the target servers that are not present on the server from which the
data is being copied (data_server):
|
--firetrigger= | -T | Specifies how to handle triggers at the target
servers while data is synchronizing:
|
--ignoreHiddenTSElements | Specifies to avoid checking time series elements that are marked as hidden. | |
--master= | -m | Specifies the database server to use as the reference copy of the data. |
--memadjust= | -J | Increases the size of the send queue during synchronization to the number of kilobytes or megabytes specified by the size element. |
--name= | -n | Specifies that the progress of this command can be monitored. Information about the operation is stored under the specified progress report task name on the server on which the command was run. |
--process= | -p | Specifies to run the command
in parallel, using the specified number of processes. At most, Enterprise
Replication can use one process for each replicate in the replicate
set. If you specify more processes than replicates, the extra processes
are not used. Not all replicates can be processed in parallel. For example, if replicates have referential integrity rules, the replicates with the parent tables must be processed before the replicates with the child tables. |
--replset | -s | Specifies the name of the replicate set to synchronize. |
Usage
Use the cdr sync replicateset command to synchronize data between multiple database servers for a replicate set. This command performs direct synchronization as a foreground process.
If you run this command as a DBSA instead of as user onedb, you must have INSERT, UPDATE, and DELETE permission on the replicated tables on all the replication servers in the domain.
The size of the send queue is specified by the value of the CDR_QUEUEMEM configuration parameter. You can increase the amount of memory that the send queue can use during this synchronization operation by using the --memadjust option to specify the size of the send queue.
You can significantly improve the performance of synchronizing a replicate set by synchronizing the member replicates in parallel. You specify the number of parallel processes with the --process option. For best performance, specify the same number of processes as the number of replicates in the replicate set. However, replicates with referential integrity constraints cannot be processed in parallel.
If you want to monitor the progress of the synchronization operation, include the --name option and specify a name for the progress report task. Then run the cdr stats sync command and specify the progress report task name.
You can run a synchronization operation as a background operation as an SQL administration API command if you include the --background option. This option is useful if you want to schedule regular synchronization operations with the Scheduler. If you run a synchronization operation in the background, you should provide a name for the progress report task by using the --name option so that you can monitor the operation with the cdr stats sync command. You can also view the command and its results in the command_history table in the sysadmin database.
To synchronize all replicates at once, use the --allrepl option.
The cdr sync replicateset command performs the following tasks:
- Determines the order in which to repair tables if they have referential relationships.
- Creates a shadow replicate with the source server and target server as participants. The conflict resolution rule for the shadow replicate is always apply.
- Performs a sequential scan of the replicated table on the source server.
- Replicates the all rows in the table from the source server to the target server by copying the data directly into the send queue, bypassing the logical logs. Rows are not replicated to participants that include the S option in the participant definition because those participants only send data.
- Deletes the shadow replicate.
- Repeats steps 2 through 5 for each replicate in the replicate set.
You can run this command from within an SQL statement by using the SQL administration API.
Return codes
A return code of 0 indicates that the command was successful.
If the command is not successful, one of the following error codes is returned: 1, 5, 11, 17, 18, 31, 37, 48, 53, 61, 75, 99, 101, 121, 166, 172, 174, 193, 194, 195, 200, 203, 204, 213.
For information on these error codes, see Return Codes for the cdr Utility
Example 1: Synchronize all servers
cdr sync replicateset --master=g_serv1 --replset=replset_1\
--all --extratargetrows=keep
Line 2 indicates that all
servers associated with the replicate set are synchronized and that
if the synchronization process detects rows on the target servers
that do not exist on the reference server (g_serv1), that those
rows should remain on the other servers.Example 2: Synchronize three servers in parallel
cdr sync replicateset -m g_serv1 -s replset_2\
g_serv2 g_serv3 --process=2
The reference server is g_serv1 and
the target servers are g_serv2 and g_serv3. Because
the --extratargetrows option is not specified,
the default behavior occurs: rows, and any dependent rows that are
based on referential integrity constraints, that are on the target
servers but not on the reference server, are deleted.Example 3: Synchronize in the background and set the send queue size
The following example illustrates synchronizing in the background and setting the size of the send queue to 50 MB:
cdr sync replicateset --master=g_serv1 --replset=replset_1\
--memadjust=50M --background
Example 4: Synchronize all replicate sets on a replication server
The following command synchronizes all replicate sets on a replication server named g_serv2:
cdr sync replicateset --allrepl g_serv2
The replicate set name is not specified because the --allrepl option is used.