6.7.1. Composite Cluster Site Switch

Note

These steps only apply to Composite Active/Passive clusters.

Our example cluster has two sites, alpha and beta. They are both members of composite cluster global. Site east has hosts db1, db2 and db3. Site west has hosts db4, db5 and db6.

Important

When working with composite clusters, using cctrl will by default connect you to the cluster service associated with the node in which you launched the tool, however you can easily move around to all clusters by simply using the use command as show in the examples below.

shell> cctrl
Tungsten Cluster 7.0.3 build 141
alpha: session established, encryption=false, authentication=false
jgroups: unencrypted, database: unencrypted

[LOGICAL] /alpha > use global
[LOGICAL] /global > ls

COORDINATOR[db2:AUTOMATIC:ONLINE]
   alpha:COORDINATOR[db2:AUTOMATIC:ONLINE]
   beta:COORDINATOR[db5:AUTOMATIC:ONLINE]

ROUTERS:
+---------------------------------------------------------------------------------+
|connector@db1[43475](ONLINE, created=2, active=0)                                |
|connector@db2[75463](ONLINE, created=2, active=0)                                |
|connector@db3[43981](ONLINE, created=2, active=0)                                |
|connector@db4[59575](ONLINE, created=2, active=0)                                |
|connector@db5[59581](ONLINE, created=2, active=0)                                |
|connector@db6[59847](ONLINE, created=2, active=0)                                |
+---------------------------------------------------------------------------------+

DATASOURCES:
+---------------------------------------------------------------------------------+
|alpha(composite master:ONLINE)                                                   |
|STATUS [OK] [2025/01/28 11:35:18 AM UTC]                                         |
+---------------------------------------------------------------------------------+
+---------------------------------------------------------------------------------+
|beta(composite slave:ONLINE)                                                     |
|STATUS [OK] [2025/01/28 11:35:13 AM UTC]                                         |
+---------------------------------------------------------------------------------+

Composite Active Dataservice (Primary) - alpha

[LOGICAL] /global > use alpha
[LOGICAL] /alpha > ls

COORDINATOR[db2:AUTOMATIC:ONLINE]

ROUTERS:
+---------------------------------------------------------------------------------+
|connector@db1[43475](ONLINE, created=0, active=0)                                |
|connector@db2[75463](ONLINE, created=0, active=0)                                |
|connector@db3[43981](ONLINE, created=0, active=0)                                |
|connector@db4[59575](ONLINE, created=0, active=0)                                |
|connector@db5[59581](ONLINE, created=0, active=0)                                |
|connector@db6[59847](ONLINE, created=0, active=0)                                |
+---------------------------------------------------------------------------------+

DATASOURCES:
+---------------------------------------------------------------------------------+
|db1(master:ONLINE, progress=0, THL latency=1.061)                                |
|STATUS [OK] [2025/01/28 11:35:02 AM UTC]                                         |
+---------------------------------------------------------------------------------+
|  MANAGER(state=ONLINE)                                                          |
|  REPLICATOR(role=master, state=ONLINE)                                          |
|  DATASERVER(state=ONLINE)                                                       |
|  CONNECTIONS(created=0, active=0)                                               |
+---------------------------------------------------------------------------------+
+---------------------------------------------------------------------------------+
|db2(slave:ONLINE, progress=0, latency=1.691)                                     |
|STATUS [OK] [2025/01/28 11:35:00 AM UTC]                                         |
+---------------------------------------------------------------------------------+
|  MANAGER(state=ONLINE)                                                          |
|  REPLICATOR(role=slave, master=db1, state=ONLINE)                               |
|  DATASERVER(state=ONLINE)                                                       |
|  CONNECTIONS(created=0, active=0)                                               |
+---------------------------------------------------------------------------------+
+---------------------------------------------------------------------------------+
|db3(slave:ONLINE, progress=0, latency=1.382)                                     |
|STATUS [OK] [2025/01/28 11:35:02 AM UTC]                                         |
+---------------------------------------------------------------------------------+
|  MANAGER(state=ONLINE)                                                          |
|  REPLICATOR(role=slave, master=db1, state=ONLINE)                               |
|  DATASERVER(state=ONLINE)                                                       |
|  CONNECTIONS(created=0, active=0)                                               |
+---------------------------------------------------------------------------------+

Composite Passive Dataservice (DR) - beta

[LOGICAL] /alpha]ha > use beta
[LOGICAL] /beta > ls

COORDINATOR[db5:AUTOMATIC:ONLINE]

ROUTERS:
+---------------------------------------------------------------------------------+
|connector@db1[43475](ONLINE, created=2, active=0)                                |
|connector@db2[75463](ONLINE, created=2, active=0)                                |
|connector@db3[43981](ONLINE, created=2, active=0)                                |
|connector@db4[59575](ONLINE, created=2, active=0)                                |
|connector@db5[59581](ONLINE, created=2, active=0)                                |
|connector@db6[59847](ONLINE, created=2, active=0)                                |
+---------------------------------------------------------------------------------+

DATASOURCES:
+---------------------------------------------------------------------------------+
|db4(relay:ONLINE, progress=0, latency=1.000)                                     |
|STATUS [OK] [2025/01/28 11:35:02 AM UTC]                                         |
+---------------------------------------------------------------------------------+
|  MANAGER(state=ONLINE)                                                          |
|  REPLICATOR(role=relay, master=db1, state=ONLINE)                               |
|  DATASERVER(state=ONLINE)                                                       |
|  CONNECTIONS(created=0, active=0)                                               |
+---------------------------------------------------------------------------------+
+---------------------------------------------------------------------------------+
|db5(slave:ONLINE, progress=0, latency=1.515)                                     |
|STATUS [OK] [2025/01/28 11:35:12 AM UTC]                                         |
+---------------------------------------------------------------------------------+
|  MANAGER(state=ONLINE)                                                          |
|  REPLICATOR(role=slave, master=db4, state=ONLINE)                               |
|  DATASERVER(state=ONLINE)                                                       |
|  CONNECTIONS(created=6, active=0)                                               |
+---------------------------------------------------------------------------------+
+---------------------------------------------------------------------------------+
|db6(slave:ONLINE, progress=0, latency=1.592)                                     |
|STATUS [OK] [2025/01/28 11:35:12 AM UTC]                                         |
+---------------------------------------------------------------------------------+
|  MANAGER(state=ONLINE)                                                          |
|  REPLICATOR(role=slave, master=db4, state=ONLINE)                               |
|  DATASERVER(state=ONLINE)                                                       |
|  CONNECTIONS(created=6, active=0)                                               |
+---------------------------------------------------------------------------------+

Manually switch the composite Primary role to the other site:

[LOGICAL] /beta > use global
[LOGICAL] /global > switch

Savepoint switch_0(cluster=global, source=db2, created=2025/01/28 13:53:00 UTC) created
SELECTED SLAVE: 'beta@global'
FLUSHING TRANSACTIONS THROUGH 'db1@alpha'
REPLICATOR 'db1' IS NOW USING MASTER CONNECT URI 'thl://db4:2112/'
composite data source 'beta@global' is now OFFLINE
PUT THE NEW MASTER 'beta@global' ONLINE
PUT THE PRIOR MASTER 'alpha@global' ONLINE AS A SLAVE
REVERT POLICY: MAINTENANCE => AUTOMATIC
SWITCH TO 'beta@global' WAS SUCCESSFUL

[LOGICAL] /global > ls

COORDINATOR[db2:AUTOMATIC:ONLINE]
   alpha:COORDINATOR[db2:AUTOMATIC:ONLINE]
   beta:COORDINATOR[db5:AUTOMATIC:ONLINE]

ROUTERS:
+---------------------------------------------------------------------------------+
|connector@db1[43475](ONLINE, created=2, active=0)                                |
|connector@db2[75463](ONLINE, created=2, active=0)                                |
|connector@db3[43981](ONLINE, created=2, active=0)                                |
|connector@db4[59575](ONLINE, created=2, active=0)                                |
|connector@db5[59581](ONLINE, created=2, active=0)                                |
|connector@db6[59847](ONLINE, created=2, active=0)                                |
+---------------------------------------------------------------------------------+

DATASOURCES:
+---------------------------------------------------------------------------------+
|alpha(composite slave:ONLINE)                                                    |
|STATUS [OK] [2025/01/28 01:53:13 PM UTC]                                         |
+---------------------------------------------------------------------------------+
+---------------------------------------------------------------------------------+
|beta(composite master:ONLINE)                                                    |
|STATUS [OK] [2025/01/28 01:53:13 PM UTC]                                         |
+---------------------------------------------------------------------------------+