About Monitoring the Health of an Active Standby Pair of Databases

The Operator monitors and manages the health of each of your active standby pairs. The Operator assigns high level states to the TimesTenClassic object, which you can monitor and review. For example, you can use the kubectl get command to return the high level state of your TimesTenClassic object. Specifically, in this example, the value returned for the STATE field is Normal, indicating that the active and the standby databases are up and running, and working as they should.

% kubectl get ttc sample
NAME     STATE    ACTIVE     AGE
sample   Normal   sample-0   15h

The states:

ActiveDown

If the Operator detects that TimesTen in the Pod containing the active database has failed, then the TimesTenClassic object immediately enters the ActiveDown state.

The unreachableTimeout timeout value controls how long the state of the Pod containing the active database can be Unknown before the TimesTenClassic object's state becomes ActiveDown.

When the TimesTenClassic object's state becomes ActiveDown, the standby database immediately becomes the active, and the state of the TimesTenClassic object becomes StandbyDown.

ActiveTakeover

When the TimesTenClassic object is in the Normal state, and the standby database goes down, the state briefly changes to ActiveTakeover.

When AWT cache groups are used, the standby is normally responsible for pushing updates from TimesTen to Oracle Database. However, if the standby fails, the active database takes over this responsibility. This occurs during the ActiveTakeover state.

BothDown

Neither the active nor the standby database is functioning properly. The Operator attempts to bring up the pair of databases.

If both Pods in the active standby pair fail, the Operator uses the information in TimesTenClassicStatus to minimize data loss. See "About the BothDown State" for details.

ConfiguringActive

When the TimesTenClassic object is in the WaitingForActive state, and when the database that should be the active database comes up, the TimesTenClassic object enters the ConfiguringActive state. The Operator then configures this database to be the active. Once the database is configured as the active, the TimesTenClassic object enters the StandbyDown state. See "About the BothDown State" for details.

Failed

If a problem occurs while Initializing a TimesTenClassic object, the object transitions to the Failed state. Once in this state, the Operator does not attempt to repair the object. You must delete it. Use the kubectl describe command to examine the Operator logs to determine the cause of the problem and then recreate the object.

Initializing

This state is reported while the two Pods are starting up for the first time. In your active standby pair configuration, the Pod whose name ends with -0 is initially configured as the active database, and the Pod whose name ends with -1 is initially configured as the standby database. Specifically, if you specified the name for TimesTenClassic as sample, the sample-0 Pod is configured as the active database, and the sample-1 Pod is configured as the standby database. Once the active/standby pair is completely deployed, the TimesTenClassic object transitions to the Normal state.

ManualInterventionRequired

When a TimesTenClassic object enters the ManualInterventionRequired state, the Operator takes no further action for the object. It does not query the TimesTen agents associated with the object to determine the state of TimesTen and it does not command TimesTen to do anything. See "About the ManualInterventionRequired State" and "About Bringing Up One Database" for details.

Normal

Both databases are up and running, and operating as they should.

Reexamine

When the TimesTenClassic object is in the ManualInterventionRequired state, you can specify the .spec.ttspec.reexamine datum to cause the Operator to take over the management of the object again. The Operator moves the object to the Reexamine state. The Operator then examines the state of TimesTen. If you correctly repaired TimesTen, the TimesTenClassic object may then enter the Normal or the StandbyDown state, depending on the nature of your repair. If you did not correctly repair TimesTen, the TimesTenClassic object re-enters the ManualInterventionRequired state. See "About the ManualInterventionRequired State" for details.

StandbyCatchup

This state is entered after the StandbyStarting state. During the StandbyStarting state, the standby copies the active database to the standby Pod. When the duplicate process is complete, the state changes from StandbyStarting to StandbyCatchup. See "StandbyStarting" for more information on the StandbyStarting state. In the StandbyCatchup state, the duplicate process has completed. Transactions that ran during this duplicate process must now be copied over to the standby. Thus the StandbyCatchup state is the state when the newly created standby catches up to any transactions that ran on the active while the duplicate operation was running. Applications can continue to use the active without restriction.

StandbyDown

The active database is functioning properly, but the standby database is not. The Operator automatically attempts to restart and reconfigure the standby database. Applications can continue to use the active database without restriction.

StandbyStarting

The standby is duplicating the database from the active. The StandbyStarting state is complete when the duplicate operation completes. The StandbyCatchup state is then entered. See "StandbyCatchup" for more information on the StandbyCatchup state. Applications can continue to use the active without restriction.

WaitingForActive

When the TimesTenClassic object is in the BothDown state, if the Operator can determine which database contains the most up-to-date data, the TimesTenClassic object enters the WaitingForActive state. The object remains in this state until the Pod that contains the database is running, and the TimesTen agent within the tt container (within that Pod) is responding to the Operator. See "About the BothDown State" for details.