디비 덤프 시 아래와 같은 오류가 있는경우 체크 할 사항 # 덤프 시 에러내용 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
// mysql root password 등록 [root@linux mysql]# mysql -u root -p mysql Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 1 to server version: 4.0.23-Max Type 'help;' or 'h' for help. Type 'c' to clear the buffer. mysql> update user set password=password('비밀번호입력') where user='root'; Query OK, 2 rows affected (0.00 sec) Rows matched: 2 Changed: 2 Warnings: 0 mysql> flush privileges; <== mysql 재시동 Query OK, 0 rows affected (0
mysqlcheck --check --databases [database name]
# SQL처리 시 Temporary Table이 디스크에 사용되지 않도록 해야한다.# Temporary Table 현황 모니터링# Created_tmp_files 이 많다면 tmp_table_size를 늘려주기mysqladmin -uroot -p extended-status -r -i 1 | grep -E 'Created_tmp|--' 일부 쿼리는 Temporary Table을 메모리에 사용하지 않고 디스크를 바로 사용하는 경우가 있다.쿼리 자체를 수정하여 디스크를 사용하지 않도록 해야겠다. 임시 꼼수로.통계성 쿼리 질의 전에 세션 변수 설정(2G로 할당)을 한 후 해본다. 디스크 사용을 줄이기 위한 목적이지만 쿼리 자체를 수정하는게 더 좋은 방법임.set session tmp_table_size = 2 * 1024 * 1024 * 1024;set session max_heap_table_size = 2 * 1024 * 1024 * 1024;
mysql strict mode off 구동 스크립트에서 "start" 부분에 off 옵션을 넣는다. $bindir/mysqld_safe --sql-mode="" --datadir="$datadir" ~~~~~~~~~~
INSERT INTO mysql.user(User, Host, Password, ssl_cipher, x509_issuer,x509_subject) VALUES('유저아이디t', 'localhost', Password('패스워드'), '', '', ''); INSERT INTO `mysql`.`db` (`Host` ,`Db` ,`User` ,`Select_priv` ,`Insert_priv` ,`Update_priv` ,`Delete_priv` ,`Create_priv` ,`Drop_priv` ,`Grant_priv` ,`References_priv` ,`Index_priv` ,`Alter_priv` ,`Create_tmp_table_priv` ,`Lock_tables_priv` ,`Create_view_priv` ,`Show_view_priv` ,`Create_routine_priv` ,`Alter_routine_priv` ,`Execute_priv` ,`Event_priv` ,`Trigger_priv`)VALUES ('localhost', '디비명', '유저아이디', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y',
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`);
# 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
# mysql 데이터베이스 쓰기방지 mysql> FLUSH TABLES WITH READ LOCK;
# 큐브리드 데이터베이스 생성하기(기본값은 현재 디렉토리에서 데이터베이스를 생성한다) # 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 인덱스 디비명
# 큐브리드 퍼포먼스 향상시키기 - 시스템 구축시 볼륨을 각각 다른 디스크에 구성한다.(물리적으로 분리, 로그도 분리하면 좋음)- 아카이브 로그를 쌓을경우 물리적으로 분리된 디스크를 사용하면 좋음- 데이터베이스 로그는 크게 상관없음