MariaDB Deadlock 재현과 원인 추적 — 두 세션 잠금 순서로 이해하기
도입 Deadlock은 두 트랜잭션이 서로 상대방의 잠금 해제를 기다리는 순환 대기다. InnoDB는 이를 감지하면 한 트랜잭션을 희생시켜 오류 1213을 반환하고 다른 트랜잭션이 진행하게 한다. 재시도는...
MariaDB 검색 결과: 15개
도입 Deadlock은 두 트랜잭션이 서로 상대방의 잠금 해제를 기다리는 순환 대기다. InnoDB는 이를 감지하면 한 트랜잭션을 희생시켜 오류 1213을 반환하고 다른 트랜잭션이 진행하게 한다. 재시도는...
도입 컬럼을 한 번에 바꾸면 이전 애플리케이션과 새 애플리케이션이 동시에 동작하는 배포 구간에서 한쪽이 실패할 수 있다. Expand-Contract는 호환 가능한 구조를 먼저 추가하고 사용 전환이 끝난 뒤 오...
도입 최소 권한은 GRANT 문장을 작성하는 것으로 끝나지 않는다. 애플리케이션이 필요한 작업은 성공하고, 스키마 변경·계정 관리·시스템 테이블 조회는 실패하는지 실제 계정으로 확인해야 한다. 아래 SQL은 M...
도입 덤프 명령의 성공은 마이그레이션 완료가 아니다. 구조, 데이터, 루틴·이벤트, 문자셋과 애플리케이션 동작이 대상에서 검증되어야 한다. 이 글은 InnoDB 데이터베이스 하나를 새 서버로 옮기는 절차와 각 ...
도입 depends_on은 프로세스 시작 순서를 표현할 수 있지만 DB가 인증과 쿼리를 받을 준비가 됐다는 의미는 아니다. 이 글은 실패 구성을 먼저 실행하고, 타임스탬프 로그와 컨테이너 상태로 healthch...
도입 ALTER TABLE이 끝나지 않을 때 테이블 크기만 의심하면 원인을 놓칠 수 있다. Waiting for table metadata lock 상태라면 다른 세션의 열린 트랜잭션 때문에 DDL이 시작되지 ...
Metrics, Logs, Traces의 정의를 각각 외워도 장애가 발생했을 때 연결하지 못하면 조사 시간이 줄지 않는다. 이 글은 PHP API의 응답 시간이 늘고 오류율이 상승한 상황을 가정해 이상 감지 → 실패...
AI로 코드 초안을 빠르게 만드는 것과 안전하게 배포하는 것은 다른 문제다. 같은 코드 생성이라도 README 문구 수정과 인증 로직 변경의 위험은 같지 않다. 따라서 “AI를 사용했는가”보다 작업의 영향도에 맞는 ...
AWS Well-Architected Framework의 여섯 원칙을 정의하는 것만으로 시스템은 바뀌지 않는다. 목적은 현재 구성의 위험과 의사결정 근거를 찾아 우선순위가 있는 개선 작업으로 만드는 것이다. 이 글은...
트래픽이 증가한다고 Redis, 로드 밸런서, 복제 DB와 큐를 한꺼번에 추가하면 운영 지점만 늘어날 수 있다. 확장은 현재 병목과 실패 조건을 측정한 뒤 가장 작은 변화부터 적용해야 한다. 1. 먼저 서비스 ...