interrogating the transaction log

Post on 23-Feb-2016

49 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

Or, The Transaction Log: Why You Can’t Run Your Database Without It. Interrogating the Transaction Log. What We’ll Cover. ACID Properties Transactions Write-ahead Logging Log Space Reservation Reading the Log with fn_dblog Identifying Active Transactions - PowerPoint PPT Presentation

TRANSCRIPT

Interrogating the Transaction Log

Or, The Transaction Log: Why You Can’t Run Your Database Without It

What We’ll Cover

ACID Properties Transactions Write-ahead Logging Log Space Reservation Reading the Log with fn_dblog Identifying Active Transactions Finding Log Records Associated with

Active Transactions

Database 101 - ACID Properties Atomicity Consistency Isolation Durability

Human sacrifice, dogs and cats living together... mass hysteria!

Transactions and Write-Ahead Logging What is a transaction? Explicit v. Implicit Transactions Write-ahead logging Roll back and roll forward

Log Space Reservation

SQL Server uses log space for transaction records

Additional space is reserved for potential rollback activity

Committed transaction releases reserved space

Log Space Reservation Demo SMALLER TRANSACTIONS ARE

BETTER!

Reading the Transaction Log Table-based function that allows the

transaction log to be read Takes 2 parameters, starting and

ending log sequence numbers (LSN) SELECT * FROM fn_dblog(NULL,NULL)

returns the contents of the log

fn_dblog demo

sys.dm_tran_database_transactions Returns information about active

transactions Results contain the begin and end

LSN for each transaction

Finding Log Records for Active Transactions – Attempt #1

Both the DMV and function contain a transaction_id

The DMV id is hexadecimal and the function id is decimal, so converting one of them should work, right?

Image Source - http://4.bp.blogspot.com/-DY_k_dCp9EE/TvzOLaf17JI/AAAAAAAABBM/dBff_mOtNws/s1600/wrong+answer.jpg

Finding Log Records for Active Transactions – Failed Attempt #1

Converting the transaction IDs from either source did not result in a match

After several attempts to make it work (octal, double and add 30, multiply by 9/5 and add 32) I wrote Paul Randal

His response? “They don’t match. It’s annoying.”

Finding Log Records for Active Transactions – Attempt #2

Both the DMV and the function contain begin and end LSNs

The function returns colon-delimited hex LSNs (0000001a:000027a5:0001)

The DMV returns a decimal value (26000001014900001)

top related