| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- Effective Java 3
- effectivejava
- 김영한
- JavaScript
- 스프링 핵심원리
- java
- Sort
- Effective Java
- 스프링
- 오블완
- ElasticSearch
- 스프링부트
- 카카오
- kubernetes
- 자바스크립트
- 이펙티브자바
- springboot
- 알고리즘
- 스프링핵심원리
- 클린아키텍처
- 자바
- Spring
- k8s
- 엘라스틱서치
- 티스토리챌린지
- 데이터베이스
- 알고리즘정렬
- 예제로 배우는 스프링 입문
- 이펙티브 자바
- Kotlin
- Today
- Total
목록데이터베이스 (4)
Kim-Baek 개발자 이야기
서버 한 대로는 한계였다Court Alarm이 2년째 운영되면서 사용자가 급증했다.월간 활성 사용자: 10만 명일일 예약: 5,000건동시 접속: 1,000명MySQL 서버 하나로 버티고 있었는데, 점점 한계가 보이기 시작했다.CPU: 90% (쿼리 처리)메모리: 85% (버퍼 풀)디스크 I/O: 포화 (읽기/쓰기)응답 시간: 2초 (평소 50ms)특히 새벽 6시, 예약 오픈 시간에는 서버가 거의 죽었다.두 가지 선택지가 있었다:1. Scale-Up (수직 확장)서버 스펙 업그레이드CPU, RAM, SSD 증설한계: 비용 급증, 물리적 한계2. Scale-Out (수평 확장)서버 추가읽기/쓰기 분산무한 확장 가능당연히 Scale-Out을 선택했다. 그리고 두 가지 기법을 적용했다:Replication: ..
같은 쿼리가 다른 결과를 보여줬다예약 통계를 보여주는 대시보드를 만들고 있었다.@Transactionalfun getStatistics(userId: Long): Statistics { // 1. 총 예약 수 val totalCount = reservationRepository .countByUserId(userId) // 2. 예약 목록 val reservations = reservationRepository .findByUserId(userId) return Statistics( totalCount = totalCount, reservations = reservations )}이상한 현상:totalCoun..
실수로 테이블을 날렸다금요일 오후 4시, 배포를 준비하고 있었다.-- 개발 DB에서 테스트 데이터 삭제하려고DELETE FROM test_reservations WHERE created_at 실행 버튼을 눌렀다. 1초 후, 끔찍한 메시지가 보였다.Query OK, 450,234 rows affected45만 건? 테스트 데이터는 100건인데...급하게 확인해보니 운영 DB에 접속되어 있었다. 실수로 운영 DB의 예약 데이터를 삭제한 것이다.SELECT COUNT(*) FROM reservations;-- 50,000 (원래 500,000)45만 건의 예약이 사라졌다.심장이 멎는 것 같았다. 하지만 다행히 백업과 바이너리 로그가 있었다.# 1. 새벽 2시 백업 복원mysql 30분 후, 모든 데이터가 복구..
데이터가 사라졌다금요일 밤 11시, 장애 알림이 울렸다."DB 서버 응답 없음"Court Alarm의 모든 예약 데이터가 저장된 MySQL 서버가 다운됐다. 급하게 서버에 접속했다.mysql -u root -p# ERROR 2002 (HY000): Can't connect to local MySQL serverMySQL이 죽어있었다. 재시작을 시도했다.systemctl start mysql# Job for mysql.service failed로그를 확인했다.tail -f /var/log/mysql/error.log[ERROR] InnoDB: Corruption detected in tablespace reservations[ERROR] InnoDB: Database page corruption[ERROR..
