본문 바로가기

MySQL

(14)
percona toolkit 설치 사실 이걸 먼저 올렸어야 했는데..ㅎ percona toolkit은 perl로 이루어져 있기 때문에 perl 최신버전과 perl과 MySQL을 연동 시켜주는 프로그램을 설치해야합니다. 제 테스트 환경은 VMWare에서 CentOS 6.7 을 설치한 상태입니다. percona 쪽의 최신 버전을 받기 위해 wget으로 rpm을 받아옵니다 wget percona.com/get/percona-toolkit.rpm 받아 온 후 rpm 설치를 하려했으나! 아래와 같은 것들이 필요하네요..ㅎ 저는 mysql을 소스로 설치해서 그런 것 같습니다. 아래는 설치하는 방법인데요..ㅎ 어렵지는 않은데 해당 rpm yum 설치해야하니까 rpm 이름만 잘 설정해서 받으면 될 것 같습니다. [root@MONDB mysql]# rp..
percona toolkit - pt-online-schema-change 기본 설명 MySQL 컬럼 변경, 컬럼 추가, 삭제, 인덱스 추가 등의 이유로 점검을 수시로 하는 것을 무리라고 생각이 되었습니다. 그래서 대체할 만한 것을 찾다가 pt-online-schema-change를 테스트하게 됐는데요..ㅎ 막상 하려고 하니까 옵션은 많은데 각각 무슨 역할인지 나와 있는 곳이 없는 것 같아서 쓰기 시작합니다..ㅎ 제가 쓰는 글은 percona toolkit의 pt-online-schema-change document를 기반으로 번역해서 쓰는 것임을 먼저 말씀드리겠습니다. 기본적으로 percona tookit의 pt-online-schema-change는 어떻게 돌아갈까요? 어떻게 동작하기에 Lock이 걸리지 않고 컬럼 추가나 인덱스 생성이 되는 걸까요? percona 측에서는 아래와 같이..
outside valid range for the datatype INTEGER 어제 밤에 장애가 나서.. 두시간동안 DB쪽에서 처리를 하게 됐습니다..ㅎ DB쪽에서 남긴 에러메시지는 없었고 WAS단에 있는 catalina.out에서 에러가 찍혔습니다. SQL Exception SQL : SELECT last_insert_id()getMessage : '2.147747853E9' in column '1' is outside valid range for the datatype INTEGER. 이 메시지가 떠서 다들 그냥 DB 문제라고 인식을 했습니다..ㅎ 전에 구매로그에 대해 insert를 하고 insert한 값을 last_insert_id()로 받아온 후 처리하는 로직이었거든요 ㅎ 하지만 해당 Table의 Schema는 Big int로 되어 있었기 때문에 이상했죠 ㅎ 여기서 MySQ..
MySQL Source 설치 - Compile 및 설치 OS 세팅에 이어서 본격적인 컴파일 및 설치에 들어가도록 하겠습니다. MySQL 홈페이지에서 source 파일로 받았을 경우 tar.gz으로 떨어지는 파일로 되어 있습니다. 안에보면 c소스로 되어 있구요 ㅎ 소스들은 빌딩과정을 통해 파일로 만들어지는데 이것을 컴파일이라고 하죠 ㅎ compile을 시키는 도구로서는 앞 글에서 말한 것처럼 cmake를 쓰도록 하겠습니다. 참고로 MySQL 컴파일의 경우 cmake를 지원하도록 하게 된 것은 5.5버전 이후 입니다. cmake를 yum으로 설치할 수 있지만 이 또한 source 설치로 하겠습니다. 컴파일을 각기 다른버전으로 해보고 MySQL도 5.6대, MariaDB 5.5, 10.0 등 버전을 설치하는데 있어서 cmake의 버전 호환이 안되는 경우가 종종있습..
MySQL Source 설치 - OS 세팅 MySQL DBA로 생활한지 벌써 2년이 다되어 가네요..ㅎ 그런데 정작 MySQL에 관련된건 잘 안썼다는..ㅎ 이놈의 귀챠니즘이 뭔지..ㅎ 이사도 했고 모니터도 하나 더 샀으니까 이제 제대로 다시 하도록 하겠쯈당! 저는 Config를 설정하지 않은 yum설치인 경우 /var/run이나 /usr/local이나.. 제가 원하지 않은 경로에 설치되는게 싫고 관리하기도 어렵기 때문에 소스설치를 하는 편입니다. 이번 글에서는 제목에서 처럼 MySQL 소스 설치하는 것을 쓰도록 하겠습니다. 기본적인 환경을 말해야겠죠? OS : CentOS release 5.6(x86_64) DB : MySQL 5.5.30 compile tool : cmake 2.8.3 정도 되겠네요 ㅎ Mysql은 C언어로 구성이 되어 있기때문..
MYSQL_BIN_LOG::purge_logs was called with file -- MySQL Error Note MYSQL_BIN_LOG::purge_logs was called with file ./mysql -bin.001640 not listed in the index. 일반적으로 MySQL을 쓰다보면 Replication이라는 기술을 많이 쓰게 됩니다. Oracle의 RAC와 간단히 비교를 하면 요런 그림? 이라고 해야하나요 ㅎㅎ RAC(Real Application Cluster)는 여러대의 Database 서버들이 하나의 공유 스토리지에 SGA를 개별적으로 쓰며 사용하는 시스템이라 쓰기의 부하 분산기 가능한 시스템입니다. 더 간단히 말하면 여러 서버에서 써도 같은 공간에 저장이 되죵ㅎ 반면 MySQL의 Replication이라는 개념은 읽기 부하 분산입니다. 그림에서의..