drop log 参数:删除逻辑日志(SQL 管理 API)

随同 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;