Compatibilidad con CLFS para el archivado
Common Log File System (CLFS) admite el archivado para registros dedicados manteniendo una cola de archivo. Al llamar a ClfsCreateLogFile para crear un registro dedicado, puede establecer la marca de FILE_ATTRIBUTE_ARCHIVE del parámetro fFlagsAndAttributes para especificar que CLFS debe mantener una cola de archivo para el registro. Un registro para el que CLFS mantiene una cola de archivo se denomina registro no efímero.
Supongamos que está realizando transacciones en una base de datos y cada transacción tiene varias actualizaciones que se describen mediante registros de registro. Después de que una transacción determinada se haya confirmado y escrito en un almacenamiento estable, es posible que no necesite los registros de registro que describen esa transacción más. Es decir, los registros de registro no serían necesarios durante la recuperación de reinicio en caso de error del sistema. Sin embargo, si se produce un error en el medio de almacenamiento estable que contiene la base de datos y la base de datos no se ha archivado recientemente en un medio diferente, se podrían perder las actualizaciones de la base de datos.
En el párrafo anterior se describen los registros de la base de datos de archivado, pero en otros escenarios es posible que desee archivar registros de registro. En cualquier caso, el archivado es responsabilidad de los clientes (su software). Puede realizar un seguimiento del archivado que ha realizado estableciendo el final del archivo del registro. El final del archivo es el número de secuencia de registro (LSN) del registro más antiguo para el que aún no se ha completado el archivado.
Un registro no efímero tiene realmente dos colas: una marcada por el LSN base y otra marcada por la cola del archivo. Puede colocar las dos colas como se ajuste llamando a ClfsAdvanceLogBase (o ClfsWriteRestartArea) y ClfsSetArchiveTail. Normalmente, el LSN base apunta al registro más antiguo que seguiría siendo necesario para la reversión o reinicio de la transacción, y el final del archivo apunta al registro más antiguo para el que no se ha realizado el archivado. Tenga en cuenta que la cola del archivo puede ser menor que el LSN base o puede ser mayor que el LSN base.
El LSN base y la cola del archivo son importantes cuando se llama a ClfsReadNextLogRecord repetidamente para leer una cadena de registros vinculados por LSN anteriores, LSN de deshacer-next o LSN de usuario. ClfsReadNextLogRecord no leerá un registro cuyo LSN sea menor que el final del archivo y el LSN base. Sin embargo, leerá un registro cuyo LSN está entre la cola de archivo y el LSN base. Para obtener más información sobre las siguientes cadenas de registros, consulte Lectura de registros de datos de una secuencia CLFS.