专用 CLFS 日志

通用日志文件系统(CLFS)日志可以是专用日志,也可以是多路复用日志。 专用日志用作单个流的稳定存储。 多路复用日志用作多个流的稳定存储。 本文讨论专用日志。 有关多路复用日志的信息,请参阅多路复用 CLFS 日志

若要创建专用日志,请执行以下步骤。

  1. 调用 ClfsCreateLogFile 以获取指向 LOG_FILE_OBJECT 结构的指针。 将 puszLogFileName 参数设置为“log:<log name>”形式的字符串,其中 <日志名称> 是基础文件系统上的有效路径。 例如,如果将 puszLogFileName 设置为“log:c:\ClfsLogs\myLog”,则会在 c:\ClfsLogs 目录中创建基本日志文件 myLog.blf。 c:\ClfsLogs 目录也将用作稍后添加到日志中的容器的默认位置。

    它是在 puszLogFileName 中传递的字符串的形式,用于确定 CLFS 是创建专用日志还是多路复用日志。 如果字符串在日志名称后面有一个双冒号(::),则 CLFS 将创建多路复用日志。 在此示例中,“log:c\ClfsLogs\myLog”没有双冒号,因此 CLFS 会创建专用日志。

    LOG_FILE_OBJECT 指针由 ClfsCreateLogFile 返回,表示专用日志的唯一流的一个开放实例。

  2. 将您从 ClfsCreateLogFile 获取的 LOG_FILE_OBJECT 指针传递给 ClfsAddLogContainer,以在稳定存储上创建一个容器(连续物理区)保存日志记录。 通过设置 pcbContainer 参数来指定容器的大小(将向上舍入为 512 千字节的倍数)。 设置 puszContainerPath 参数以指定容器的路径名称。 路径名称可以是绝对名称,也可以是相对于包含基本日志文件的目录。

    可以通过再次调用 ClfsAddLogContainer 为日志创建更多容器。 给定日志的所有容器的大小必须相同。 作为多次调用 ClfsAddLogContainer 的替代方法,可以调用 ClfsAddLogContainerSet 以同时创建多个容器。

  3. 将您从ClfsCreateLogFile获取的LOG_FILE_OBJECT指针传递给ClfsCreateMarshallingArea,以便获取一个指向封送区域的指针,该区域可用于读取和写入日志记录到您的流中。 通过设置 cbMarshallingBuffer 参数指定封送区域使用的日志 I/O 块的大小。 可以使用其他几个参数来设置封送区域的各种属性。

如果需要更多的封送区域,请再次将相同的 LOG_FILE_OBJECT 指针传递给 ClfsCreateMarshallingArea ,一次用于所需的每个额外的封送区域。

现在,你有一个或多个与流关联的封送区域,可以通过调用以下函数将记录写入这些封送区域。

ClfsReserveAndAppendLog

ClfsReserveAndAppendLogAligned

ClfsWriteRestartArea

每次写入记录时,都会返回标识记录的日志序列号(LSN)。 分配给记录的 LSN 始终大于分配给以前写入的记录的 LSN,无论记录是在哪个数据编组区域写入的。

另请参阅

ClfsAddLogContainer

ClfsAddLogContainerSet

ClfsCreateLogFile

ClfsCreateMarshallingArea

ClfsReserveAndAppendLog

ClfsReserveAndAppendLogAligned

ClfsWriteRestartArea

LOG_FILE_OBJECT

多路复用 CLFS 日志