Database Replication and Clustering
Changing the status of a service is required either when the dataservice needs to be reconfigured, the topology altered, or when performing system maintenance.
The datasource status can be changed by using the datasource command, which accepts the datasource name and a sub-command:
datasource DATASOURCENAME SUBCOMMAND
For example, to shun the node host1
:
[LOGICAL:EXPERT] /alpha > datasource host1 shun
For detailed operations for different subcommands, see the following sections.
Shunning a datasource identifies the source as unavailable; a shunned slave will not be used during a failover or switch operation.
Datasources can be automatically or manually shunned:
Automatic shunning occurs when the dataservice
is in AUTOMATIC
policy
mode, and the datasource has become unresponsive or fails. For
example, when a master fails, an automatic switch to a new master is
performed, and the old master is shunned.
Manual shunning occurs when the shun command is given to a datasource. Manual shunning can be used to set a datasource into a state that allows for maintenance and management operations to be performed on the datasource.
To manually shun the datasource:
[LOGICAL:EXPERT] /alpha > datasource host3 shun
DataSource 'host3' set to SHUNNED
Once shunned, the connector will stop using the datasource. The status can be checked using ls :
+----------------------------------------------------------------------------+ |host3(slave:SHUNNED(MANUALLY-SHUNNED), progress=157454, latency=1.000) | |STATUS [SHUNNED] [2013/05/14 05:24:41 PM BST] | +----------------------------------------------------------------------------+ | MANAGER(state=ONLINE) | | REPLICATOR(role=slave, master=host2, state=ONLINE) | | DATASERVER(state=ONLINE) | | CONNECTIONS(created=0, active=0) | +----------------------------------------------------------------------------+
Shunning a datasource does not stop the replicator; replication will continue on a shunned datasource until the replication service is explicitly placed into the offline state.
The level of the shunning is reported in the status as a manual operation. A manually shunned datasource can be enabled using the datasource recover command, see Section 5.3.5.2, “Recover a Datasource” .
The datasource recover command is a deeper operation that performs a number of operations to get the datasource back into the operational state. When used, the datasource recover command performs the following operations:
Restarts failed or stopped services
Changes the datasource configuration so that it is configured as a master or slave. For example, an automatically failed master will be reconfigured to operate as a slave to the current master.
Restarts the replicator service in the slave or master role as appropriate
In all cases, the datasource recover command should be used if a datasource is offline or shunned, and it can be used at all times to get a datasource back in to operational state within the cluster. In essence, recover performs the same operations automatically as would be performed manually to get the node into the right state.
[LOGICAL:EXPERT] /alpha > datasource host3 recover
VERIFYING THAT WE CAN CONNECT TO DATA SERVER 'host3'
DATA SERVER 'host3' IS NOW AVAILABLE FOR CONNECTIONS
RECOVERING 'host3@alpha' TO A SLAVE USING 'host1@alpha' AS THE MASTER
DataSource 'host3' is now OFFLINE
RECOVERY OF 'host3@alpha' WAS SUCCESSFUL
During the recovery process, the node will be checked, replication reconfigured, and the node brought back in to active service. If this process fails because the databases and replication states are out of sync and cannot be recovered, Continuent Tungsten may advise that a backup of another datasource and recovery to this datasource is performed. For more information on restoring from backups, see Section 5.10, “Restoring a Backup” .
A datasource can be explicitly placed into offline mode. In offline
mode, client applications connections to datasources are paused. When
switching to OFFLINE
mode existing
connections are given a five-second grace period to complete their
operations before being forced to disconnect. Replicator operation is
not affected.
To set a datasource offline:
[LOGICAL:EXPERT] /alpha > datasource host3 offline
DataSource 'host3@alpha' is now OFFLINE
If the dataservice is in
AUTOMATIC
policy mode, and
there are no other faults in the datasource, it will automatically be
placed into ONLINE
mode. To set a
datasource offline the dataservice must be in
MAINTENANCE
or
MANUAL
policy modes.
standby
datasources receive
replication data, but are not part of the load-balancing provided by
Tungsten Connector. In the event of a failover situation, a
standby
datasource will be
enabled within the cluster as a slave. Because the
standby
datasource is up to date
with respect to the replication of data, this process is instantaneous.
The connector will be updated, and the new slave will operate as a
read-only datasource.
To configure a datasource as a
standby
:
[LOGICAL:EXPERT] /alpha > datasource host3 standby
Datasource 'host3' now has role 'standby'
To clear the standby
state:
[LOGICAL:EXPERT] /alpha > datasource host3 clear standby
Datasource 'host3' now has role 'slave'
When a slave goes into standby mode, it will finish running any SQL queries that were started before it went into standby mode. New queries, even on the same connection, will not be directed to a slave that has just gone into standby
An archive
datasource receives
replication data. It is excluded from failover switches and will not be
used as a master in the event of a failure. To mark a datasource as an
archive datasource:
[LOGICAL:EXPERT] /alpha > datasource host3 set archive
To remove the archive role:
[LOGICAL:EXPERT] /alpha > datasource host3 clear archive
The archive role is a temporary requirement, and will not survive a re-install or upgrade.