데이터베이스 운영 중 발생할 수 있는 오류 상황은 다양합니다.
아래에 일반적으로 자주 발생하는 오류 상황들을 분류와 함께 정리해보았습니다:
✅ 1. 접속 관련 오류
- DB 서버 다운: 네트워크 문제, 하드웨어 장애, OS 크래시 등으로 인해 DB 서버가 중단됨.
- 접속 제한 초과: Too many connections — 클라이언트 연결 수가 DB 설정을 초과.
- 인증 오류: 사용자명 또는 비밀번호 오류로 인한 접속 실패.
- 네트워크 장애: 클라이언트-서버 간 통신 불가 (방화벽, DNS 문제 등).
✅ 2. SQL 오류
- 문법 오류: 쿼리 내 SQL 구문이 잘못됨.
- 예: SELECT * FORM users (오타)
- 예: SELECT * FORM users (오타)
- 제약 조건 위반:
- PRIMARY KEY, FOREIGN KEY, NOT NULL, UNIQUE 위반 등.
- 예: 중복된 키 입력 시 오류 발생.
- PRIMARY KEY, FOREIGN KEY, NOT NULL, UNIQUE 위반 등.
- 데이터 타입 불일치: 숫자 컬럼에 문자열 입력 등.
✅ 3. 트랜잭션 및 동시성 오류
- Deadlock: 두 개 이상의 트랜잭션이 서로 자원을 기다리며 교착 상태에 빠짐.
- Lock Wait Timeout: 락이 풀릴 때까지 대기하다가 타임아웃 초과.
- Dirty Read / Phantom Read: 격리 수준에 따라 발생하는 일관성 문제.
✅ 4. 스토리지 및 하드웨어 오류
- 디스크 공간 부족: 테이블 쓰기, 인덱스 생성 등 불가.
- 디스크 손상: 파일 시스템 에러, 데이터파일 손상.
- 메모리 부족: 캐시 미스 증가, OOM(Out of Memory) 발생.
✅ 5. 성능 저하 문제
- 인덱스 부재 또는 비효율적 사용: 느린 쿼리 발생.
- 통계 정보 미갱신: 옵티마이저가 비효율적 실행계획 선택.
- 파편화(Fragmentation): DML이 많은 테이블의 성능 저하.
✅ 6. 복구 및 백업 관련 오류
- 백업 실패: 권한 문제, 경로 오류, 디스크 공간 부족 등.
- 복구 실패: 백업 파일 손상, 버전 불일치 등.
✅ 7. 보안 관련 오류
- 권한 부족: 특정 명령 실행 시 권한 에러 발생.
- SQL Injection: 사용자 입력값 검증 부족으로 악의적 쿼리 실행.
- 감사 로그/보안 로그 누락: 감사 대상이 누락되어 보안 취약.
✅ 8. 애플리케이션과의 연동 오류
- ORM 매핑 오류: DB와 모델 간 스키마 불일치.
- 커넥션 풀 문제: 커넥션 누수 또는 재사용 실패.
- 타임존/로케일 설정 오류: 날짜/시간이 잘못 저장되거나 조회됨.
