Setting Up Multi-Master Replication Manually
You can run maprcli
commands to set up multi-master replication,
first establishing replication in one direction, and then establishing it in the other
direction.
Prerequisites
- Configure one or more gateways in the destination cluster. See MapR Gateways.
- If the source and destination clusters are secured, set up security for replication between the clusters. See Configuring MapR Clusters for Replication Between Tables.
- Run the
maprcli table info
command on the source table to verify that you have the following permissions:-
readperm
, which is required for reading from the table. -
replperm
, which is required for replicating from the table.
-
- Run the
maprcli table info
command on the destination table (if it already exists) to verify that you have the following permissions:-
bulkload
, which is required for the initial copy of source data into the destination table. -
replperm
, which is required for receiving replicated updates from the source table.
-
About this task
Procedure
-
For manual setup in one direction, follow these steps:
-
For manual setup in the other direction, follow these steps:
Results
What to do next
If one of the tables goes offline, direct client applications to the other table. When the offline table comes back online, replication between the two tables continues automatically. When both tables are again back in synch, you can redirect client applications back to the original table.
For example, suppose that client applications are using the
customers
table that is in the cluster
sanfrancisco
.
The customers
table in the sanfrancisco
cluster
becomes unavailable, so you redirect those client applications to the
customers
table in the newyork
cluster.
After the customers
table in the sanfrancisco
cluster comes back online, replication back to it starts immediately. Because client
applications are not yet using this table, there are no updates to replicate to the
table in the newyork
cluster.
When the customers
table in the sanfrancisco
cluster is in synch with the other table, you can redirect your client applications
back to it.
Be aware that changes to the structure of a source table are not replicated
automatically to replicas. For example, if a new column family is added to the
source table and the entire table is being replicated (i.e. the maprcli
table replica add
command did not specify column families or columns to
replicate), the new column family is not automatically created at the replica.
You can add the new column family to the replica only if the entire source table is being replicated, then updates to the new column family will immediately start being replicated. You do not need to carry out the next steps. Continue only if you are replicating a subset of column families and columns.
If you are replicating a subset of column families and columns, follow these steps to add a new column family to the replica:
- Pause replication by running the
maprcli table replica pause
command. - Add the new column family to the replica by running the
maprcli table replica edit
command. - Copy the data for this column family from the source table into the replica by
using the CopyTable utility. Use the
-columns
parameter to specify the name of the column family. - Resume replication by running the
maprcli table replica resume
command.
Check for alarms related to replication and whether synchronous replication is switched temporarily to asynchronous replication by looking in MCS. See Table-Replication Alarms.