| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- springboot
- 알고리즘정렬
- 티스토리챌린지
- effectivejava
- 오블완
- 이펙티브자바
- 이펙티브 자바
- 스프링 핵심원리
- 클린아키텍처
- ElasticSearch
- Effective Java 3
- 알고리즘
- Kotlin
- 스프링부트
- 카카오
- Effective Java
- 자바
- 김영한
- kubernetes
- 자바스크립트
- 함수형프로그래밍
- 스프링핵심원리
- JavaScript
- 엘라스틱서치
- Sort
- Spring
- 예제로 배우는 스프링 입문
- k8s
- java
- 스프링
- Today
- Total
목록2026/01/09 (3)
Kim-Baek 개발자 이야기
실수로 테이블을 날렸다금요일 오후 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분 후, 모든 데이터가 복구..
MySQL로는 처리할 수 없었다Court Alarm이 2년째 운영되면서 새로운 기능을 추가하기로 했다. 실시간 채팅이었다.사용자들이 코트를 예약하면서 서로 메시지를 주고받고, 매칭을 할 수 있게 하는 것이었다. 간단해 보였다.-- 채팅 메시지 테이블CREATE TABLE chat_messages ( id BIGINT PRIMARY KEY AUTO_INCREMENT, room_id BIGINT NOT NULL, user_id BIGINT NOT NULL, message TEXT NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, INDEX idx_room_created (room_id, created_at));베타 테스트를..
데이터가 사라졌다금요일 밤 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..
