반응형
트랜잭션 로그 조회
데이터베이스에서 발생하는 행위들이 저장되는 트랜잭션 로그를 조회해보자
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'
반응형
'프로그래밍 > MSSQL' 카테고리의 다른 글
[MSSQL] BULK INSERT (CSV/TXT 파일 결과 저장 & 파일 INSERT) (1) | 2019.12.18 |
---|---|
[MSSQL] 사용자 정의 데이터 형식을 이용한 프로시저 집합기반 처리 (프로시저 테이블 파라미터 TVP) (0) | 2019.12.17 |
[MSSQL] 로그인 등록/수정/삭제 (오류 암호의 유효성을 검사하지 못했습니다.) (0) | 2019.12.10 |
[MSSQL] SPLIT 문자열 구분자로 자르기 (0) | 2019.11.29 |
[MSSQL] TEXT 타입에 REPLACE 함수 적용 (0) | 2019.11.28 |