728x90
반응형

Server/DB 7

MySQL Replication

Replication을 한개의 물리적 서버에서 테스트 하기 위해 설치할 필요가 있었다.이를 위해 다음과 같은 셋팅으로 설정하였는데, 자료 아카이빙을 위해 정리해 본다. 기본적인 것은 아래와 같다. 1. 한개의 서버에 두개의 MySQL을 설치한다.2. 각각 다른 Port를 사용한다.3. Master, Slave 설정을 하고 Replication을 시작한다. 자세하게 기술하면 아래와 같다. 1. configure를 통해 master mysql 설치 디렉토리를 지정한다. ex)./configure --prefix=/설치디렉토리/mysql_master --with-charset=utf8 --enable-assembler 2. make, make install을 통해 설치한다. 3. master db가 설치가 완..

Server/DB 2013.05.15

MySQL Erro Code 28이 리턴되는 경우

작업 서버에서 잘 되던 쿼리가 에러가 떨어졌다. 에러 코드 내용... ERROR 1030 (HY000): Got error 28 from storage engine 1030 에러코드를 메뉴얼로 찾아보니 별다른 내용도 없고, 위 메시지랑 같은 이야기만... ^^;; Error: 1030 SQLSTATE: HY000 (ER_GET_ERRNO) Message: Got error %d from storage engine 그래서 사내 DBA분에게 물어보고 확인해 본 결과 28 에러코드는 다음과 같은 방법으로 찾는 것이라고 한다. [xxxxxx bin]# ./perror 28 OS error code 28: No space left on device mysql이 설치된 디렉토리의 bin 디렉토리에서 perror라는..

Server/DB 2009.04.08

MySQL의 백업 및 복구

요즘은 MySQL Replication 기능을 이용해서 DB System을 구축하는 경우가 많다. 또한 MySQL DB를 사용하면서 백업은 보통 Replication Slave 단에 있는 백업 Server에서 별도로 받게 된다. 백업 서버에서 Dump로 받게 된 Data는 DML 쿼리로 된 text data이며, 이 데이터를 이용해서 신규 장비를 설치하던가, 아니면 기존 장비에 문제가 생겼을 시 복구를 하게 된다. 그런데 복구를 하더라도 Replication이란 문제로 인해 Master DB와 싱크를 맞추는 문제가 발생하게 된다. 따라서 백업 서버에서 백업을 받게 되는 경우, Master DB의 binary log의 포지션을 알아야지만 된다. 이럴 경우에는 다음과 같은 절차를 따라서 Dump를 받으면 된..

Server/DB 2008.12.15

MySQL에서 대소문자 구별해서 쿼리하기

100만건이 조금 넘는 MyISAM 테이블이 있었다. 주소록 그룹 관련 테이블인데, 유저당 그룹 이름이 중복될 수 없었다. 그런데 기존에는 nhn과 NHN이 서로 같은 것이라고 생각해서 디비 내에서 대소문자가 틀린 경우에는 새로운 그룹을 추가하거나 기존 그룹의 이름을 수정할 수 없었다. 뭐 간단하게 BINARY로 해당 컬럼의 속성을 변경해도 되겠지만... innoDB도 아닌 MyISAM 테이블에 100만건이니 ALTER 한번만 쳐도 수시간은 잡아 먹을 듯 했다. 그래서 메뉴얼을 뒤졌더니... 역시나 ^^ BINARY라는 Cast Function을 쓰면 되는 것이었다. 복잡하게 해결해야 만 될것같은 문제를 간단하게 해결할 수 있게 되었다. 역시 모든 문제의 해결책은 메뉴얼이다.

Server/DB 2007.05.15

Z와 S의 차이...

MySQL에서 테이블 컬럼 분석할 일이 생겨서... 일전에 phpMyAdmin에서 하던 명령을 콘솔에서 날려 볼려고 하였다. 대충 기억나는 명령어로는 ANAL... 뭐라고 하는거 같았는데 라며... 메뉴얼을 뒤적였다. 다음과 같은 명령어가 나오더군... 이게 맞나보다 하고 날렸더니 -.-;; 왜 안되는거지... -.-;; 내가 예상했던 결과하고 틀리게 나오네 -.-;; 이곳 저곳 한참을 찾은 끝에 알아 낸 명령어는... -.-;; 어... ANALYZE하고 ANALYSE하고 뭐가 틀린거야? 얼른 네이버 사전을 찾아 봤다 analyze an·a·lyze〔〕 vt. 1【물리·화학】 분석하다, 분해하다;【수학】 해석하다 《analyze+목+전+명》 analyze something into its element..

Server/DB 2007.02.14

MySQL에서 변수의 사용...

보통 MySQL에서 변수를 쓰려면 다음과 같이 하면 된다. SET @yesterday := DATE_ADD(DATE(CURDATE()), INTERVAL -1 DAY); 또한 쿼리 내에서 직접 변수에 값을 담으려면 다음과 같이 하면 된다. SELECT column INTO @columnVar ... 이런식으로 쿼리만을 모아서 프로그램 짜듯이 procedure하게 짜나간 후 sql파일로 저장해서 사용한다. 여지껏 이렇게 만들어서 사용하고 있는데... 문제가 하나 생겼다 SELECT해온 컬럼값이 없을 경우 에러를 내 뱉으면서 다음 내용으로 넘어가질 않는 것이다. MYSQL 문법을 뒤져서 겨우 겨우 찾아냈다. SELECT @columnVar := column ... 이런식으로 하면 에러가 안나면서 변수에 값을..

Server/DB 2006.12.18

[1원팁]이메일에서 아이디 부분만 검색하기

이메일이 들어가 있는 필드를 검색하는 부분이 있었다. 결과는 뒤에 '@naver.com'과 같은 부분을 제하고 보여주는 것이였는데... 아무 생각없이... "email LIKE '%$searchWord%' 라고 했더니... 바로 QA 팀에 걸렸다 ㅎㅎ n, a, v, e, r, ., c, o, m 중 아무 글자로나 검색하면... 모든 내용이 다 나오게 되니 말이다 ㅎㅎ 그래서 MySQL 메뉴얼 찾아서 검색해보니... SUBSTRING_INDEX 라는 좋은 놈이 있더라... SELECT email FROM table WHERE SUBSTRING_INDEX(eamil, '@', 1) LIKE '%$searchWord%';

Server/DB 2006.11.01
728x90
반응형