728x90
반응형
트랜잭션 로그 조회
데이터베이스에서 발생하는 행위들이 저장되는 트랜잭션 로그를 조회해보자
fn_dblog(시작 LSN, 종료 LSN)
시작 LSN, 종료 LSN이 NULL일 경우 트랜잭션 로그 파일의 모든 로그 결과를 반환한다.
SELECT *
FROM fn_dblog(NULL, NULL)
결과 데이터
특정 테이블의 트랜잭션 로그
AllocUnitName 칼럼에서 테이블의 이름을 확인할 수 있다.
SELECT
[Current LSN],
[Operation],
[Transaction ID],
[AllocUnitId],
[AllocUnitName],
[Begin Time],
[End TIme]
FROM fn_dblog (NULL, NULL)
WHERE AllocUnitName = 'dbo.ggmouse'
특정 사용자의 트랜잭션 로그
Transaction SID 컬럼에 SUSER_SID 함수를 이용하여 확인할 수 있다.
SELECT
[Current LSN],
[Operation],
[Transaction ID],
[AllocUnitId],
[AllocUnitName],
[Begin Time],
[End TIme]
FROM fn_dblog (NULL, NULL)
WHERE [Transaction SID] = SUSER_SID('ggmouse');
Operation 컬럼
행위를 나타내는 Operation 칼럼의 값들에 대해 알아보자
너무 많기 때문에, 주요한 몇 가지에 대해서만 확인해보자
Operation | Description |
LOP_BEGIN_XACT | 트랜잭션 시작을 의미한다. |
LOP_COMMIT_XACT | 트랜잭션 커밋을 의미한다. |
LOP_INSERT_ROWS | 테이블에 행 입력을 의미한다. |
LOP_MODIFY_ROW | 테이블의 행 수정을 의미한다. |
LOP_DELETE_ROWS | 테이블의 행 삭제를 의미한다. |
1. 아무런 행위가 일어나기 전 트랜잭션 로그 결과
2. INSERT 구문으로 데이터 입력 후 트랜잭션 로그
INSERT INTO table_age VALUES (30)
GO
SELECT
[Current LSN],
[Operation],
[Transaction ID],
[AllocUnitId],
[AllocUnitName],
[Begin Time],
[End TIme]
FROM fn_dblog (NULL, NULL)
WHERE AllocUnitName = 'dbo.table_age'
트랜잭션 로그 결과
3. UPDATE 구문으로 데이터 수정 후 트랜잭션 로그 결과
(4개의 행이 수정됐기 때문에 4개의 트랜잭션 로그가 발생)
UPDATE table_age SET age = 50
GO
SELECT
[Current LSN],
[Operation],
[Transaction ID],
[AllocUnitId],
[AllocUnitName],
[Begin Time],
[End TIme]
FROM fn_dblog (NULL, NULL)
WHERE AllocUnitName = 'dbo.table_age'
트랜잭션 로그 결과
4. DELETE 구문으로 데이터 삭제 후 트랜잭션 로그 결과
(4개의 행이 삭제됐기 때문에 4개의 트랜잭션 로그 발생)
DELETE table_age
GO
SELECT
[Current LSN],
[Operation],
[Transaction ID],
[AllocUnitId],
[AllocUnitName],
[Begin Time],
[End TIme]
FROM fn_dblog (NULL, NULL)
WHERE AllocUnitName = 'dbo.table_age'
트랜잭션 로그 결과
728x90
반응형
'IT > SQLD' 카테고리의 다른 글
mssql transaction log 파일 강제 삭제 (0) | 2023.10.23 |
---|---|
[MSSQL] 트랜잭션 로그파일 삭제 및 잘라내기 (0) | 2023.10.23 |
[MS-SQL] IN / NOT IN (0) | 2023.10.22 |
[SQL] (NOT)EXISTS 와 (NOT)IN 비교하기 (0) | 2023.10.22 |
WHERE : 단일 조건식 지정 (0) | 2023.10.22 |