IT/SQLD

[SQL] MSSQL 트랜잭션 로그파일 비우는 방법

알콩달콩아빠 2023. 10. 23. 10:34
728x90
반응형

 * 운영 및 유지보수 하다 보면 트랜잭션 로그파일이 꽉 차서 오류가 발생하게 된다. (MSSQL)

   오류가 발생하면 사용량을 확인해서 로그를 축소해주는 작업이 필요하다.

  

 
org.springframework.jdbc.UncategorizedSQLException:
 
### Error updating database. Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 데이터베이스 'KINGPORK'의 트랜잭션 로그가 'LOG_BACKUP'(으)로 인해 꽉 찼습니다.
 
### The error occurred while setting parameters
 
### SQL: INSERT INTO KINGPORK (KING, PORK, DATE) VALUES(?,?,GETDATE())
 
### Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 데이터베이스 'KINGPORK'의 트랜잭션 로그가 'LOG_BACKUP'(으)로 인해 꽉 찼습니다.
 
; uncategorized SQLException for SQL []; SQL state [S0002]; error code [9002]; 데이터베이스 'KINGPORK'의 트랜잭션 로그가 'LOG_BACKUP'(으)로 인해 꽉 찼습니다.; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: 데이터베이스 'KINGPORK'의 트랜잭션 로그가 'LOG_BACKUP'(으)로 인해 꽉 찼습니다.
 
 
 
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:90) ~[spring-jdbc-4.3.12.RELEASE.jar:4.3.12.RELEASE]
 
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:82) ~[spring-jdbc-4.3.12.RELEASE.jar:4.3.12.RELEASE]

 

1 ) 트랜잭션 로그파일을 비우는 방법

    - SQL로 처리하는 방법과 SSMS( SQL server Management Studio)의 메뉴로 처리하는 방법이 있는데,

      SQL로 처리하는 방법이 더 간단하여 해당 방법만 설명해 드리도록 하겠습니다.

1-1 ) SQL로 처리하는 방법

 
USE KINGPORK;
 
-- 사용할 DB 선택
 
 
 
ALTER DATABASE KINGPORK SET RECOVERY SIMPLE;
 
-- DB 복구 모델을 SIMPLE로 설정하여 파일을 비운다.
 
 
 
DBCC SHRINKDATABASE(KINGPORK);
 
-- DB의 필요 없는 공간을 축소
 
 
 
ALTER DATABASE KINGPORK SET RECOVERY FULL;
 
-- DB 복구 모델을 FULL 로 설정

  => SQL 실행하게 되면 " 트랜잭션 로그가 꽉 찼습니다 "라는 오류가 해결된다.

 

출처 : [SQL] MSSQL 트랜잭션 로그파일 비우는 방법 (tistory.com)

728x90
반응형