본문 바로가기

db6

[MySQL] Metadata Lock 회사에서 겪었던 이슈를 해결하면서 공부도 할 겸 포스팅해보았다. 포스팅 흐름을 간단하게 요약하면 다음과 같다. metadata lock이란? metadata lock이 왜 발생하는지 어떻게 해결했는지 휴먼 에러 interacvtive_timeout wait_timeout Metadata lock이란? 회사에서 작업을 하다가 의도치 않은 Lock이 발생하였다. 현재 진행 중인 프로세스들의 상태를 확인해보자. SHOW FULL PROCESSLIST; 현재 프로세스 상태를 보면 다음과 같은 문장을 볼 수 있다. Waiting for table metadata lock 자세한 정보를 확인해보니 개발환경에서 DDL을 날리면서 발생한 문제였다. Lock이 걸린 프로세스를 kill 하면 그만이지만 원인을 알아야 의도.. 2022. 9. 13.
4장. 데이터베이스와 아키텍쳐 구성 - (2) 리플리케이션 이번 포스팅에서는 리플리케이션에 대해 알아본다. 리플리케이션 리플리케이션이 나오게된 배경은 다음과 같다. '저장된 데이터가 손실되면 어떻게 하지?' 이전 포스팅에서 설명한 Active - Active, Active - Stand by 클러스터 구성에서 서버 부분은 다중화할 수 있어도 저장소는 다중화할 수 없어서 데이터를 다중화할 수 없는 단점이 존재한다. 즉, 저장소가 날아가면 데이터를 잃게 된다. 이런 상황에 대응하기 위해 '실제 데이터가 저장되는 저장소도 복제하자!' 가 해결 방안이였으며 이에 대한 클러스터 구성을 리플리케이션 한다. * 리플리케이션이란? Replication, 즉 복제를 뜻한다. DB 서버와 저장소 세트를 복제하여 복수로 준비하는 것을 뜻한다. 리플리케이션은 서버와 저장소가 동시에 .. 2021. 2. 1.
4장. 데이터베이스와 아키텍쳐 구성 - (1) 클러스터링 우리가 알고자 하는 데이터베이스의 아키택쳐는 다음과 같다. 이번 챕터에서는 데이터베이스의 클러스터링에 대해서 알아보며, 이번 포스팅에서는 Active - Active, Active - Stand by와 Shared Disk, Shared Nothing을 알아보도록 하자. 장애가 발생할 때마다 정지를 한다면 인프라로써 역할을 다하지 못할 것이다. 견고한 시스템을 구축하기 위해서는 다중화를 고려해야 하고 다중화를 하기 위해선 가용성을 고려해야 한다. 가용성을 높이기 위한 방법은 2가지가 있다. 1. 심장 전략 2. 신장 전략 이 전략들을 쉽게 예로 표현해보면 신장은 한쪽에 문제 생겨도 다른 한쪽이 문제없다면 일상생활에 지장이 없다. (이식도 가능) 그러나 심장은 10초라도 정지한다면 목숨이 위태로울 정도로 .. 2021. 1. 31.
3장. 얽힌 돈 이야기 돈을 아는 엔지니어가 되자 이번 챕터는 데이터베이스의 '비용'에 초점을 두고 있다. 엔지니어일지라도 비용에 무관심한다면 고객에게 가치 있는 일을 할 수 없다. 만약 우리가 시스템 엔지니어라고 가정했을 때, '왜 시스템을 만들고 있습니까?'라고 질문을 받는다면 뭐라고 할 것인가? 고객으로부터 해달라는 데로 요청을 받아서요 '시스템을 만드는 목적은 편리한 기능을 제공함으로써 서비스를 제공하고 이익을 취하기 위해서' 혹은 '사회 전체의 이익을 높이기 위해 시스템이 존재하기 때문입니다.'라고 대답할 것 같다. 결국은 시스템을 개발과 유지하는 것은 궁극적으로 이익을 추구하려는 것이다. 자신이 하는 일이 고객이나 회사에서 어떤 가치가 있는지를 생각할 수 없는 엔지니어가 만든 시스템은 자기만족으로 끝나게 된다. 엔지.. 2021. 1. 26.
2장. 관계형 데이터베이스란 DBMS 란? 데이터베이스의 기능을 제공하는 소프트웨어를 DBMS (DataBase Management System)라고 한다. 흔히 우리가 말하는 Oracle, SQL Server, MySQL, PostgreSQL, Firebird를 DBMS라고 한다. 관계형 데이터베이스란? RDB에서 말하는 관계형이란 말은 어떤 의미일까? 우리가 흔히 말하는 'Relation'에서 파생된 단어로써 보통 인간관계에 사용하는 '관계'란 용어와는 의미가 다르다. 보통 테이블과 테이블 간의 관계를 맺고 연결되어 관리할 수 있는 데이터베이스라고 생각하기 쉽다. (물론 맞는 말이다.) 여기서 말하는 Relation은 2차원 표를 표기할 때 사용하는 단어이다. 단적으로 관계형을 표현하면 데이터를 2차원 표를 사용해 관리하는 데이.. 2021. 1. 25.
1장. 데이터베이스란 최근 이직을 위해 여러 곳에 면접을 진행한 결과, 데이터베이스 관련 질문을 많이 받았다. 아주 기초적인 지식부터 시작해서 튜닝, 성능 등의 질문을 많이 받았고 쉬운 내용도 정리가 안되다 보니 당황하며 장황하게 대답을 하게 되고 부족한 데이터베이스 지식으로 인해 떨어진 곳도 존재하여 데이터베이스 지식을 다시 정립하고자, 그리고 아주 기초적인 내용이라도 쉽게 비유적으로 표현하여 생각을 정리하고자 데이터베이스 책을 읽기 시작하게 되었고 LINE을 다니시는 멘토 개발자분과 개발자의 생과사를 함께 같이하기로한(?) 분의 추천으로 해당 책을 내 첫 블로그 개설과 동시에 포스팅하기로 다짐을 하였다. Chapter 1. 데이터베이스란 누군가 데이터베이스가 무엇인지 혹은 어떤 특징이 있는지 물어본다면 "주소록"이라고 대.. 2021. 1. 25.