Nonstop Database, HiRDB Version 9 System Operation Guide
You use the pdbufmod command to add, modify, and delete global buffers while HiRDB is running. This is called dynamic updating of global buffers. For example, you can perform global updating of global buffers for the following purposes:
Note that HiRDB Advanced High Availability must be installed in order to perform dynamic updating of global buffers.
Global buffers that have been updated dynamically become invalid when HiRDB terminates normally or with a planned termination. Therefore, while HiRDB is stopped, you must use the pdbuffer operand to define any global buffers that were updated dynamically. Note also that when you use the system reconfiguration command (pdchgconf command), you can change values specified in the pdbuffer operand while HiRDB is running. For details about using the system reconfiguration command to change HiRDB system definitions, see 9.2 Modifying HiRDB system definitions while HiRDB is running (system reconfiguration command).
In addition, before terminating HiRDB normally or with a planned termination, you should save the execution results of the pdbufls -k def command (global buffer definition information). You can then refer to this information to update the pdbuffer operand.
Before updating global buffers dynamically, you must first complete the operations described in the following subsections.
You cannot perform dynamic updating of global buffers while you are using the rapid system switchover facility or the standby-less system switchover facility. To use these facilities, execute the system reconfiguration command (pdchgconf command) to change the values specified in the pdbuffer operand so that global buffers are assigned. Use of the pdchgconf command enables you to modify HiRDB system definitions while HiRDB is running. However, HiRDB Advanced High Availability must be installed in order to use this command. For details about changing HiRDB system definitions while HiRDB is running, see 9.2 Modifying HiRDB system definitions while HiRDB is running (system reconfiguration command).
While dynamic updating of global buffers is being performed (while the pdbufmod command is executing), the associated RDAREAs are locked by placing them in exclusion mode (EX). This means that transactions that attempt to access these RDAREAs are placed in wait status.
To set the maximum number of global buffers, use the pd_max_add_dbbuff_no and pd_max_add_dbbuff_shm_no operands.
You can determine the number of global buffers by counting the number of global buffers displayed in the execution results of the pdbufls -k def command. For a HiRDB parallel server configuration, count the number of global buffers associated with the server name (header name: SVID).
When you update a global buffer dynamically (when a global buffer is added or when a global buffer modification increases memory requirements), a new shared memory segment is secured, and the dynamically updated global buffer is assigned to this shared memory segment. To set the shared memory segments, use the pd_max_add_dbbuff_no and pd_max_add_dbbuff_shm_no operands. For a HiRDB parallel server configuration, set the value for each server. You can determine the number of shared memory segments by counting the number of shared memory segments displayed in the execution results of the pdbufls -k mem command. For a HiRDB parallel server configuration, count the number of shared memory segments associated with the server name (header name: SHM-OWNER).
If the number of shared memory segments exceeds the maximum, update the pdbuffer operand with the definition information for the dynamically updated global buffers. Then, starting HiRDB normally will reduce the number of shared memory segments.
Note that if the size of the shared memory used by a dynamically updated global buffer is greater than the value in the SHMMAX operand, the shared memory that is being used by the global buffer will consist of more than one shared memory segment. You can use the following formula to obtain the number of shared memory segments that have been allocated:
size-of-shared-memory-used-by-the-dynamically-updated-global-buffer value-in-SHMMAX-operand
For details about shared memory used by global buffers, see the HiRDB Version 9 Installation and Design Guide.
All Rights Reserved. Copyright (C) 2011, 2015, Hitachi, Ltd.