1. TABLE 생성 CREATE TABLE mytable ( no INTEGER NOT NULL, name CHAR(15) NULL ); 2. PRIMARY KEY 생성 ALTER TALBE mytable ADD ( PRIMARY KEY (no)); 3. FOREIGN KEY 생성 ALTER TABLE mytable ADD( FOREIGN KEY (no) REFERENCES name ); 4. PK RENAME ALTER INDEX SYS_C00555 RENAME TO PK_no; 5. FOREIGN KEY 는 물려있는 글중에 상위글이 지워지면 하위글도 지워지는 쿼리 ON DELETE CASCADE 추가. 미 추가시 삭제할때 에러발생 ALTER TABLE mytable ADD( FOREIGN KEY (no) REFERENCES mytable on delete cascade );
큐브리드 loaddb할 때 순서(이 순서대로 할때 좋음) 스키마 -> 데이터 -> 인덱스 # loaddb 명령어cubrid loaddb -u dba -v -s "스키마" "데이터베이스명"cubrid loaddb -u dba -p "비번" -v -c 5000 -d "데이터" "데이터베이스명"cubrid loaddb -u dba -p "비번" -v -i "인덱스" "데이터베이스명"
# 큐브리드 퍼포먼스 향상시키기 - 시스템 구축시 볼륨을 각각 다른 디스크에 구성한다.(물리적으로 분리, 로그도 분리하면 좋음)- 아카이브 로그를 쌓을경우 물리적으로 분리된 디스크를 사용하면 좋음- 데이터베이스 로그는 크게 상관없음
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 마스터 서버와 슬래이브 서버간 통신 상태를 확인. 배포데이터베이스 구성시 복제 서버 포트를 지정했을 것인데 관련 포트의 연결이 가능한지를 확인해 본다. 또한