随同 admin() 或 task() 函数,使用 drop log 参数删除指定的逻辑日志。
语法
元素 |
描述 |
关键考虑 |
log_number
|
逻辑日志文件编号。 |
该编号必须是一个大于或等于 0 的无符号整数。 |
用法
使用这个函数来删除单个逻辑日志文件。
数据库服务器随时都要求最少三个逻辑日志文件。如果数据库服务器仅有三个逻辑日志文件,则您不可删除日志文件。
重要: 在您可删除前三个逻辑日志文件的任何一个之前,必须添加新的逻辑日志文件并运行逻辑日志文件的备份。必须使用 ontape
-a 命令或 ontape -c 命令运行备份。在您添加新的逻辑日志文件并运行备份之后,您可使用
onparams -d -llognum 来删除前三个逻辑日志文件。
日志文件的状态决定能否删除日志文件,还决定当删除日志文件时数据库服务器采取的行动:
- 如果您删除一个还没有写过的日志文件,状态为新“添加的”(A),则数据库服务器删除日志文件并立即释放空间。
- 如果您删除一个状态为“用户”(U)或“释放”(F)的已使用过的日志文件,则数据库服务器将日志文件标记为“删除的”(D)。在您对包含日志文件的 dbspace 和 root dbspace 进行 0 级备份之后,数据库服务器删除该日志文件并释放空间。
- 您不可删除当前在用(C)或包含最后检查点记录(L)的日志文件。
您可从 onstat -l 命令的编号域获取日志编号。日志编号可能是无序的。
这个函数等同于 onparams -d -l lognum 命令。
示例
下列示例删除文件编号为 2 的逻辑日志:
EXECUTE FUNCTION task("drop log","2");
下列示例通过根据 chunk 编号查找日志编号来删除特定 chunk 的日志:
SELECT task("drop log", number) FROM sysmaster:syslogfil WHERE chunk = 1;