Linux/MySQL 썸네일형 리스트형 MySQL Dump Multi Thread 스크립트 제목은 거창한데.. 내용은 별거 없네요.. ^^; 우리 회사에서 운영중인 특정 시스템의 경우 하나의 MySQL DB 서버에 약 2천여개의 DB를 가지고 있습니다. 뭐.. 용량은 서버마다 각각 다르지만, 대략 300GB ~ 500GB 사이를 왔다갔다 하는 서버죠 그런데 이 DB 엔진이 MyISAM으로 되어 있고, 이걸 InnoDB로 변경하면서 서버 교체까지 한번에 진행해야 하는 문제가 생깁니다. 이에 mysqldump로 힘들게 덤프 떠보니 속도가 너무 꽝이네요 .. -ㅠ - ;; 그래서 만들었습니다. 멀티쓰레드 덤프 ㅡ.,ㅡ;; 내용은 별거 없고 기본적인 흐름은 다음과 같습니다. 1. 현재 DB 서버 내 전체 데이터베이스 목록을 파일로 만든다. 2. 각 데이터베이스 이름마다 child process를 생성.. 더보기 MySQL Check Table & Repair Table 자동 스크립트 회사에서 운영중인 서버중 MySQL을 사용하는 DB 서버만 대략 100여대 가량이다 보니(다 제각각이에요 ㅠ_ㅠ) 가끔씩 오류로 인해 서버가 다운되거나 MySQL 데몬이 죽었을때 테이블이 깨지는 경우가 발생 하곤 합니다. ㅠ _ㅠ 하나하나 찾아서 Repair 하기도 어렵기도 하고 귀찮기도 하고.. 그냥 간단하게 스크립트로 Check 해서 결과를 리턴하는 형식의 스크립트를 짰는데.. 결과를 보는게 조금 엉성 하네요.. =ㅠ = ;; 꾸미는데에는 재주가 없어서;; ㅎㅎ 필요하신 분들은 가져가셔서 사용하시고.. 퍼가실때에는 출처만 밝혀주세요 +_+ ㅎㅎ #!/bin/bash # MySQL Table check script # CREATE : mrmsm # DATE : 2010.08.31 MYSQL_ID="_M.. 더보기 MySQL 테이블 사이즈 늘리기 잘 동작하던 메일 스팸서버의 DB가 갑자기 데이터가 쌓이지 않기 시작 했다.. 원인은 알 수 없었고.. 이리 저리 뒤져보았더니 MySQL의 경우 Linux 시스템에 따라 MyISAM 엔진이 저장할 수 있는 최대 데테이블 데이터 사이즈가 지정되어 있다고 한다. Operating System File-size Limit Win32 w/ FAT/FAT32 2GB/4GB Win32 w/ NTFS 2TB (possibly larger) Linux 2.2-Intel 32-bit 2GB (LFS: 4GB) Linux 2.4+ (using ext3 file system) 4TB Solaris 9/10 16TB MacOS X w/ HFS+ 2TB NetWare w/NSS file system 8TB - 관련 문서 : h.. 더보기 Perl-DBD-MySQL 설치 후 libmysqlclient.so.xx를 찾지 못해 발생하는 에러.. 서버 관리를 해주다보면.. 참 어처구니 없는 일들이 많이 일어난다. 오늘의 문제는 다음과 같은 에러가 뜨는것..... /usr/bin/perl: relocation error: /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi/auto/DBD/mysql/mysql.so: symbol mysql_init, version libmysqlclient_15 not defined in file libmysqlclient.so.15 with link time reference 구글을 찾아보고 이것 저것 해봤는데.. 고객 서버의 구성이 참 독특하기도 하고, 서비스가 죽으면 안된다는 이야기... 원인은 perl에서 MySQL커넥션을 위한 라이브러리를 찾을때 MySQL.. 더보기 MySQL Repliacation 복구 얼마전 회사 DB서버의 Replication이 깨지는 바람에 복구하게 됐다. 실제 운영중인 서버를 다운 시키고 백업 받을수는 없었기 때문에 최단시간동안 Write Lock을 걸고 백업을 받은 후 Write Lock을 해제하고 리플리케이션을 설정하는것이 관건 이었다. 그래서 다음과 같은 작업을 진행.. /usr/local/mysql/bin/mysqladmin -uroot -p flush-logs /usr/local/mysql/bin/mysqladmin -uroot -p -C "flush tables with read lock" /usr/local/mysql/bin/mysqldump --single-transaction --all-databases --extended-insert=FALSE -c -uroot.. 더보기 MySQL load data infile 문. 가끔씩 고객들이 load data infile할때 권한이 없다는 문의를 해온다. 작년에 이와 같은 문제로 해결해 준적이 있었는데 올해들어 이것저것 하다보니 까먹어 버렸었다;; 그러다 오랜만에 찾아보니 아래와 같이 나와있네.. ㅋ 1) load data infile '파일명' into table 테이블명 2) load data local infile '파일명' into table 테이블명 두 문장의 차이는 불러오려는 파일이 MySQL 서버에 있느냐? 아니면 원격에서 접속해서 처리하느냐이다. local 명령어를 추가해서 사용할 경우에는 서버와 클라이언트 모두 local-infile옵션이 on으로 되어 있어야만 사용가능 하며 그에 따른 확인은 아래와 같이 할 수 있다. mysql> show variables .. 더보기 [Error]Client does not support authentication protocol requested by server Client does not support authentication protocol requested by server와 같은 메세지를 내뿜으며 MySQL서버에 접속되지 않는 경우. 아래와 같이 해보세요~ MySQL 4.1 이상 버전에서는 비밀번호를 해쉬알고리즘을 기반으로한 인증 프로토콜을 사용합니다. 그리고 해당 기능이 하위버전의 Client와 호환이 되지 않기에 서버를 4.1이상으로 업그레이드를 한 후에 아래와 같은 에러메세지를 접하게 될수 있습니다. shell> mysql Client does not support authentication protocol requested by server; consider upgrading MySQL client 위의 문제점을 해결하기 위해서는 1. 모든 Cl.. 더보기 MySQL 5.0 한글 레퍼런스 메뉴얼 한글로된 MySQL 5.0 레퍼런스 메뉴얼이 있는 사이트 입니다. 모르는 사항이나 영문판으로 궁금한 사항이 있을때 참조하면 이해가 빠를꺼 같군요. http://www.mysqlkorea.co.kr/develop/sub_01.html MySQL Cert 관련 Dump 있으시거나, 관련 문서가 있으신 분은 제공 부탁드립니다. 더보기 [MySQL] MySQL 4.1 Reference 더보기 MySQL euc-kr 데이타 UTF-8로 컨버팅 하기 기존 MySQL 환경에서는 Database측 CHARSET 이 latin1 이나 euckr을 많이사용했을 겁니다.Legacy DB쪽은 아무 생각없이 CREATE DATABASE ... ; 해버렸었던 경우가 많아서 latin1 으로 되어 있는 database가 저또한 엄청나게 많았습니다.그런데, 이럴 경우 utf8을 제대로 쓸 수 없다거나, command line utility에서 꼭 문제가 발생하여서 utf8로 전환을 시도했습니다.문제는 latin1 db에 client 는 utf8을 사용하고 있던 경우, db에는 utf8로 들어가나, 정상적인 utf8이 아님으로써, mysql 이나 query browser등에서 쿼리를 할 수 없었습니다.한번은 잘못해서 database하나를 몽땅 못쓰게 만들어 버린 적도 .. 더보기 이전 1 다음