본문 바로가기

Database

(69)
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..
Linux Command - iostat Disk i/o에 대한 부하 체크를 위해서 일반적으로 많이 쓰이는 것이 iostat, vmstat 등이 있습니다. 그중 가장 기본적으로 쓰이는 iostat을 보도록 하겠습니다 Syntax iostat [ -c ] [ -d ] [ -N ] [ -n ] [ -h ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ -y ] [ -z ] [ -j { ID | LABEL | PATH | UUID | ... } [ device [...] | ALL ] ] [ device [...] | ALL ] [ -p [ device [,...] | ALL ] ] [ interval [ count ] ] 옵션을 간단히 설명을 하자면 -c CPU 활용 분석 display 이런식으로 avg-cpu가 뜨게끔 되어 있고 ..
Linux Shell Script - 서버 부하 체크 및 MySQL 부하 체크 소소하게 적기 위한 카테고리!?ㅎ MySQL의 부하원인을 찾기에는 정말 애매애매 할 때가 많습니다. 그래서 crontab을 통해서 1분단위로 부하체크 하는 shell을 간단히 짜보았는데요. #!/bin/sh ### Made in Chung ############################# Base Setting HOME_DIR="/raid/usr/local/mysql" LOG_DIR="/root/uptime_logs" CHUNG_DATE=`date +'%Y%m%d'` LOG_FILE_NAME=uptime_$CHUNG_DATE.log ############################## master_password=`cat $HOME_DIR/data/master.info | head -n 6 | ta..
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언어로 구성이 되어 있기때문..
ORA-28009 : connection as SYS should be as SYSDBA or SYSOPER 오랜만에 또다시..ㅎ 회사컴퓨터에 테스트하려고 깔다가 공유하면 좋겠다~ 생각해서 이렇게 또 오랜만에 쓰게되네요.. 꾸준하게 해야하는데 이놈의 게으름이란.. ORA-28009 : connection as SYS should be as SYSDBA or SYSOPER 요 에러의 의미를 보도록 하겠습니다 우선 저는 리눅스 환경이기 때문에! 리눅스 환경이 보이네요 sqlplus / as sysdba 로 접속한 다음 다시 한번 sys로 들어가려고 했습니다.. 하지만 이렇게 뙇 하고 ORA-28009 에러가 발생을 하네요. 저기에 써져있는 말대로 SYS계정으로 들어가려면 SYSDBA나 SYSOPER라는 역할을 지정하라는 것입니다. 아시다싶이 SYSDBA는 모든 것을 수정 삭제 가능한 계정이고 SYSOPER는 정말 ..