Logical-log buffer

The database server uses the logical log to store a record of changes to the database server data since the last dbspace backup. The logical log stores records that represent logical units of work for the database server.

The logical log contains the following five types of log records, in addition to many others:

  • SQL data definition statements for all databases
  • SQL data manipulation statements for databases that were created with logging
  • Record of a change to the logging status of a database
  • Record of a checkpoint
  • Record of a change to the configuration
The database server uses only one of the logical-log buffers at a time. This buffer is the current logical-log buffer. Before the database server flushes the current logical-log buffer to disk, it makes the second logical-log buffer the current one so that it can continue writing while the first buffer is flushed. If the second logical-log buffer fills before the first one finishes flushing, the third logical-log buffer becomes the current one. This process is illustrated in the following figure.
Figure 1. The logical-log buffer and its relation to the logical-log files on disk
The paragraph that precedes this figure describes the content of the figure.

For a description of how the database server flushes the logical-log buffer, see Flush the logical-log buffer.

The LOGBUFF configuration parameter specifies the size of the logical-log buffers. Small buffers can create problems if you store records larger than the size of the buffers (for example, TEXT or BYTE data in dbspaces). The recommended value for the size of a logical log buffer is 64 KB. Whenever the setting is less than the recommended value, the database server suggests a value during server startup. For the possible values that you can assign to this configuration parameter, see the Informix® Administrator's Reference.

For information about the affect of TEXT and BYTE data on shared memory buffers, see Buffer large-object data.