Nonstop Database, HiRDB Version 9 System Operation Guide

[Contents][Index][Back][Next]

11.8.6 Back-end server load balancing performed by the user

You can use commands to balance the workload of the back-end servers.

Organization of this subsection
(1) Operating procedure
(2) Error handling procedure
(3) Notes

(1) Operating procedure

The operating procedure depends on whether an HA monitor or Hitachi HA Toolkit Extension is used. This subsection describes the operating procedure. If you are moving multiple back-end servers, see (3)(a) Automating the moving of back-end servers.

(a) When an HA monitor is used

1. Check the status of the server to be moved.
At the unit where the system manager is located, execute the pdls -d ha -s server-name -a command and check the displayed information (standard output) for the following:
  • The back-end server to be moved is active (ONL) at the source unit.
  • The back-end server to be moved is in standby (SBY) or inactive (STP) status at the target unit.

2. Start the transaction queuing facility at the back-end server that is to be moved.
Start the transaction queuing facility by executing the pdtrnqing -s server-name command at the back-end server's source unit. There is no need to perform this operation if queuing was not specified in the pd_ha_transaction operand.
Make sure that the command terminates normally with return code 0 or with warning with return code 4. Return code 0 means that the transaction queuing facility has started successfully. Return code 4 means that the pd_ha_transaction operand specification resulted in an error. If the return code is 8 or 12, terminate the procedure because a failure has occurred.

3. Forcibly terminate the back-end server that is to be moved.
Forcibly terminate the back-end server by executing the pdstop -f -s server-name command at the unit containing the system manager. Make sure that the command's return code is 0. If the return code is not 0, terminate the procedure because a failure has occurred.

4. Start the back-end server being moved at the target unit.
At the unit containing the system manager, execute the pdstart -s server-name -u target-unit-identifier command. Make sure that the command's return code is 0. If the return code is not 0, terminate the procedure because a failure has occurred.

5. Check the status of the back-end server being moved.
At the unit containing the system manager, execute the pdls -d ha -s server-name -a command to check the displayed information (standard output) and return code for the following:
  • Check that the back-end server is waiting for startup of the running system (WIT) in the target unit. If the back-end server is waiting for startup of the running system (WIT) in the target unit, proceed to step 6.
  • Check that the back-end server is in active status (ONL) at the target unit. Proceed to step 7 only if the back-end server is in active status (ONL) at the target unit.
  • If neither of the above is true, cancel the procedure because a failure has occurred.

6. Resume startup of the back-end server at the target unit.
At the target unit, the super user must execute the monact server-name command and make sure that the command's return code is 0. If the return code is not 0, terminate the procedure because a failure has occurred.

7. Release the transaction queuing facility at the back-end server being moved.
At the back-end server's target unit, execute the pdtrnqing -d -s server-name command to release the transaction queuing facility. If queuing was omitted in the pd_ha_transaction operand, there is no need to perform this operation.
Check that the command's return code is 0. If the return code is not 0, terminate the procedure because a failure has occurred.
(b) When Hitachi HA Toolkit Extension is used

1. Check the status of the server to be moved.
See 1. in (a) When an HA monitor is used.

2. Start the transaction queuing facility at the back-end server that is to be moved.
See 2. in (a) When an HA monitor is used.

3. Use the cluster software system switchover command to move the back-end server.
Use the cluster software system switchover command to switch over to the system at the target unit.

4. Check the status of the back-end server.
At the unit containing the system manager, execute the pdls -d ha -s server-name -a command to check the displayed information (standard output) and the return code for the following:
  • The back-end server is active (ONL) at the target unit.

5. Release the transaction queuing facility at the back-end server being moved.
See 7. in (a) When an HA monitor is used.

(2) Error handling procedure

If an error occurs while the back-end server is being moved, check the syslogfile and the messages in the standard output and standard error output, and eliminate the cause of the error.

If a failure occurs after the transaction queuing facility has started, execute the following command at the unit containing the system manager in order to release the transaction queuing facility:

 
pdtrnqing -d -f -s server-name

When this command is executed, the transaction queuing facility is released. Because this action is a protective measure against illegal operation of the transaction queuing facility as a result of the failure, a processing request occurs for the back-end server that has not been started, which results in an SQL error.

(3) Notes

(a) Automating the moving of back-end servers

To use the transaction queuing facility to move multiple back-end servers, you can automate the procedure as follows:

  1. Start the transaction queuing facility
  2. Move the back-end servers
  3. Release the transaction queuing facility

If you attempt to do this manually, the processing of moving the back-end servers might take too much time and a timeout might occur in the transaction queuing facility, resulting in a transaction error.

(b) Moving multiple back-end servers

If you use the transaction queuing facility to move multiple back-end servers, execute (1) Operating procedure for each server. Do not execute this procedure for multiple servers at the same time. If multiple back-end servers are moved concurrently, transactions accessing those back-end servers are queued and they might not be able to terminate. In such a case, the pdtrnqing command might result in an error.