The procedures in this section are designed for the Multi-Site/Active-Active topology ONLY. Do NOT use these procedures for Composite Active/Active Clustering uing v6 onwards.
For version 6.x onwards, Composite Active/Active Clustering, please refer to Section 3.4, “Deploying Composite Active/Active Clusters”
In addition to this information, follow the guidelines in Section 2.5, “Best Practices”.
Running a Multi-Site/Active-Active service uses many different components
to keep data updated on all servers. Monitoring the dataservice is
divided into monitoring the two different clusters. Be mindful when
using commands that you have the correct path. You should either use
the full path to the command under
/opt/continuent
and
/opt/replicator
, or use the aliases created by
setting the --executable-prefix=mm
option. Calling trepctl would become
mm_trepctl.
Configure your database servers with distinct
auto_increment_increment
and
auto_increment_offset
settings.
Each location that may accept writes should have a unique offset
value.
Using cctrl gives you the dataservice status
individually for the east
and
west
dataservice. For example, the
east
dataservice is shown below:
Continuent Tungsten 7.0.3 build 141
east: session established
[LOGICAL] /east > ls
COORDINATOR[east1:AUTOMATIC:ONLINE]
ROUTERS:
+----------------------------------------------------------------------------+
|connector@east1[17951](ONLINE, created=0, active=0) |
|connector@east2[17939](ONLINE, created=0, active=0) |
|connector@east3[17961](ONLINE, created=0, active=0) |
+----------------------------------------------------------------------------+
DATASOURCES:
+----------------------------------------------------------------------------+
|east1(master:ONLINE, progress=29, THL latency=0.739) |
|STATUS [OK] [2013/11/25 11:24:35 AM GMT] |
+----------------------------------------------------------------------------+
| MANAGER(state=ONLINE) |
| REPLICATOR(role=master, state=ONLINE) |
| DATASERVER(state=ONLINE) |
| CONNECTIONS(created=0, active=0) |
+----------------------------------------------------------------------------+
+----------------------------------------------------------------------------+
|east2(slave:ONLINE, progress=29, latency=0.721) |
|STATUS [OK] [2013/11/25 11:24:39 AM GMT] |
+----------------------------------------------------------------------------+
| MANAGER(state=ONLINE) |
| REPLICATOR(role=slave, master=east1, state=ONLINE) |
| DATASERVER(state=ONLINE) |
| CONNECTIONS(created=0, active=0) |
+----------------------------------------------------------------------------+
+----------------------------------------------------------------------------+
|east3(slave:ONLINE, progress=29, latency=1.143) |
|STATUS [OK] [2013/11/25 11:24:38 AM GMT] |
+----------------------------------------------------------------------------+
| MANAGER(state=ONLINE) |
| REPLICATOR(role=slave, master=east1, state=ONLINE) |
| DATASERVER(state=ONLINE) |
| CONNECTIONS(created=0, active=0) |
+----------------------------------------------------------------------------+
When checking the current status, it is import to compare the sequence
numbers from each service correctly. There are four
services to monitor, the Tungsten Cluster service
east
, and a Tungsten Replicator
service east
that reads data from
the west
Tungsten Cluster service. A
corresponding west
Tungsten Cluster
and west
Tungsten Replicator service.
When data is inserted on the Primary within the
east
Tungsten Cluster, use
cctrl to determine the cluster status. Sequence
numbers within the Tungsten Cluster
east
should match, and latency
between hosts in the Tungsten Cluster service are relative to each
other.
When data is inserted on east
,
the sequence number of the east
Tungsten Cluster service and east
Tungsten Replicator service (on
west{1,2,3}
) should be compared.
When data is inserted on the Primary within the
east
Tungsten Cluster, use
cctrl to determine the cluster status. Sequence
numbers within the Tungsten Cluster
east
should match, and latency
between hosts in the Tungsten Cluster service are relative to each
other.
When data is inserted on west
,
the sequence number of the west
Tungsten Cluster service and west
Tungsten Replicator service (on
east{1,2,3}
) should be compared.
Tungsten Cluster Service Seqno | Tungsten Replicator Service Seqno | |||
---|---|---|---|---|
Operation |
east
|
west
|
east
|
west
|
Insert/update data on east
| Seqno Increment | Seqno Increment | ||
Insert/update data on west
| Seqno Increment | Seqno Increment |
Within each cluster, cctrl can be used to monitor the current status. For more information on checking the status and controlling operations, see Section 6.3, “Checking Dataservice Status”.
For convenience, the shell PATH can be updated with the tools and configuration. With two separate services, both environments must be updated. To update the shell with the Tungsten Cluster service and tools:
shell> source /opt/continuent/share/env.sh
To update the shell with the Tungsten Replicator service and tools:
shell> source /opt/replicator/share/env.sh
To monitor all services and the current status, you can also use the multi_trepctl command (part of the Tungsten Replicator installation). This generates a unified status report for all the hosts and services configured:
shell> multi_trepctl --by-service
| host | servicename | role | state | appliedlastseqno | appliedlatency |
| east1 | east | master | ONLINE | 53 | 120.161 |
| east3 | east | master | ONLINE | 44 | 0.697 |
| east2 | east | slave | ONLINE | 53 | 119.961 |
| west1 | east | slave | ONLINE | 53 | 119.834 |
| west2 | east | slave | ONLINE | 53 | 181.128 |
| west3 | east | slave | ONLINE | 53 | 204.790 |
| west1 | west | master | ONLINE | 294327 | 0.285 |
| west2 | west | master | ONLINE | 231595 | 0.316 |
| east1 | west | slave | ONLINE | 294327 | 0.879 |
| east2 | west | slave | ONLINE | 294327 | 0.567 |
| east3 | west | slave | ONLINE | 294327 | 1.046 |
| west3 | west | slave | ONLINE | 231595 | 22.895 |
In the above example, it can be seen that the
west
services have a much higher
applied last sequence number than the
east
services, this is because all
the writes have been applied within the
west
cluster.
To monitor individual servers and/or services, use
trepctl, using the correct port number and servicename.
For example, on east1
to check the
status of the replicator within the Tungsten Cluster service:
shell> trepctl status
To check the Tungsten Replicator service, explicitly specify the port and service:
shell> mm_trepctl -service west status