Udostępnij za pośrednictwem


Log Sequence Number (LSN)

Com o objetivo de manter as propriedades ACID (Atomicity, Consistency, Isolation e Durability), as transações efetuadas em banco de dados utilizam registros de log com informações de undo/redo de suas operações. Cada operação é identificada unicamente através do Log Sequence Number (LSN). Esse identificador incremental permite identificar a sequencia de gravação de log.

Esse número é dividido em 3 partes: logical file/offset/slot.

Exemplo:

000000cd:000000b0:0001
000000cd:000000b8:0001
000000cd:000000b8:0002
000000cd:000000c0:0001
000000cd:000000c0:0002
000000cd:000000c0:0003
000000cd:000000c8:0001
000000cd:000000c8:0002
000000cd:000000c8:0003
000000cd:000000c8:0004

Aqui temos:

  • 10 log record (cada um identificado por um LSN)
  • 4 log buffers (cd:b0, cd:b8, cd:c0, cd:c8)
  • 1 logical log file (000000cd)

Logical Log File

No exemplo anterior, observamos que as gravações são realizadas no logical log file identificado por 000000cd = 205. Existe uma forma simples para identificar qual o arquivo corresponde. Primeiro, procuramos qual o "FileID" correspondente ao FSeqNo = 205 (000000cd). Depois consultamos o nome do arquivo no catálogo sys.database_files.

 dbcc loginfo

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

image 

 select file_id, physical_name from sys.database_files

image

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }