디비 덤프 시 아래와 같은 오류가 있는경우 체크 할 사항 # 덤프 시 에러내용 root@web:/var/lib/mysql5# mysqldump -u root -p database> database.sql Enter password: mysqldump: Couldn't execute 'SET OPTION SQL_QUOTE_SHOW_CREATE=1': You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'OPTION SQL_QUOTE_SHOW_CREATE=1' at line 1 (1064) # 체크 할 사항 설치된 데이터베이스 서버와 클라이언트툴의 버전이 맞는지 체크한다. 서버의 경우 소스 컴파일하여 5.6.x를 설치하였지만 클라이언트툴은 rpm 으로 기본 설치된 5.0.x의 클라이언트툴이 PATH에 먼저 잡히면서 덤프 시 위와같은 오류가 있는 경우가 많다. 실제 설치한 경로에 있는 mysqldump 명령어를 활용하면 해결될 수 있따.
#####vi /etc/logrotate.d/mysql /var/lib/mysql5/db-slow.log {dailyrotate 7missingokpostrotate/opt/webapps/mysql5/bin/mysqladmin flush-logsendscript}################################################# #daily : 로그파일을 날짜별로 변환#rotate : 지정 갯수 이상되면 예전 log파일 삭제#missingok : 로그파일이 없더라도 오류를 발생시키지 않음#postrotate-endscript :사이에 들어있는 명령어 실행 ################################################# ####메일 스크립트#!/bin/bashYEAR=`date +%Y`MONTH=`date +%m`DAY=`date +%d`SUBJECT="$YEAR$MONTH$DAY DB 슬로우쿼리입니다"EMAIL="메일주소"EMAILMESSAGE="/var/lib/mysql5/db-slow.log-$YEAR$MONTH$DAY" /bin/mail -s "$SUBJECT" "$EMAIL" < $EMAILMESSA
# 큐브리드 퍼포먼스 향상시키기 - 시스템 구축시 볼륨을 각각 다른 디스크에 구성한다.(물리적으로 분리, 로그도 분리하면 좋음)- 아카이브 로그를 쌓을경우 물리적으로 분리된 디스크를 사용하면 좋음- 데이터베이스 로그는 크게 상관없음
ora-00000 성공적인 정상 종료입니다. ora-00001 유일성 제약조건(%s.%s)에 위배됩니다. ora-00017 트레이스 이벤트 설정이 세션에 요구되었습니다. ora-00018 최대 세션 수를 초과했습니다. ora-00019 최대 세션 라이선스 수를 초과했습니다. ora-00020 최대 프로세스 수(%s)를 초과했습니다. ora-00021 세션이 다른 프로세스에 첨부되어 있음; 세션을 변경할 수 없습니다. ora-00022 부적절한 세션 번호; 액세스가 거절되었습니다. ora-00023 세션이 프로세스 고유의 메모리를 참조함; 세션을 분리할 수 없습니다. ora-00024 단일 프로세스 모드에서는 하나 이상의 프로세스가 로그인할 수 없습니다. ora-00025 %s에 메모리를 할당하는데 실패했습니다. ora-00026 누락 혹은 부적합한 세션 번호 ora-00027 현 세션을 제거할 수 없습니다. ora-00028 세션이 제거되었습니다. ora-00029 사용자 세션이 아닙니다. ora-00030 사용자 세션 id가 존재하지 않습니다. ora-00031 세션이 중단될 것입니다. ora-0
Mysql lock 걸린 프로세스 중지시키기 mysqladmin -u root -p"passwd" kill "NO" for i in `mysqladmin -h x.x.x.x --user=root -pXXXX processlist |grep <username>| grep <Locked>|awk {'print $2'}` domysqladmin -h x.x.x.x --user=root -pXXX kill $i;done;
# 큐브리드 데이터베이스 생성하기(기본값은 현재 디렉토리에서 데이터베이스를 생성한다) # page size : 4096 기준 cubrid createdb 디비명cubrid createdb -L 로그디렉토리 -F 볼륨디렉토리 디비명cubrid spacedb -S 디비명 # 2G X 4cubrid addvoldb -p data -S 디비명 500000cubrid addvoldb -p data -S 디비명 500000cubrid addvoldb -p data -S 디비명 500000cubrid addvoldb -p data -S 디비명 500000 # 1G X 1 cubrid addvoldb -p index -S 디비명 250000 # 2G X 2 cubrid addvoldb -p temp -S 디비명 500000cubrid addvoldb -p temp -S 디비명 500000 # 큐브리드 베이터베이스 복원하기cubrid loaddb -u dba -v -s 스키마 디비명cubrid loaddb -u dba -p 비번 -v -c 5000 -d 오브젝트 디비명cubrid loaddb -u dba -p 비번 -v -i 인덱스 디비명
큐브리드 설치후 시작할때 아래와 같은 에러가 날 경우 에러) root@ora:/opt/install# cubrid service start cubrid: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory 해결방법) libncurses라는 라이브러리를 찾지 못해서 에러가 난 경우다 root@ora:/opt/install# ldd /var/lib/cubrid820/bin/cubrid linux-gate.so.1 => (0xffffe000) libcubridsa.so.8 => /var/lib/cubrid820/lib/libcubridsa.so.8 (0xf6aeb000) libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xf6a13000) libncurses.so.5 => not found libpthread.so.0 => /lib/tls/libpthread.so.0 (0xf6a01000) libdl.so.2 =>
# mysql 데이터베이스 쓰기방지 mysql> FLUSH TABLES WITH READ LOCK;
출처 : http://blog.naver.com/cubebridge?Redirect=Log&logNo=20096666579 변별력이 떨어지는 index는 insert의 성능을 크게 저하시킵니다. 변별력이 떨어지는 index란? index의 분포가 좋지 않은 것으로 칼럼의 값이 하나의 값으로 몰려있거나 적은 수의 값이 많은 량의 데이터를 차지하는 경우입니다. 테스트현황:500만건의 데이터를 변별력이 없는 index가 설정되어 있는 경우와 변별이 있는 index가 설정되어 있는 경우로 나줘 TPS와 QPS를 비교한 결과를 바탕으로 설명합니다.측정수단: cubrid broker status -b로 TPS,QPS를 확인합니다.테이블 상태: 1. 테이블에 index 3개가 설정되어 있습니다.2. PK, UNIQUE, FK 키가 있으며, FK가 참조하고 있는 테이블은 단 하나의 값('0')을 가지고 있습니다.3. insert문이 수행 될수록 FK칼럼에 값은 계속적으로 '0'이 입력되도록 되어있습니다.변별력 없는 FK가 있는 상태로 진행(FK는 index이다.) 테스트 시작:JDBC를 이용하여, insert문 데이터를 500만건이 입력되도록 설정합니다.초기(REQ
# cubrid broker 주요 설정값 모음 [%BROKER1]SERVICE =ONBROKER_PORT =33000MIN_NUM_APPL_SERVER =10MAX_NUM_APPL_SERVER =100APPL_SERVER_SHM_ID =33000LOG_DIR =log/broker/sql_logERROR_LOG_DIR =log/broker/error_logAUTO_ADD_APPL_SERVER =ONSQL_LOG =NOTICETIME_TO_KILL =100SESSION_TIMEOUT =10KEEP_CONNECTION =AUTOSQL_LOG_MAX_SIZE =50000LONG_QUERY_TIME =0.8LONG_TRANSACTION_TIME =0.8 # 브로커 제공 파라미터(기본값)MASTER_SHM_ID int 30001 ADMIN_LOG_FILE string log/broker/cubrid_broker.log SERVICE string ON BROKER_PORT int 30000(최대값 : 65535) MIN_NUM_APPL_SERVER int 5 M
마스터 + 배포 + 슬레이브 서버로 구성 구성후 복제에이전트를 구동하면 슬레이브 디비에 연결되지 못하고 에이전트가 다운됨 배포서버에 이런 에러가 나옵 [Tue Aug 3 13:45:42 2010] : ERROR(178023): can't connect to the slave. - demodb2 [Tue Aug 3 14:15:30 2010] : ERROR(178023): can't connect to the slave. - demodb2 [Tue Aug 3 14:39:14 2010] : ERROR(178023): can't connect to the slave. - demodb2 [Tue Aug 3 17:16:32 2010] : ERROR(178023): can't connect to the slave. - demodb2 확인할 사항 1 배포DB에 dba 로 접속해서 select * from slave_info 결과 중 master_ip 값이 실제 슬레이브DB의 정보와 동일한지 확인 필요 확인할 사항 2 마스터 서버와 슬래이브 서버간 통신 상태를 확인. 배포데이터베이스 구성시 복제 서버 포트를 지정했을 것인데 관련 포트의 연결이 가능한지를 확인해 본다. 또한…
mysql 대용량 파일 insert 하기 (load data) LOAD DATA INFILE '로드 할 파일명' INTO TABLE 테이블명FIELDS TERMINATED BY '|'LINES TERMINATED BY ' '(컬럼명 쭉~~~~~~~~~`); FIELDS TERMINATED BY '|' : 컬럼을 구분자 구분자 지정LINES TERMINATED BY ' ' : 라인(줄)을 구분해줄 구분자. 보통 지정ignore 1 line : 등록할 파일명의 첫줄을 무시하고 insert LOAD DATA INFILE '로드 할 파일명' INTO TABLE 테이블명FIELDS TERMINATED BY '|'LINES TERMINATED BY ' 'ignore 1 line (a, b, c, d, e, f`);