drop log argument: Drop a logical log (SQL administration API)

Use the drop log argument with the admin() or task() function to drop the specified logical log.

Syntax


1  EXECUTE FUNCTION
1 admin
1 task
2  ( "drop log"
2  , "log_number"
2  ) ;
Element Description Key Considerations
log_number The logical log file number. The number must be an unsigned integer greater than or equal to 0.

Usage

Use this function to drop a single logical log file.

The database server requires a minimum of three logical-log files at all times. You cannot drop a log file if the database server has only three logical-log files.

Important: Before you can drop any of the first three logical-log files, you must add new logical-log files and run a backup of the logical-log files. The backup must be run using either the ontape -a command or the ontape -c command. After you add the new logical-log files and run a backup, you can then use onparams -d -llognum to delete the first three logical-log files.
The status of the log file determines if the log file can be dropped, and the actions taken by the database server when the log file is dropped:
  • If you drop a log file that has never been written to, status is newly Added (A), the database server deletes the log file and frees the space immediately.
  • If you drop a used log file that has a status of User (U) or Free (F), the database server marks the log file as Deleted (D). After you take a level-0 backup of the dbspaces that contain the log files and the root dbspace, the database server deletes the log file and frees the space.
  • You cannot drop a log file that is currently in use (C) or contains the last checkpoint record (L).

You can obtain the log number from the number field of the onstat -l command. The sequence of log numbers might be out of order.

This function is equivalent to the onparams -d -l lognum command.

Example

The following example drops the logical log with a file number of 2:
EXECUTE FUNCTION task("drop log","2");
The following example drops the log for a specific chunk by looking up the log number based on the chunk number:
SELECT task("drop log", number) FROM sysmaster:syslogfil WHERE chunk = 1;