This topic describes how to use obd to dynamically change the role of the seekdb instance and how to decouple the primary and standby instances.
Concepts
A primary-standby pair is a high-availability solution provided by seekdb. The primary instance (PRIMARY) is the business instance that you create. It supports complete database capabilities, including queries, DML, and DDL operations. The standby instance (STANDBY) provides only disaster recovery and read-only capabilities.
obd allows you to dynamically change the role of an instance by using commands.
Switchover
A switchover operation changes the role of an instance as planned. After a switchover operation is performed, the primary and standby instances exchange their roles. During the switchover, no data is lost, and the RPO is 0. The switchover operation usually takes a few seconds.
Failover
A failover operation changes the role of an instance when the primary instance fails. After a failover operation is performed, the standby instance becomes the primary instance. If the standby instance is synchronized with the primary instance before the failure, a failover operation usually causes a data loss of a few hundred milliseconds. The failover operation usually takes a few seconds.
Decouple
A decouple operation changes the role of an instance as planned. After a decouple operation is performed, the standby instance is decoupled from the primary instance and becomes the primary instance.
Switchover
After a switchover operation is performed, to ensure that the topology remains unchanged, the other standby instances under the original primary instance are switched to the new primary instance, and the other standby instances under the new primary instance are switched to the new standby instance. Only the two primary and standby nodes involved in the switchover operation exchange their roles. The other nodes remain in their original positions. The following figure shows the result.
Prerequisites
The version of seekdb must be V1.2.0 or later.
Both the primary and standby instances are managed by obd and are online. You can run the
obd seekdb displaycommand to view the instance status.
Procedure
View the primary-standby relationship of the seekdb instance.
Run the following command to view the primary-standby relationship of the seekdb instance. In this example, the
seekdb_Binstance is viewed.obd seekdb display seekdb_B -gThe
-gparameter displays the primary-standby topology. The output is as follows:Get local repositories and plugins ok Open ssh connection ok Connect to seekdb 10.10.10.1:2881 ok Wait for seekdb init ok +--------------------------------+ | seekdb | +---------------+---------+------+ | ip | version | port | +---------------+---------+------+ | 10.10.10.1 | 1.2.0.0 | 2881 | +---------------+---------+------+ obclient -h10.10.10.1 -P2881 -uroot -p'********' -Doceanbase -A Cluster Topology: seekdb_A └── seekdb_B └── seekdb_CRun the switchover command for the standby instance.
obd seekdb switchover seekdb_BView the primary-standby relationship of the original standby instance.
obd seekdb display seekdb_B -gThe
-gparameter displays the primary-standby topology. The output is as follows, indicating that the primary-standby relationship has been updated.Get local repositories and plugins ok Open ssh connection ok Connect to seekdb 10.10.10.1:2881 ok Wait for seekdb init ok +--------------------------------+ | seekdb | +---------------+---------+------+ | ip | version | port | +---------------+---------+------+ | 10.10.10.1 | 1.2.0.0 | 2881 | +---------------+---------+------+ obclient -h10.10.10.1 -P2881 -uroot -p'********' -Doceanbase -A Cluster Topology: seekdb_B └── seekdb_A └── seekdb_C
Failover
A failover operation changes the role of an instance when the primary instance fails. The failover operation modifies only the log files and does not modify the data files.
Notice
In a one-primary-and-multiple-standby scenario, after you run a failover operation to change a standby instance to the primary instance, the other standby instances cannot be switched to the new primary instance. You must choose to decouple the other standby instances or run a failover operation on them to generate new primary instances.
Prerequisites
The version of seekdb must be V1.2.0 or later.
Both the primary and standby instances are managed by obd.
The primary instance is unavailable. You can run the
obd seekdb displaycommand to view the instance status.The standby instance is online. You can run the
obd seekdb displaycommand to view the instance status.
Procedure
View the primary-standby relationship of the seekdb instance.
Run the following command to view the primary-standby relationship of the seekdb instance. In this example, the
seekdb_Binstance is viewed.obd seekdb display seekdb_B -gThe
-gparameter displays the primary-standby topology. The output is as follows:Get local repositories and plugins ok Open ssh connection ok Connect to seekdb 10.10.10.1:2881 ok Wait for seekdb init ok +--------------------------------+ | seekdb | +---------------+---------+------+ | ip | version | port | +---------------+---------+------+ | 10.10.10.1 | 1.2.0.0 | 2881 | +---------------+---------+------+ obclient -h10.10.10.1 -P2881 -uroot -p'********' -Doceanbase -A Cluster Topology: seekdb_A └── seekdb_B └── seekdb_CRun the failover command for the standby instance.
obd seekdb failover seekdb_BView the primary-standby relationship of the original standby instance.
obd seekdb display seekdb_B -gThe
-gparameter displays the primary-standby topology. The output is as follows:Get local repositories and plugins ok Open ssh connection ok Connect to seekdb 10.10.10.1:2881 ok Wait for seekdb init ok +--------------------------------+ | seekdb | +---------------+---------+------+ | ip | version | port | +---------------+---------+------+ | 10.10.10.1 | 1.2.0.0 | 2881 | +---------------+---------+------+ obclient -h10.10.10.1 -P2881 -uroot -p'********' -Doceanbase -A Cluster Topology: seekdb_B └── seekdb_C
Decouple the primary and standby instances
You can run the decouple command to decouple the standby instance from the primary instance. This topic describes how to run the decouple command to decouple the primary and standby instances.
Prerequisites
The version of seekdb must be V1.2.0 or later.
Both the primary and standby instances are managed by obd and are online. You can run the
obd seekdb displaycommand to view the instance status.
Procedure
View the primary-standby relationship of the seekdb instance.
Run the following command to view the primary-standby relationship of the seekdb instance. In this example, the
seekdb_Binstance is viewed.obd seekdb display seekdb_B -gThe
-gparameter displays the primary-standby topology. The output is as follows:Get local repositories and plugins ok Open ssh connection ok Connect to seekdb 10.10.10.1:2881 ok Wait for seekdb init ok +--------------------------------+ | seekdb | +---------------+---------+------+ | ip | version | port | +---------------+---------+------+ | 10.10.10.1 | 1.2.0.0 | 2881 | +---------------+---------+------+ obclient -h10.10.10.1 -P2881 -uroot -p'********' -Doceanbase -A Cluster Topology: seekdb_A └── seekdb_B └── seekdb_CRun the decouple command for the standby instance.
obd seekdb decouple seekdb_BView the primary-standby relationship of the original standby instance.
obd seekdb display seekdb_B -gThe
-gparameter displays the primary-standby topology. The output is as follows:Get local repositories and plugins ok Open ssh connection ok Connect to seekdb 10.10.10.1:2881 ok Wait for seekdb init ok +--------------------------------+ | seekdb | +---------------+---------+------+ | ip | version | port | +---------------+---------+------+ | 10.10.10.1 | 1.2.0.0 | 2881 | +---------------+---------+------+ obclient -h10.10.10.1 -P2881 -uroot -p'********' -Doceanbase -A Cluster Topology: seekdb_B └── seekdb_C
