Membaca SQL Server Transaction Log
SQL Server memiliki dua jenis log, yaitu error log dan transaction log. Error log berisi infromasi error yang tejadi dalam basis data. Biasanya error log pada SQL Server dapat diakses melalui Object Explorer > Instance > Management > SQL Server Logs. Log tersebut terdiri dari beberapa archive dengan jumlah yang dapat ditentukan.
Sedangkan transaction log adalah log yang mencatat transaksi yang berlangsung dalam sebuat basis data. Transaction log biasanya disimpan dalam format ldf. Setiap basis data akan memiliki file ldf masing-masing. Transaction log tersebut biasanya digunakan untuk melakukan recovery atau sebagai backup dari basis data. Namun tidak menutup kemungkinan untuk dapat membaca transaction log tersebut dengan menggunakan sql statement, yakni dengan menggunakan sys.fn_dblog. Berikut ini contoh penggunaannya.
Select
b.Description,
d.AllocUnitName,
b.[Transaction ID],
d.name,
d.Operation,
b.[Transaction Name],
b.[Begin Time],
c.[End Time]
from (
Select
Description,
[Transaction Name],
Operation,
[Transaction ID],
[Begin Time]
FROM sys.fn_dblog(NULL,NULL)
where Operation like 'LOP_begin_XACT'
) as b
inner join (
Select
Operation,
[Transaction ID],
[End Time]
FROM sys.fn_dblog(NULL,NULL)
where Operation like 'LOP_commit_XACT'
) as c
on c.[Transaction ID] = b.[Transaction ID]
inner join (
select
x.AllocUnitName,
x.Operation,
x.[Transaction ID],
z.name
FROM sys.fn_dblog(NULL,NULL) x
inner join sys.partitions y
on x.PartitionId = y.partition_id
inner join sys.objects z
on z.object_id = y.object_id
where z.type != 'S'
)as d
on d.[Transaction ID] = b.[Transaction ID]
order by b.[Begin Time] ASC
Dengan menggunakan kode tersebut, setiap transaksi yang terjadi dalam basis data serta waktu terjadinya dapat dilihat. Namun untuk isi dari setiap tidak dapat dilihat.
Demikian infonya, semoga membantu.
Komentar
Posting Komentar